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

#1 28. Dezember 2015 16:56

rage_all
arbeitet mit CMS/ms
Ort: Augsburg
Registriert: 09. März 2011
Beiträge: 281

[CMSms 2.x] Bootstrap-(Navigations)-Template

Ich hoffe dieses Bootstrap-Template (für die Version 3.3.6) für den neuen Menu-Manager kommt jemandem hilfreich:

[== Smarty-Template (Designverwaltung - Navigator:Navigation) ==]
{strip}
{function name='bootstrap_menu' depth='1'}
  <ul{if isset($ul_class) && $ul_class != ''} class='{$ul_class}'{/if}>
   {$main_id = ''}
   {$ul_class = 'dropdown-menu'}
   {foreach $data as $node}
   {$list_class = []}
   {$href_class = ['']}
   {$parent_indicator = ''}
   {$aria_support = ''}

  {if $node->current || $node->parent}{$list_class[] = 'active'}{$href_class[] = ''}{/if}

  {if $node->children_exist}
    {$list_class[] = 'dropdown'}
    {$aria_support = ' aria-haspopup=\'true\' aria-expanded=\'false\''}
    {$parent_indicator = ' <span class=\'caret\'></span>'}
  {/if}

  {if $node->type == 'sectionheader'}
{/strip}

    <li class='dropdown'>
      <a class='dropdown-toggle' href='#' data-toggle='dropdown'>{$node->menutext}{$parent_indicator}</a>
  {if isset($node->children)}
    {bootstrap_menu data=$node->children depth=$depth+1}
  {/if}
{/strip}  </li><!-- eof dropdown //-->
  {else if $node->type == 'separator'}{$list_class[] = 'separator'}{strip}<li><hr class='separator'/></li>{/strip}{else}

          <li>{strip}<a href='{$node->url}'{if $node->target != ''} target='{$node->target}'{/if}>{$node->menutext}{$parent_indicator}</a>{/strip}{if isset($node->children)}{bootstrap_menu data=$node->children depth=$depth+1}{/if}</li>{/if}{/foreach}{/strip}

      </ul><!-- eof dropdown-menu //-->{/function}

{if isset($nodes)}
    {bootstrap_menu data=$nodes depth='0' ul_class='nav navbar-nav'}
{/if}

Unwichtige Funktionen habe ich (hoffentlich) alle entfernt* und die Ausgabe Menschen-Lesbar formatiert. Natürlich können sämtliche {strip}-Tags auch raus und durch eines am Anfang und eines am Ende ersetzt werden für mehr Kompression.
* Wichtig: "Separator" ist unverändert im Template. Einen solchen Trenner kenne ich von Bootstrap nicht - ich wollte nur mögliche Fehlermeldungen damit vermeiden. Evtl. ist es für mehr Speed sinnvoll, den Teil auch noch zu entfernen.

Referenziert wird das Ganze im Template innerhalb eines Bootstrap-Gerüstes, das im Template stehen muss. Dieser Schnipsel gibt also lediglich alles zwischen <ul> und </ul> aus - nicht den Hamburger-Button, usw. Damit ist es auch flexibel einsetzbar für die "inverse"-Bar oder fixed, static, usw.
Falls ich einen Fehler drin hab, sagt es gern.  smile

Beitrag geändert von rage_all (28. Dezember 2015 16:56)

Offline

#2 28. Dezember 2015 21:16

cyberman
Moderator
Ort: Dohna / Sachsen
Registriert: 13. September 2010
Beiträge: 6.878
Webseite

Re: [CMSms 2.x] Bootstrap-(Navigations)-Template

Danke für dein Mini-HowTo!!

Sollte jedoch dies

{$parent_indicator = ' <span class=\'caret\'></span>'}

(und anderes) nicht optimaler so aussehen?

{$parent_indicator = ' <span class="caret"></span>'}

Für meinen Teil halte ich es zur besseren Übersicht so, dass die doppelten Anführungszeichen den HTML-Attributen vorbehalten bleiben, und für Smarty ausschließlich die einfachen Anführungszeichen verwendet werden ... ist aber wohl letztendlich eine Sache der Gewohnheit (und des Alters - arbeite lieber ohne Brille big_smile).


1. Wie bekomme ich hier schnelle Hilfe?
2. HowTo: Fehlersuche bei CMS/ms
---
„First they ignore you, then they laugh at you, then they fight you, then you win.“ Mahatma Ghandi

Offline

#3 29. Dezember 2015 09:34

rage_all
arbeitet mit CMS/ms
Ort: Augsburg
Registriert: 09. März 2011
Beiträge: 281

