Neu $tplscope mit isset prüfen, um Benutzung eines Snippets zu erleichtern

JohnnyMcDoogle

Aktives Mitglied
14. Mai 2019
27
2
Hallo,

ich möchte vorschlagen, im Snippet snippets/linkgroup_list.tpl die Variable $tplscope in isset() zu wrappen, damit man das Snippet im eigenen Template benutzen kann, ohne das man gezwungen ist, include ein leeres Attribut zu übergeben, wenn man keine Notice über undefined Index haben möchte. Mit $dropdownSupport wird es ja auch gemacht...

Aus "snippets/linkgroup_list.tpl:17":
HTML:
<li class="{if !empty($li->oSub_arr) && isset($dropdownSupport)}dropdown dropdown-multi{/if}{if $li->bIsActive || ($checkLinkParents === true && isset($activeParents) && in_array($li->kLink, $activeParents))} active{/if}{if $tplscope === 'megamenu' && !empty($li->oSub_arr)} bs-hover-enabled{/if}">
wird
HTML:
<li class="{if !empty($li->oSub_arr) && isset($dropdownSupport)}dropdown dropdown-multi{/if}{if $li->bIsActive || ($checkLinkParents === true && isset($activeParents) && in_array($li->kLink, $activeParents))} active{/if}{if isset($tplscope) && $tplscope === 'megamenu' && !empty($li->oSub_arr)} bs-hover-enabled{/if}">


Und aus "snippets/linkgroup_list.tpl:24":
HTML:
<ul class="{if isset($dropdownSupport)}{if $tplscope !== 'megamenu'}inline {/if}dropdown-menu keepopen{else}submenu list-unstyled{/if}">
wird
HTML:
<ul class="{if isset($dropdownSupport)}{if isset($tplscope) && $tplscope !== 'megamenu'}inline {/if}dropdown-menu keepopen{else}submenu list-unstyled{/if}">


Somit kann man im eigenen Template (natürlich auch im Evo) Linklisten statt mit:
HTML:
{include "snippets/linkgroup_list.tpl" linkgroupIdentifier="myLinklist" tplscope=""}
mit
HTML:
{include "snippets/linkgroup_list.tpl" linkgroupIdentifier="myLinklist"}
ausgeben lassen.

Das leere class-Attribut, das zumindest einem Fall in Zeile 17 zustandekommen kann, lasse ich mal außen vor, könnte aber gleich mitgefixt werden. Shop: 4.06.14.
GitLab:


Gruß,
Johnny
 

FMoche

Moderator
Mitarbeiter
15. Dezember 2014
1.369
347
Halle (Saale)
Wir gehen in Shop5 eigentlich genau den umgekehrten Weg - um möglichst wenig Logik in den Templates zu haben, werden viele Variablen pauschal immer deklariert.
Denn wie man an den beiden Zeilen oben sieht, wird es bei so vielen Prüfungen sehr schnell sehr unübersichtlich.

Wenn du das Template also nutzen willst, gib bitte explizit tplscope="meine-eigene-liste" an.
 

Ähnliche Themen