Gernot Gawlik

Onlinemarketing, E-Commerce, Google

xtCommerce und die lieben Variablen

Es ist manchmal wirklich ärgerlich, dass nicht alle Variablen in xtCommerce (oder auch den Forks) zur Verfügung stehen. Aus diesem Grund schreibe ich hier einmal meine wichtigsten Erkenntnisse (eventuell profitieren ja auch andere davon) auf um das Ganze zu dokumentieren.

Beispielsweise steht die {$navtrail} nicht in jedem Template zur Verfügung. Ich hätte diese Breadcrumb durchaus in einer Template-Datei benötigt. Um die {$navtrail} nun außerhalb der index.html nutzen zu können muss diese jeweils in den Template-Generator-Dateien als Smarty-Variable deklariert werden.

D.h. um die {$navtrail} z.B. in der product_info_v1.html anzeigen zu lassen ist es nötig mit

$smarty->assign('navtrail',$breadcrumb->trail(' » '));

die includes/modules/product_info.php zu erweitern. Dann kann man die Breadcrumb auch auf der Produkt-Detailseite anzeigen lassen.

Suspekterweise ist das Verfahren nicht immer gleich: Um die Breadcrumb in der product_listing_v1.html zu bekommen fügt man einfach folgendes nach dem {config_load} ein:

{php}
global $smarty;
$this->assign('navtrail',$smarty->_tpl_vars['navtrail']);
{/php}

Auch hier ist es dann möglich mit {$navtrail} die Breadcrumb anzeigen zu lassen.

Denselben Code kann man auch nutzen um eine Box in der „Mitte“, also im main_content.html anzeigen zu lassen. Hierbei darf man natürlich nicht vergessen das „Box-Template“ dementsprechend anzupassen. Eine entsprechende Anleitung habe ich auf gunnart.de gefunden.

Den folgenden Code muss man bei diesem Vorhaben in der main_content.html einfügen.

{php}
global $smarty;
$this->assign('box_BEST_SELLERS',$smarty->_tpl_vars['box_BEST_SELLERS']);
{/php}

Es ist manchmal ein Kampf die Variablen dort verfügbar zu machen wo man sie benötigt. Aber mit oben aufgeführten Techniken habe ich es bei jeder Variable geschafft.

6 Kommentare

  1. Hallo,
    wie kann man das denn bei Gambio machen? So klappt es bei mir nicht.

  2. Hallo Jule,
    leider benutze ich Gambio nicht. Da es sich jedoch ebenfalls um ein XTC-Fork handelt müsste es eigentlich vom Prinzip her auch so funktionieren. Jedoch hatte ich einen Fehler in der obigen Code-Darstellung entdeckt, da WordPress den HTML-Code nicht so darstellt wie ich möchte. Probiere es jetzt mit o.a. Code nochmal.

  3. Super Klasse Danke !

  4. Viele, vielen Dank:)
    Ich habe das jetzt lange gesucht, funktioniert ohne Probleme im Gambio

  5. Bei xt-commerce 3.04 hat die Anleitung nicht funktioniert:

    um die {$navtrail} z.B. in der product_info_v1.html anzeigen zu lassen ist es nötig mit

    $smarty->assign(’navtrail‘,$breadcrumb->trail(‚ » ‚));

    die includes/modules/product_info.php zu erweitern. Dann kann man die Breadcrumb auch auf der Produkt-Detailseite anzeigen lassen.

    Könnten Sie evtl. bitte genauer angeben, wo die Variable eingefügt werden muss? Ich habe es ganz am Ende unter
    $smarty->assign(‚main_content‘, $product_info);

    und ganz am Anfang unter
    $info_smarty = new Smarty;

    versucht.
    Herzliche Grüße und trotzdem schon mal Danke dafür, dass Sie die Anleitung geschrieben haben!

    • Gernot

      10. Februar 2014 at 14:33

      Hallo Simon, leider kann ich Dir hier nicht mehr weiterhelfen, da ich umgestiegen bin auf Shopware (shopwaredemo.de). Nach meinen Erfahrungen würde ich Dir das auf jeden Fall auch empfehlen. Jetzt noch auf XTCommerce zu setzen halte ich für keine gute Entscheidung.

      Zu Deiner Frage: Auf jeden Fall sollte natürlich die Variablenzuweisung nach der Objekterstellung (mit new) stattfinden. Dann „sollte“ es eigentlich funktionieren.

      Viele Grüße
      Gernot

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

*

© 2016 Gernot Gawlik

Theme von Anders NorénHoch ↑