Variablen in anderen Elementen/Templates zur Verfügung stellen

Thema wurde von annika_rb, 15. Dezember 2021 erstellt.

  1. annika_rb

    annika_rb Mitglied

    Registriert seit:
    24. Juli 2019
    Beiträge:
    21
    Danke erhalten:
    1
    Danke vergeben:
    5
    Hallo,

    ich bin mir nicht sicher wie ich es korrekt beschreiben soll, aber ich möchte verstehen was ich machen muss um bestimmte Variablen in meinen angepassten HTML Dateien verwenden zu können. Ein konkretes Beispiel falls unverständlich...

    (Ich benutze das Malibu Theme)

    In themes/Honeygrid/html/system/product_info_price.html wird die Variable {$PRODUCTS_PRICE} benutzt welche auf der Produktseite UVP und Preis mit HTML angibt.

    HTML:
    {load_language_text section="general"}
    
    {block name="product_info_price"}
        <div class="current-price-container">
            {block name="product_info_price_price"}
            {if $PRODUCTS_PRICE_CONTACT_URL}
                    <a href="{$PRODUCTS_PRICE_CONTACT_URL}" class="price-on-request">{$txt.GM_SHOW_PRICE_ON_REQUEST}</a>
                {else}
                    {$PRODUCTS_PRICE}
                {/if}
            {/block}
            {if $PRODUCTS_VPE}
                {block name="product_info_price_vpe"}
                    <br />
                    <span class="tax-shipping-text gm_products_vpe products-vpe">
                        {$PRODUCTS_VPE}
                    </span>
                    <br />
                {/block}
            {/if}
        </div>
        {block name="product_info_price_tax"}
            <p class="tax-shipping-text text-small">
                {$PRODUCTS_TAX_INFO}{$PRODUCTS_SHIPPING_LINK}
            </p>
        {/block}
    {/block}
    Ich würde nun gerne auf {$PRODUCTS_PRICE} in einem anderen Teil der gleichen Seite (macht wahrscheinlich keinen Unterschied) zugreifen können. Bei mir konkret in themes/Honeygrid/html/system/product_info_gallery_main.html (dies ist übrigens in den äquivalenten Dateien mit Honeygrid Templateset (Theme) auch direkt möglich, nur nicht im Malibu Theme).

    Was muss ich machen um $PRODUCT_PRICE auch an anderen Stellen nutzen zu können, bzw. wo muss ich nachgucken um zu verstehen wie product_info_price.html diese Variable zur Verfügung gestellt bekommt?
    Die Datei selbst lässt scheinbar keine Rückschlüsse zu und auch Suchen nach Smarty Blocknamen oder Dateinamen hat keine Ergebnisse gebracht. Stumpf alle Dateien durchzugucken kann wohl kaum die Lösung sein.

    Wäre für Hinweise oder Anhaltspunkte sehr dankbar.
     
  2. Wilken (Gambio)

    Wilken (Gambio) Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    18.737
    Danke erhalten:
    7.309
    Danke vergeben:
    2.208
    Die Erzeugung der Seitenteile geschieht in den sogenannten ContentViews. Diese sammeln Daten und übergeben und rufen dann Smarty auf je bestimmte Teile der Seiten zu bauen, übergeben dabei ihren Wertesatz an Smarty. Das heisst du musst dir die Contentview PHP Klassen ansehen.
     
  3. annika_rb

    annika_rb Mitglied

    Registriert seit:
    24. Juli 2019
    Beiträge:
    21
    Danke erhalten:
    1
    Danke vergeben:
    5
    Ah, prima, danke! Ich habe wohl die richtige Content View (ProductInfoThemeContentView.inc.php) die letztendlich themes/Honeygrid/html/system/product_info_price.html füttert gefunden und konnte auch testweise eine Variable hinzufügen. Mal sehen wie es weiter geht :)