Jump to content
xt:Commerce Community Forum

einige Kategorien nur bei bestimmter Sprache anzeigen


ackergiganten

Recommended Posts

Hallo,

ich möchte gern Kategorien und Artikel anlegen, die nur angezeigt werden wenn der Kunde rechts oben die Sprache "Deutsch" wählt und einige die nur angezeigt werden wenn "englisch" ausgewählt wird.

Leder werden die Kategorien im Deutschen ebenfalls angelegt und im deutsche angezeigt. Ich geb beim Deutschen-Unterpunkt einen Text an, so wird nur ein schmaler streifen unter den anderen Kategorien angezeigt.

Kann ich da irgendwie was machen?

Danke

Link to comment
Share on other sites

Moin,

du könntest in der box_categories.html folgedes if/else Konstrukt erstellen:


{if $language == 'de'}
{foreach name=catOuter item=category from $_categories}
{if $category.name != ''}
Deine Darstellung hier rein
{/if}
{/foreach}
{elseif $language == 'en'}
{foreach name=catOuter item=category from $_categories}
{if $category.name != ''}
Deine Darstellung hier rein
{/if}
{/foreach}
{/if}
[/PHP]

Dann werden die Kategorien die in ausgewählter Sprache keinen Namen haben nicht mehr angzeigt.

LG

Link to comment
Share on other sites

zur Zeit lautet die Datei so:

<h2 class="boxheader">{txt key=TEXT_BOX_TITLE_CATEGORIES}</h2>

<ul id="categorymenu">

{foreach name=aussen item=module_data from=$_categories}

<li class="level{$module_data.level}{if $module_data.active} active{/if}"><a

href="{$module_data.categories_link}"

title="{$module_data.categories_heading_title}">{$module_data.categories_name}</a></li>

{/foreach}

</ul>

Link to comment
Share on other sites

Moin,

ich hab noch mal drüber geschaut und gemerkt man kann es auch kürzer haben.

Ersetze den bisherigen Code durch folgenden:


<h2 class="boxheader">{txt key=TEXT_BOX_TITLE_CATEGORIES}</h2>
<ul id="categorymenu">
{foreach name=aussen item=module_data from=$_categories}
{if $module_data.name != ''}
<li class="level{$module_data.level}{if $module_data.active} active{/if}"><a

href="{$module_data.categories_link}"

title="{$module_data.categories_heading_title}">{$ module_data.categories_name}</a></li>
{/if}
{/foreach}
</ul>
[/PHP]

Mach dir aber eine Sicherungskopie der Originaldatei. Das sollte iegentlich so schon laufen, solange du bei den ungewollten Sprachen keinen Namen einträgst.

LG

Link to comment
Share on other sites

hallo,

glaube nicht , dass das so geht, da ja nur die Kategoriebeschreibungen sprachabhängig sind und nicht die Kategorien an sich.

Ich würde dazu ein Zusatzfeld in der xt_categories anlegen, z.B. categories_sprache_de_status TINYINT(1) default '1' sowie categories_sprache_en_status TINYINT(1) default '1' . Damit sind im Backend schon mal zwei ( vorbelegte ) Checkboxen vorhanden. Wenn eine Sprache nicht angezeigt werden soll, Häkchen raus.

Die kann man dann leicht im Template abfragen ( ungetestet ):

{foreach name=aussen item=module_data from=$_categories}
{if ($language == 'de' and $categories_sprache_de_status == '1') or ($language == 'en' and $categories_sprache_en_status == '1'))}
<li class="level{$module_data.level}{if $module_data.active} active{/if}"><a

href="{$module_data.categories_link}"

title="{$module_data.categories_heading_title}">{$ module_data.categories_name}</a></li>
{/if}
{/foreach}[/HTML]

Das ist natürlich auch noch unperfekt, man müsste wahrscheinlich auch noch die Suche anpassen und denn über die Suche oder das Herstellerlisting werden die Artikel weiterhin gefunden und in diversen Plugins auch .... ein Rattenschwanz

Grüsse

Link to comment
Share on other sites

Moin,

oldbear hat recht. Der Name ist tatsächlich nicht sprachabhängig. Aber man könnte doch anstelle von

$module_data.name

$module_data.categories_heading_title

abfragen. Das wiederum müsste doch sprachabhängig sein.

Die Lösung ist wirklich nur ein Anzeige-Workaround.

Am besten könnte man sowas mit Benutzergruppen abfangen. Dazu müsste man aber die Benutrzerguppe in abhängigkeit zu der gewählten Sprache verändern...also auch nicht mal eben so aus dem Hut zu zaubern.

LG

Link to comment
Share on other sites

@sentor77:

die Seite wird weiß und nur oben links werden nur ein paar Befehle angezeigt.

Siehe Datei.

@oldbear:

leider kann ich nicht ganz folgen, mit solchen komplexen Einstellungen kenne ich mich leider nicht aus.

Was ich nicht verstehe, bei den Artikel funktioniert es doch auch. Wenn ich die "deutschen" Felder nicth fülle wird es nicht angezeigt. Warum geht das mit den Kategorien nicht????

post-95405-14337915359626_thumb.jpg

Link to comment
Share on other sites

Ich hab den Fehler gefunden. Das hier klappt. habe es gerade getestet.

Wie gesagt, dient nur der Anzeige.


<h2 class="boxheader">{txt key=TEXT_BOX_TITLE_CATEGORIES}</h2>
<ul id="categorymenu">
{foreach name=aussen item=module_data from=$_categories}
{if $module_data.categories_heading_title != ''}
<li class="level{$module_data.level}{if $module_data.active} active{/if}"><a href="{$module_data.categories_link}" title="{$module_data.categories_heading_title}">{$module_data.categories_name}</a></li>
{/if}
{/foreach}
</ul>
[/HTML]

LG

Link to comment
Share on other sites

Moin,

ich hab das jetzt noch einmal durch getestet. Wir reden doch von der Kategorie Box, oder?

Das merkwürdige ist, wenn ich nur in englisch die Felder fülle und deutsch leer lass, dann habe ich die Kategorie nicht in meinem Array stehen und somit wird sie auch nicht angezeigt. Also genau das was du gerne möchtest passiert bei mir automatisch.

Welche Shop-Version nutzt du?

Link to comment
Share on other sites

die aktuellste, hab sie erst am wochenende heruntergeladen.

ich glaube ich weiß wo der fehler ist, bei mir ist das so, wenn ich etwas in die "deutschen" felder schreibe und speichere, das anschließend wieder entferne und nur das in den "englischen" feldern stehen lasse, dann zeigt er die sachen auch auf der deutschen seite an. Wenn ich von anfang an nur etwas in die englischen felder schreibe, dann funktinoiert das bei mir auch.

Hätte ich das vorher gewusst, hätten wir uns das alle sparen können!

VIELEN DANK ERST EINMAL

Link to comment
Share on other sites

Kein Ding.

Ich hätte es ja auch einfach vorher mal testetn können...

Kleiner Tip noch, der dir eine Menge Arbeit sparen kann:

geh mit phpMyAdmin in die Datenbank in die Tabelle xt_categories_description und schaue dir entsprechende Kategorien an und lösche direkt aus der DB die deutschen Felder wo sie nicht mehr hingehören.

Viel Erfolg weiterhin

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
  • Create New...