Jump to content
xt:Commerce Community Forum

Kategorie < level 3 ansprechen. Kategoriezweig hervorheben


jack09

Recommended Posts

Hallo,

ich habe einen Link-/Kategoriezweig (z.B. ab level 3) und

wollte den über box_categories.html hervorheben.

gibt es in etwa so etwas:

{if $module_data.upper_parent == '3'}

oder

{if $parent <= '3'} :cool:

Ich finde hierfür nicht die passenden Smartys :

<li class="level{$module_data.level}{if $module_data.active} active{/if}"{if $module_data.upper_parent == '3'} id="blue"{/if}>

viele Grüße, J.

Link to comment
Share on other sites

hi Oliver,

mach ich ja - oder ???

Ich versuche eine css-ID für z.B. zwei Zweige zu erzeugen:

<ul class="contentlist">
{foreach name=aussen item=module_data from=$_categories}
<li class="level{$module_data.level}{if $module_data.active} active{/if}"
{if $module_data.categories_name == 'blue'} {if $module_data.level > '0'}id="blue"{/if}{/if}>
{if $module_data.categories_name == 'red'} {if $module_data.level > '0'}id="red"{/if}{/if}>
<a href="{$module_data.categories_link}">{$module_data.categories_name}</a>
{if $module_data.active}
<img class="navactive_arrow" src="{$tpl_path}img/arrow.gif" border="0" />
{/if}</li>
{/foreach}
</ul>[/HTML]

das hebt per css-ID momentan nur den ersten Punkt / den oberen Level des Zweiges "blue" oder "red" hervor, deren untergeordnete nicht.

Viele Grüße, J.

Link to comment
Share on other sites

mmh - und wenn ich einen Kategorie-Link-Zweig von Level 1 - 5 blau und einen anderen Zweig von Level 1 - 5 rot haben möchte, kann Level 1 - 5 auf blau stellen, habe dann aber keinen roten Zweig ... oder?

Wie kann ich die "Zweige" (per id="") unterscheiden?

Link to comment
Share on other sites

Hallo amilo,

sieht man das so besser?

--------------------------------

Kategorie 1

mbox 1-1

boxA 1-1-1

Thema 1-1-1-1 (rot)

Thema 1 1-1-1-1 (rot)

Thema 1 1-1-1-2 (rot)

Thema 1 1-1-1-3 (rot)

Thema 1-1-1-2 (blau)

Thema 1 1-1-2-1 (blau)

Thema 1 1-1-2-1 (blau)

Thema 1 1-1-2-1-1 (blau)

Thema 1 1-1-2-1-2 (blau)

Thema 1 1-1-2-1 (blau)

Thema 1-1-1-3 (gelb)

...

etc.

--------------------------------

also "Zweige" ab Level 3 oder 4 "einfärben",

so dass in der Box alle aufgeklappten Links zu einem

Thema 1-1-1-1 eine Farbe haben.

Gibts in smarty sozusagen einen "Zweigwurzel"-Identifier über den man für einen Zweig sozusagen ein anderes Layout aktivieren kann?

viele Grüße, J.

Link to comment
Share on other sites

Hallo,

also wenn ich dich jetzt richtig verstehe willst du Kategorien innerhalb eines Levels verschieden einfärben. Dafür kenne ich keine Smarty Variable.

Das einzige was mit spontan einfällt wäre ein JQuery Snippet welches css Klassen verteilt. Das geht aber meines Wissens nur für den ersten und letzten Listeneintrag.

Oder was du auch noch versuchen könnstest, ist eine Klasse nach Categorie ID zu verteilen. Das ist aber auch nur sinnvoll, wenn sich dein Kategoriebaum nicht viel verändert.

MfG. Hansen

Link to comment
Share on other sites

hallo amilo,

ja, z.B. innerhalb von boxA 1-1-1 das Thema 1-1-1-1.

Danke für den Hinweis.

Nachdem es mit dem XT-bürtigen smarty nicht geht, würde ich an php+mysql denken, um so einen "Identifier" zu erzeugen. Das wäre dann auch, was sich hinter "JQuery" "verbirgt", ein php-mysql-zusatz?

alle cat-IDs mit der "parent"-ID von Thema 1-1-1-1 sollten eine css-ID in den Link-code bekommen. Mal sehen - dauert dann wohl etwas ...

... das wäre eher was für XT-Professionals - eine Woche und ein praktisches neues PlugIn wäre fertig? :)

viele Grüße, J.

Link to comment
Share on other sites

Hallo,

ich habe das jetzt so "gelöst" / einen workaround (da sich sicher noch einiges in meiner Kategoriestruktur

ändern):

In der xt_categories eine Spalte angefügt und

$categories_id = 8; 	// = first parent item
$categories_name = "blue";
function update_children($name, $parent) {
// retrieve all children of $parent
$result = mysql_query('SELECT categories_id, parent_id FROM xt_categories '.
'WHERE parent_id="'.$parent.'"');

// display each child
while ($row = mysql_fetch_array($result)) {
// indent and display the ID of this child
echo $row['categories_id'].", \n";

// update each child
$sql = "UPDATE xt_categories SET categories_css_name='".$name."' WHERE categories_id LIKE ".$row['categories_id'];
mysql_query($sql)OR die("<br>Mist:<br>$sql");


// call this function again to display this
// child's children
update_children($name, $row['categories_id']);
}
}

update_children($categories_name, $categories_id);

echo "<br><br>updated: categories/parent_id <b>$categories_id:</b> with <b>$categories_name!</b><br>";
echo "but: only children - the 1. parent-root-one has to be first by hand!!<br>";[/PHP]

Als kleine Wartungsscript-Datei markiere/update ich so Datensätze eines Zweiges in einem Durchlauf.

in Anlehnung an:

http://articles.sitepoint.com/article/hierarchical-data-database

Gruß, J.

Link to comment
Share on other sites

Archived

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

×
  • Create New...