Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 12. September 2016 11:31

DokuMan
probiert CMS/ms aus
Registriert: 26. November 2011
Beiträge: 51
Webseite

CMSMS 2: Navigator -> Funktionsname?

Hallo zusammen,

ich habe gesehen, dass beim {Navigator} Modul in der Standardinstallation in der Designverwaltung beim "Simplex Main Navigation" folgendes enthalten ist:

[== php ==]
{function do_class}
    {if count($classes) > 0} class='{implode(' ',$classes)}'{/if}
{/function}

{function name='Simplex_menu' depth='1'}
    <ul{$main_id}{if isset($ul_class) && $ul_class != ''} class="{$ul_class}"{/if}>
        [...]

Wozu wird das "function name=" gebraucht und was hat es mit "do_class" auf sich?

Offline

#2 13. September 2016 21:22

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.018
Webseite

Re: CMSMS 2: Navigator -> Funktionsname?

{function} ... {/function} ist eine Blockfunktion aus dem Smarty Compiler, womit sich in Smarty eine Funktion selbst definieren lässt. Ist adäquat der function() in PHP

https://secure.php.net/manual/de/functi … efined.php

Es wird eine Funktion mit dem Namen do_class definiert, die nichts anderes macht, als die angegebenen CSS-Klassen zu zählen, dann die Klassen, wenn es mehr als 0 ist, über den implode Befehl mit Leerzeichen dazwischen zusammenfügt, so dass im Ergebnis z.Bsp.

class='Klasse1 Klasse2 Klasse3'

ausgegeben wird.

Wobei die Ausgabe nach meinem Geschmack etwas unsauber ist. Übersichtlicher wäre

class="Klasse1 Klasse2 Klasse3"

also mit doppelten Anführungszeichen, denn spätestens bei derartigen Konstrukten

<a href="#" OnClick="Alert('Geklickt!');">Klick mich!</a>

werden die einfachen Anführungszeichen für andere Dinge benötigt, was dann aber den Code inkonsistent macht.

PS: Übrigens, {function} ... {/function} hat primär nichts mit CMSMS 2 zu tun. Diese Möglichkeit bestand bereits seit CMSMS 1.11.x ...

Offline

#3 14. September 2016 07:52

DokuMan
probiert CMS/ms aus
Registriert: 26. November 2011
Beiträge: 51
Webseite

Re: CMSMS 2: Navigator -> Funktionsname?

Danke für die Erleuchtung.
Ich habe das Konstrukt in 1.x noch nirgends gesehen, daher dachte ich das wäre was Neues.

Offline

#4 15. September 2016 13:33

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.018
Webseite

Re: CMSMS 2: Navigator -> Funktionsname?

Keine Ahnung, warum dies bislang nicht eingesetzt wurde.

Würde es auch weiterhin nicht einsetzen, denn so gut und verlockend die Möglichkeit auch scheint, so unperformant ist sie dann auch - muss dieses Konstrukt doch bei jedem Aufruf des Menüs durch die Smarty Maschinerie durch, und das kostet Zeit. Zeit, die der Besucher meist nicht hat... sollte IMHO mit einem Plugin schneller sein, da es einfach näher an PHP dran ist.

Offline