Trade Republic - Provisionsfrei Aktien handeln
Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Smarty $navtrail in unterschiedlichen Template-Dateien nutzen

    fiveBytes

    • Mitglied
    • Beiträge: 117
    • Geschlecht:
    Hallo liebe Smarty-Experten ;-),

    ich bräuchte die $navtrail in unterschiedlichen Template-Dateien im System, gibt es keine Chance mit Smarty an die übergeordneten Templatevariablen zu kommen? Ich möchte dafür keine eigene Box dafür im Template-Ordner erzeugen (Abfragen und Code immer wieder neu zu erzeugen ist ja für die Performance nicht wirklich schick). Ich möchte das bereits erzeugte Smarty verwenden und zwar überall im System auf sämtlichen Seiten und ggf. auch an sämtlichen Stellen im Quellcode. Und ich würde es auch gern vermeiden, den Code per Javascript neu zu positionieren. ;-)

    Freue mich auf Eure Lösungsvorschläge und sage schon mal herzlichen Dank für Eure Ideen.

    Ich hab auch mal einen Screenshot angehängt, dann wird evtl. deutlicher warum die Positionierung in der index.html bei meinem Template nicht so ohne weiteres funzt. ;-)

    Linkback: https://www.modified-shop.org/forum/index.php?topic=41321.0

    Hetfield

    • modified Team
    • Beiträge: 937
    Re: Smarty $navtrail in unterschiedlichen Template-Dateien nutzen
    Antwort #1 am: 10. September 2020, 14:29:44
    Einfach in /includes/extra/header/header_body eine PHP-Datei z.B. als navtrail.php anlegen mit folgendem Inhalt:

    Code: PHP  [Auswählen]
    <?php define('navtrail', $smarty->getTemplateVars('navtrail')); ?>

    Dann ist im Anschluss die Navtrail in allen Templates verfügbar per:

    Code: XML  [Auswählen]
    {$smarty.const.navtrail}

    MfG Hetfield 8)

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.199
    • Geschlecht:
    Re: Smarty $navtrail in unterschiedlichen Template-Dateien nutzen
    Antwort #2 am: 10. September 2020, 14:46:43
    Ich habe das gerade mal aus Interesse getestet und beispielsweise auf der "product_info" Seite funktioniert es nicht, was ich nicht ganz verstehe.
    Die Konstante scheint aber gefüllt zu sein, wie ein "echo" in der "/includes/extra/header/header_body/navtrail.php" zeigt:

    Code: PHP  [Auswählen]
    <?php
    define('navtrail', $smarty->getTemplateVars('navtrail'));
    echo '<br/><br/><br/><br/><br/>' . navtrail;
    ?>

    Grüße

    Torsten

    hpzeller

    • Experte
    • Beiträge: 4.130
    • Geschlecht:
    Re: Smarty $navtrail in unterschiedlichen Template-Dateien nutzen
    Antwort #3 am: 10. September 2020, 15:00:26
    Vorschlag:

    Die Datei /includes/external/smarty/plugins/function.get_breadcrumb.php mit folgendem Inhalt erstellen,

    Code: PHP  [Auswählen]
    <?php
    /**
     * Smarty plugin
     * @package Smarty
     * @subpackage plugins
     */


    /**
     * Smarty {get_breadcrumb} function plugin
     */

    function smarty_function_get_breadcrumb($params, $template)
    {
        global $breadcrumb;
        return $breadcrumb->trail(' &raquo; ');
    }

    und dann in der gewünschten Template-Datei folgenden Code einfügen.

    Code: XML  [Auswählen]
    {get_breadcrumb}

    Gruss
    Hanspeter

    Hetfield

    • modified Team
    • Beiträge: 937
    Re: Smarty $navtrail in unterschiedlichen Template-Dateien nutzen
    Antwort #4 am: 10. September 2020, 15:06:34
    Auf manchen Seiten wird der header erst später geladen. Dort dann eventuell zusätzlich mit Abfrage der Seiten (z.B. product_info usw.) über application_top gehen, dann muss aber die die breadcrumb dann doch nochmal initialisiert werden, z.B. so:

    Code: PHP  [Auswählen]
    if (strstr($PHP_SELF, FILENAME_PRODUCT_INFO)) {
      defined('navtrail') or define('navtrail', $breadcrumb->trail(' &raquo; '));
    }

    MfG Hetfield 8-)

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.199
    • Geschlecht:
    Re: Smarty $navtrail in unterschiedlichen Template-Dateien nutzen
    Antwort #5 am: 10. September 2020, 15:07:53
    Die Lösung von hpzeller scheint mir eleganter. :-P
    Das hatte ich auch gerade gefunden: Smarty Global Variables? Accessing var from includes.
    Achso und getestet habe ich es auch. Funktioniert einwandfrei. :thumbs:
    Die "function.get_breadcrumb.php" kann auch einfach ins Verzeichnis "smarty" im Template abgelegt werden, wenn sie nur für dieses Template benötigt wird.

    Grüße

    Torsten

    Hetfield

    • modified Team
    • Beiträge: 937
    Re: Smarty $navtrail in unterschiedlichen Template-Dateien nutzen
    Antwort #6 am: 10. September 2020, 15:24:03
    Würde ich ja auch so lösen, aber fiveBytes wollte ja eine Lösung, wo die vorhandene Variable aus der header.php genommen wird und wegen der Performance nicht nochmal der Aufruf von $breadcrumb->trail durchgeführt wird. Das aber macht das Smarty-Plugin. Deshalb hatte ich kein Smarty-Plugin vorgeschlagen, da es nicht der Anforderung von fiveBytes entspricht.

    MfG Hetfield 8-)

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.199
    • Geschlecht:
    Re: Smarty $navtrail in unterschiedlichen Template-Dateien nutzen
    Antwort #7 am: 10. September 2020, 15:32:20
    Ahhhh! Sorry, da hab ich deiner Lösung Unrecht getan, aber nun haben wir hier zwei schicke Lösungen, wo sich jeder das raus suchen kann, was für ihn besser passt. :thumbs:

    Grüße

    Torsten

    rakna

    • Fördermitglied
    • Beiträge: 240
    • Geschlecht:
    Hallo,
    war schon lange auf der Suche nach einer solchen Lösung für die Einbindung.

    Beide funktionieren im Template einwandfrei!

    Gibt es die Möglichkeit diese Funktion außerhalb der Templates einzubauen,
    also schon im System ich habe z.B. die alte popup_image.php wieder für die Desktop -Version eingebunden und hätte da gern den Navtrail angezeigt.

    Da ich nicht so der PHP Experte bin, fehlen mir die Zusammenhänge der Dateien.
    Die Lösung von Hanspeter gefällt mir am besten, von der Performens her.

    Ich hoffe es gibt eine Lösung wäre Super
    mit Grüßen rakna

    zusehen:
    https://shop.rakna-e.com/Silberketten_925/Silberketten-Variationen-925-Silber/Silberkette-Armband-Typ-Venezia/Silberkette-Armband-Venezia-R-5-3mm/Silberkette-Armband-Venezia-Ru-B5-3L22::2632.html
    0 Antworten
    1911 Aufrufe
    19. Dezember 2012, 16:08:53 von Yale
    2 Antworten
    1806 Aufrufe
    01. Juni 2021, 13:51:43 von ShabOne
    5 Antworten
    1771 Aufrufe
    16. Dezember 2018, 15:56:57 von Shorty
               
    anything