Jump to content
xt:Commerce Community Forum

Smarty-Abfrage "Unterkategorien- oder Produktlisting?"


schalipp

Recommended Posts

Hallo,

ich möchte im index.php-Haupttemplate gern an einer Stelle abfragen, ob die aktuell generierte listing-Ansicht weitere Unterkategorien oder bereits die Produktliste einer Unterkategorie anzeigt.

Mit {if $page == 'categorie'} bekomme ich zwar eine Unterscheidung zur Startseite, Warenkorb- und sonstigen Seiten, aber {$page == 'categorie'} ist TRUE sowohl für die Listenansicht weiterer Unterkategorien, als auch für die Listenansicht der Einzelartikel, wenn es keine weitere Unterkategorien mehr gibt.

Ich bräuchte quasi eine Abfrage, ob gerade das Subtemplate "categorie_listing" oder das Subtemplate "product_listing" von der index.php eingebunden wird. Geht das?

Alternativ sinnvoll wäre vielleicht auch eine Abfrage "{wenn es weitere Unterkategorien gibt}", denn dann gilt ja Fall 1) automatisch ... aber wie mache ich das in smarty-Syntax?

Danke und Gruß,

Sebastian

Link to comment
Share on other sites

hi,

Du müsstest im Prinzip abfragen, ob die Kategorie "Leaf" oder "Node" ist.

mit dieser php-Routine sollte es gehen:

{php}

// Ermitteln LEAF-Nodes aus Kategoriebaum ---------------------------------------------------

$cat = $this->get_template_vars('current_category_id');

$sql = "SELECT t1.categories_id FROM xt_categories

AS t1 LEFT JOIN xt_categories as t2

ON t1.categories_id = t2.parent_id

WHERE t2.categories_id IS NULL";

$result = mysql_query( $sql );

$leafs = array ();

while ($row = mysql_fetch_row($result))

{$leafs[] = $row[0];}

// ist aktuelle Kategorie LEAF ?

$is_leaf = false;

foreach ($leafs as $i => $cats)

{if ($cat == $cats){ $is_leaf = true;}}

// Smarty-Variable is_leaf ans Template übergeben

$this->assign('is_leaf',$is_leaf);

{/php}

( hatte ich schon mal getestet )

Grüsse

Link to comment
Share on other sites

Hui. Nicht dass ich Angst vor PHP hätte, aber ich würde gern die zusätzlichen Datenbankabfragen vermeiden. Immerhin "weiss" smarty an dieser Stelle doch schon, ob es die "categorie_listing" oder die "product_listing" einbindet -- wozu also nochmal ermitteln? Läßt sich das nicht irgendwie abfragen?

Danke und Gruß,

Sebastian

Link to comment
Share on other sites

Archived

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

×
  • Create New...