Re: [CMSms 2.x] Bootstrap-(Navigations)-Template

Ja, da hast Du sicher recht...

Keine Ahnung warum, aber seit HTML5 versuche ich - so gut es geht - alle HTML-Syntax in einfachen Anführungszeichen zu setzen. Ich verspiele mich aber auch im Thema "sexy-code", mindestens bis die Seite live geht. Sicherlich auch vollkommen unsinnig... big_smile

Das System wirft mir nur immer wieder Knüppel dazwischen, die ich häufiger auch gar nicht lösen kann, weil die Ausgaben z.B. in einzelnen Modulen hard-coded sind und beim nächsten Update sowieso wieder weg wären.

Diese eine Syntax hier in diesem Fall hab ich aber tatsächlich aus einem der bereits vorhandenen Templates übernommen (ich glaube es war die 'Simplex Main Navigation').

Ansonsten finde ich die 2.x bislang grauenhaft. Zum Glück schraube ich hier nur für meine eigene neue Seite - so wie es hier irgendwo schonmal gelesen habe: Produktiv ist es augenblicklich eher schwierig einzusetzen. Das einzige, was mich wirklich positiv überrascht hat, war die Geschwindigkeit.

Ansonsten: eine seit Jahren stetig abnehmende Anzahl der contributions, von Modulen bis hin zu Raw-Templates und Designvorlagen, keine neue GUI (die ich durchaus erwartet hätte), jede Menge neuer Arbeitsansätze und Umgewöhnung in meinem Workflow, dessen Sinn ich nicht sehe (Stichwort: globale Variablen ... aber gut, ich bin kein Coder und kann deswegen auch nichts dazu sagen; davon abgesehen ist es die falsche Rubrik für solche (ausserdem fruchtlosen) Diskussionen... angel ). *sorry*

Offline

#4 29. Dezember 2015 10:55

cyberman
Moderator
Ort: Dohna / Sachsen
Registriert: 13. September 2010
Beiträge: 6.878
Webseite

Re: [CMSms 2.x] Bootstrap-(Navigations)-Template

rage_all schrieb:

Keine Ahnung warum, aber seit HTML5 versuche ich - so gut es geht - alle HTML-Syntax in einfachen Anführungszeichen zu setzen.

Ich kann dir nur raten, dir dies wieder abzugewöhnen - damit hast du nämlich den Streß, alle HTML-Attribute entsprechend maskieren zu müssen. Und wehe, du vergisst eines - dann gibts lediglich ein Ooops,  und du suchst dich dumm und dämlich wink. Unterm Strich also eine Fehlerquelle weniger.

rage_all schrieb:

Das einzige, was mich wirklich positiv überrascht hat, war die Geschwindigkeit.

Ich könnte ja jetzt behaupten, dass das (unter anderem) daran liegt, dass man eine ganze Reihe unserer Performance-Vorschläge genutzt hat big_smile big_smile big_smile.

rage_all schrieb:

Ansonsten: eine seit Jahren stetig abnehmende Anzahl der contributions, von Modulen

Naja, solange die wichtigen Anwendungsfälle abgedeckt sind, ist IMHO alles im grünen Bereich - ich brauch nicht tausende Extensions a la Wordpress wink.

rage_all schrieb:

keine neue GUI (die ich durchaus erwartet hätte)

Wäre in meinen Augen für eine neue Main-Version Pflicht gewesen!!! Bei Wordpress gibt's für jede Subversion ein neues Layout.

rage_all schrieb:

Umgewöhnung in meinem Workflow, dessen Sinn ich nicht sehe

Keine Ahnung, warum man bewährtes über Bord wirft  ops ...

rage_all schrieb:

(Stichwort: globale Variablen

Wenn ich recht orientiert bin, liegt das aber eher an Smarty3, und nicht an CMSMS.

rage_all schrieb:

für solche (ausserdem fruchtlosen) Diskussionen... angel

Tja, das ist das größte Problem der Orks. Man war und ist nicht bereit anzuerkennen, sich vergaloppiert zu haben, und wieder einen Schritt zurück gehe zu müssen, um weiter zu kommen.

Ich seh es mal ganz pragmatisch - wir haben immer noch die theoretische Möglichkeit, bis zum offiziellen Ende des 1er Supports im September 2016 noch Zeit, eine gescheite (eigene) Weiterentwicklung abzuliefern :-/ ...


1. Wie bekomme ich hier schnelle Hilfe?
2. HowTo: Fehlersuche bei CMS/ms
---
„First they ignore you, then they laugh at you, then they fight you, then you win.“ Mahatma Ghandi

Offline