Shopware Knowledgebase

Shopware Labs

Der Bereich Shopware Labs ist die Plattform für alle Entwickler. Hier findet man technische Dokumentationen und zahlreiche Tipps und Tricks rund um das Thema Programmieren. In dieser Rubrik stellen außerdem die Entwickler der shopware AG neue und experimentelle Lösungsansätze vor. Neue Funktionen, die in dieser Rubrik bereitgestellt werden, sind teilweise auch für zukünftige Releases geplant. Die Funktionen können dann ohne Programmierkenntnisse zukünftig direkt im Shopware Backend konfiguriert werden oder werden über Plugins bereitgestellt. Informationen über neue, geplante Funktionen finden Sie in unserer Roadmap.

Bitte beachten Sie, dass die hier bereitgestellten Lösungsansätze nicht offiziell supportet werden und nur eingebaut werden sollten, sofern Sie über das entsprechende, technische Wissen verfügen.

Shopseiten deaktivieren, per Link aber erreichbar machen

0 Kommentare

Das Problem:

Eigene Shopseiten oder auch Statische Seiten wie z.B. das Impressum werden einer Menüstruktur zugeordnet und werden somit auch direkt in der Navigation sichtbar. Wenn Sie nun aber einen Artikel Ausblenden bzw. Deaktivieren möchten, ordnen Sie die Shopseite den Zustand "In Bearbeitung" zu. Die Seite ist ab jetzt nicht mehr erreichbar. Nun sollen einzelne oder mehrere Shopseiten aber doch erreichbar werden,- z.B. als Link in einem anderen Artikel.

So lösen Sie das Problem:

Um eine Shopseite aus der Navigation zu entfernen ohne ihn zu deaktivieren können Sie das jeweilige Template anpassen.

Die Template Datei befindet sich unter »IHRTEMPLATE/frontend/index/menu_left.tpl«. Haben Sie bisher kein Templateordner erstellt, legen Sie das Template sowie die Ordnerstruktur an. Soll diese Funktion für alle Templates gelten, so legen Sie die Datei unter »/_local/frontend/index/« an. Ersetzen Sie die in diesem Beispiel verwendete Bezeichnung "DEAKTIVE_ID" durch die Artikel-ID Ihrer Shopseite, z.B. "33".

 
{* Static sites *}
{if $sMenu.gLeft}
<ul id="servicenav">
   <li class="heading">{se name="MenuLeftHeading"}Informationen{/se}</li>
   {foreach from=$sMenu.gLeft item=item}
{if $item.id != 'DEAKTIVE_ID'}
      <li>
         <a href="{if $item.link}{$item.link}{else} 
         {url controller='custom' sCustom=$item.id title=$item.description}{/if}" 
         title="{$item.description}" {if $item.target}target="{$item.target}"{/if}> 
         {$item.description}
         </a>
      </li>
{/if}
   {/foreach}
</ul>
{/if}
 

Es wird in diesem Fall also geprüft, ob die ID aus dem Array mit Ihrer DEAKTIVE_ID übereinstimmt. Solange das nicht der Fall ist, werden die Links auch angezeigt. Übereinstimmungen werden hingegen nicht mehr angezeigt.

Wenn Sie gleich mehrerer hintereinander folgende Shopseiten auf diese Weise ausblenden wollen, ersetzen Sie den Part

 
{if $item.id != 'DEAKTIVE_ID'}
 

durch eine erweiterte Prüfung:

 
{if $item.id >=  'DEAKTIVE_ID_ERSTE' && $item.id <= 'DEAKTIVE_ID_LETZTE'}
 

So können Sie mit wenig Aufwand auch Bereiche ausschließen.

Hilfe! Ich bin kein Programmierer.

Kein Problem. Sie können einen ähnlichen Weg auch rein über das Backend erreichen- sofern es stets um einzelne Seiten geht. Setzen Sie die jeweilige Shopseite auf den Status in Bearbeitung. Die Shopseite ist dann nicht mehr Sichtbar. Die jeweilige ID der Seite merken Sie sich bitte.

Wenn es in diesem Fall aber um Verlinkungen aus einem anderen Text geht, können Sie mit diesem Beispiellink kombiniert mit dieser Shopseiten ID (hier 33) auch auf die Shopseite verweisen. Der Link sieht dann so aus:

 
<a href="http://mein.shop.de/?sViewport=custom&sCustom=33">Name des Links</a>
 

Artikel-PDF erstellen

Artikel bewerten

Waren diese Informationen hilfreich? Ja Nein


Kommentare:

Artikel kommentieren


Die mit einem * markierten Felder sind Pflichtfelder.

Weitere interessante Artikel:

Bezeichnung:
Rating:
Klicks:
Datum:

Bestell-Nr.: SW1582

Lieferzeit ca. 5 Tage

€ 1,00

Preise inkl. gesetzlicher
MwSt. zzgl. Versandkosten*

€ 1,00

Preise inkl. gesetzlicher
MwSt. + Versandkosten*

Kategorien: