Shopware

Standardmäßig werden Smarty-Variabeln in den Shopware Shopseiten als Text ausgegeben.

Will man in den Shopware Shopseiten eine Variable ausgeben geht das so.

SHOPSEITEN TPL

Das Template für "normale" Shopseiten ist:
themes/Frontend/Bare/frontend/custom/index.tpl

Das Template für das Popup ist:
themes/Frontend/Bare/frontend/custom/ajax.tpl

In diesen Templates befindet sich die Variable

{$sContent}

Diese Variable muss ersetzt werden mit

{include file="string:{$sContent}"}

Achtung! Jetzt werden alle Strings in geschweiften Klammern in den Shopseiten als Smarty-Varaiblen interpretiert und müssen escaped werden.

AUFRUF TPL

Hier zwei Beispiele für das Popup welche im Prinzip das gleiche machen. In dem ersten Snippet, könnte ein beliebiges Element als data-targetSelector verwendet werden.

<span class="expert plugin" 
      data-modalbox="true" 
      data-targetSelector="a"
      data-mode="ajax"   
      data-height="666" 
      data-width="888"> Expertenservice
  <a title="Expertenservice" href="/{url controller=custom sCustom=199 ordernumber=654321 foo='ba'}" style="text-decoration:underline" onmouseover="click();">
    <i class="icon--info2"></i>
  </a>
</span>
<a title="Expertenservice"
   href="/{url controller=custom sCustom=199}" style="text-decoration:underline"
   data-content="{url controller="custom" sCustom="199" ordernumber="123456" foo="bar" fullPath}"
   data-modalbox="true"
   data-mode="ajax"
   data-height="666"
   data-width="888"
   onmouseover="click();">Expertenservice</a>

SHOPSEITE

{$smarty.get.ordernumber}<br />
{$smarty.get.foo}

 

 

Wird z.B. aus einer tpl Datei ein Block ausgeschnitten und in eine neu angelegten tpl Datei kopiert, sind im Frontend die Textplatzhalter in dieser Form zu sehen: #PLATZHALTER#.

Um sie wieder mit den richtigen Inhalten zu befüllen, muss man im Backend zu den Textbausteinen. Hier wird beim ersten Frontend-Aufruf der tpl Datei im Browser zu der tpl Datei ein Namespace angelegt, in dem man die Texte neu definieren kann.

$var = $this->container->get('snippets')
->getNamespace('frontend/detail')
->get("SNIPPETNAME");

 

Nicht Escaped

{s namespace="frontend/listing/box_article" name="Star"}{/s}

 Escaped

{s namespace="frontend/listing/box_article" name="Star"|escape}{/s}