Demo-Installation und Menü-Anpassung

Für Fragen und Diskussionen zum Layout und Design, Templates und Stylesheets sowie Themes
Post Reply
jester

Demo-Installation und Menü-Anpassung

Post by jester »

In einem anderen Thread zu meinem Menüproblem schreibt cyberman:
Das ist eigentlich keine große Kunst, weil bereits in den mitgelieferten Stylesheets gezeigt wird, wie es funktioniert.

Mit scheint, der Auslieferungsumfang von CMSms (also die Demo-Installation) wird von vielen Usern stark unterschätzt. Im Gegensatz zu anderen CMS enthält die Muster-Installation nicht nur eine simple Beispielseite, sondern viele wertvolle Informationen zum Liefer- und Funktionsumfang zu CMSms. Auch die mitgelieferten Templates und Stylesheets sind durchaus hochwertig und für Studienzwecke gut geeignet.
Interessanterweise setzen aber genau dort mein Probleme ein. Ich bin grundsätzlich von der Einfachheit und auch der guten Dokumentation von CMSms überrascht und meine Schwierigkeiten entstammen wahrscheinlich eher meiner persönlichen Unkenntnis oder, dass ich vielleicht noch nicht die Info gefunden habe, die ich suche.

Ich schildere mal, wo meine Hauptschwierigkeiten liegen, weil ich in etlichen Posts anderer Einsteiger ähnliche Probleme sehe.

Das Zusammenspiel der einzelnen Templates und Styles sowie Modulen und Tags zu begreifen ist nicht leicht. Zuvor kannte ich eben statische HTML-Seiten mit DIVs und Layern, sprich: CSS. Damit komme ich ganz gut zurecht.

Jetzt habe ich aber statt zwei Elementen (HTML-Seite und dazugehöriges Stylesheet) noch ein drittes Element - den Menümanager. Aha.

Das Template, das ja wirklich leicht verständliches HTML mit ein paar geschweiften Klammern ist, wird also über das CSS-Icon mit einem oder mehreren (! das war mir auch nicht sofort klar, dass das geht!) Stylesheets verknüpft. OK.

Ein Menü erhalte ich über die Zeile {cms_module module="menumanager" template='name des menutemplates das ich verwenden will'}
Soweit auch gut nachvollziehbar.

Weil ich aber kein Programmierer bin, finde ich die Menütemplates (z.B. simplemenu.tpl) extrem schwer lesbar und verständlich. Was fängt wo an und hört wo auf? Vor allem - welche Klassen und Elemente-Namen werden verwendet und was meinen sie genau? Hier finde ich die Dokumentation, auch wenn die Templates kommentiert sind, nicht mehr so leicht verständlich. Und das finde ich eben leider auch nicht in der Demo-Installation erklärt.

Vielleicht kann man da noch diesen Teil hinzufügen, das würde den Zugang zu diesem CMS noch transparenter machen.

Nächtliche Grüße

Jester
cyberman

Re: Demo-Installation und Menü-Anpassung

Post by cyberman »

jester wrote: auch der guten Dokumentation von CMSms überrascht
Danke für die Blumen  :) - ich bin mit dem aktuellen Zustand der Doku alles andere als zufrieden. Es gibt noch zu viele Lücken, um die "komplexe Einfachheit" zu verstehen.
Das Zusammenspiel der einzelnen Templates und Styles sowie Modulen und Tags zu begreifen ist nicht leicht.
Unter anderem ein Punkt, der mir noch fehlt.
Jetzt habe ich aber statt zwei Elementen (HTML-Seite und dazugehöriges Stylesheet) noch ein drittes Element - den Menümanager.
Jain. Der Einfachheit halber zitiere ich hier mal meine Doku von http://demo.cmsmadesimple.de/index.php? ... ue-manager:
Mit der Muster-Installation werden bereits drei Templates mitgeliefert. Diese sind für die meisten Webseiten ausreichend, da das Menü einfach nur eine Liste ist, die mittels CSS gestaltet wird.
Der Menümanager ist zwar für die Generierung der Menüs erforderlich, aber im Normalfall kannst du ihn genau so schnell wieder vergessen. Du musst dir nur die CSS-Klassen/IDs aus den MenuManager-Templates entnehmen.

Bei meinen Projekten fange ich im Normalfall immer mit den mitgelieferten Templates/Stylesheets an. Die sind vielfach getestet und können auch mit den verschiedenen Browser umgehen (erforderliche Hacks etc.). Ich muss das Rad also nicht noch einmal erfinden ...
wird also über das CSS-Icon mit einem oder mehreren (! das war mir auch nicht sofort klar, dass das geht!) Stylesheets verknüpft.
Noch eine der Lücken, die ich meinte ...
Ein Menü erhalte ich über die Zeile {cms_module module="menumanager" template='name des menutemplates das ich verwenden will'}
Aktuell kannst du auch {menu template='name des menutemplates das ich verwenden will'} verwenden.
Weil ich aber kein Programmierer bin, finde ich die Menütemplates (z.B. simplemenu.tpl) extrem schwer lesbar und verständlich.
Das ist Smarty, die Template-Engine von CMSms - guckst du hier

http://smarty.php.net/
Was fängt wo an und hört wo auf? Vor allem - welche Klassen und Elemente-Namen werden verwendet und was meinen sie genau?


Ich bin zwar auch kein Programmierer, aber ich versuchs einfach mal  ;D. Bleiben wir einfach mal bei dem MenuManager-Template simple_navigation.tpl:

Code: Select all

{* CSS classes used in this template:
.activeparent - The top level parent when a child is the active/current page
li.active0n h3 - n is the depth/level of the node. To style the active page for each level separately. The active page is not clickable.
.clearfix - Used for the unclickable h3 to use the entire width of the li, just like the anchors. See the Tools stylesheet in the default CMSMS installation.
li.sectionheader h3 - To style section header
li.separator - To style the ruler for the separator *} 
Zu Beginn eines jeden MenuManager-Templates werden die verwendeten CSS-Klassen aufgeführt:

.activeparent - Klasse für die Gestaltung des übergeordneten Menü-Eintrags der aktuellen Seite (so vorhanden)
li.active0n h3 - n bezeichnet die Ebene des Menü-Eintrags. Damit kann die aktive Seite jeder Ebene separat gestaltet werden. Der Menü-Eintrag der aktiven Seite ist nicht klickbar.
.clearfix - Wird verwendet, damit die unklickbaren h3 die gleiche Breite haben wie die restlichen Listen-/Menü-Einträge. Die Klasse wird im Stylesheet Tools festgelegt.
li.sectionheader h3 - Klasse für die Gestaltung des Inhaltstyps SectionHeader
li.separator - Klasse für die Gestaltung des Inhaltstyps Separator

Code: Select all

{if $count > 0}
Enthält das Menü aktive Einträge? Falls ja, Öffnung einer

Code: Select all

<ul>

Code: Select all

{foreach from=$nodelist item=node}
Schleife für die Abfrage aller Menü-Einträge

Code: Select all

{if $node->depth > $node->prevdepth}
{repeat string="<ul>" times=$node->depth-$node->prevdepth}
Hat der aktuelle Menü-Eintrag untergeordnete Seiten?

Falls ja, Eröffnung einer weiteren

Code: Select all

{elseif $node->depth < $node->prevdepth}
{repeat string="</li></ul>" times=$node->prevdepth-$node->depth}
Falls nein, Schließung der

Code: Select all

</li>
{elseif $node->index > 0}</li>
{/if}
Wenn noch weitere Menü-Einträge vorhanden sind, wird nur der Listen-Eintrag geschlossen.

Code: Select all

{if $node->current == true}
<li class="currentpage"><h3><dfn>Current page is {$node->hierarchy}: </dfn>{$node->menutext}</h3>
Formatierung des aktuellen Menü-Eintrags

Code: Select all

{elseif $node->parent == true}
<li class="activeparent"><a class="activeparent" href="{$node->url}"{if $node->accesskey != ''} accesskey="{$node->accesskey}"{/if}{if $node->tabindex != ''} tabindex="{$node->tabindex}"{/if}{if $node->titleattribute != ''} title="{$node->titleattribute}"{/if}><dfn>{$node->hierarchy}: </dfn>{$node->menutext}</a>
Formatierung des übergeordneten Eintrags des aktuellen Menü-Eintrages

Code: Select all

{elseif $node->type == 'sectionheader'}
<li class="sectionheader">{$node->menutext}
Formatierung für den Inhaltstyp "SectionHeader"

Code: Select all

{elseif $node->type == 'separator'}
<li class="separator" style="list-style-type: none;"> <hr />
Formatierung für den Inhaltstyp "Separator"

Code: Select all

{else}
<li><a href="{$node->url}"{if $node->accesskey != ''} accesskey="{$node->accesskey}"{/if}{if $node->tabindex != ''} tabindex="{$node->tabindex}"{/if}{if $node->titleattribute != ''} title="{$node->titleattribute}"{/if}{if $node->target != ''} target="{$node->target}"{/if}><dfn>{$node->hierarchy}: </dfn>{$node->menutext}</a>

{/if}
Formatierung aller anderen Menü-Einträge

Code: Select all

{/foreach}

{repeat string="</li></ul>" times=$node->depth-1}</li>
</ul>
{/if}
Abschluss der Abfrage-Schleife und Schließung aller geöffneten

Die genaue Bedeutung der Bezeichner($node->url usw.) findest du in der Hilfe des MenuManagers.
Hier finde ich die Dokumentation, auch wenn die Templates kommentiert sind, nicht mehr so leicht verständlich. Und das finde ich eben leider auch nicht in der Demo-Installation erklärt.
Wie gesagt, eines von vielen Projekten, die ich noch in der Schublade habe  :-\ ...
Last edited by cyberman on Fri Jun 01, 2007 8:28 am, edited 1 time in total.
jester

Re: Demo-Installation und Menü-Anpassung

Post by jester »

cyberman,

wow! Was für eine umfassende Anwort. Da werde ich einige Zeit dran zu arbeiten haben. Da ich gerade mal wieder am frickeln bin, hier meine erste Reaktion zu einigen Problem, mit denen ich gerade kämpfe:
Du musst dir nur die CSS-Klassen/IDs aus den MenuManager-Templates entnehmen.
Da hat ein klassischer Anfänger wie ich das Problem, diese zu finden. Wo sind sie? Auch wenn das vielleicht eine "blöde Frage" ist - ich such mir da einen Wolf!

Und - wenn ich einfach nur den menumanager einbinde - kann ich dann eigentlich diese nervige Angabe der Hierarchienummer auch deaktivieren?

Deine Aufschlüsselung des simple_navigation.tpl ist schon sehr hilfreich - weil alles quasi aneinanderhängt, wenn man den Code nicht lesen kann, wird es sehr schwer rauszufinden, was wirklich relevant ist, um geändert zu werden.

Die smarty-Tags sind für Programmierer sicher leicht zu verstehen - und ich nöle jetzt nicht rum, sondern versuche vor allem zu verdeutlichen, worüber man anfangs stolpert - für jemanden ohne Vorkenntnisse dieser Art ist die Einarbeitung eine weitere Baustelle. Ich weiß, das ist ein Dilemma. Einerseits möchte ich natürlich meine Layout-Ideen bzw. die Vorgaben meiner Kunden umsetzen, andererseits möchte ich auch nicht zu tief in die Materie eindringen müssen.

Abschließend noch eine Frage: Ich habe auch nirgendwo gefunden, welches .tpl man am Besten für welchen Zweck einsetzt. Klar, die Namen sind so einigermaßen sprechen, aber was sie genau beeinflussen (und was wiederum nicht) erschließt sich einem Anfänger kaum.


Danke und Gruß

Jester
cyberman

Re: Demo-Installation und Menü-Anpassung

Post by cyberman »

jester wrote:
Du musst dir nur die CSS-Klassen/IDs aus den MenuManager-Templates entnehmen.
Da hat ein klassischer Anfänger wie ich das Problem, diese zu finden. Wo sind sie?
Wie gesagt, zum einen steht es bei den mitgelieferten Templates gleich oben drin. Zum anderen sollte es nicht alle zu schwer sein, die Bezeichner "class" und "id" aus dem Template zu entnehmen.

Nicht zuletzt sollte man sich der Bedeutung von CSS (Cascading Style Sheets) bewusst sein, oder mit anderen Worten, dass CSS nicht nur als

Code: Select all

.class
sondern auch kaskadiert eingesetzt werden können wie hier

Code: Select all

li.active0n h3
In den mitgelieferten Menü-CSS findest du da komplexe Konstruktionen, speziell, wenn es um die Formatierung von höheren Ebenen geht ;).
kann ich dann eigentlich diese nervige Angabe der Hierarchienummer auch deaktivieren?
http://forum.cmsmadesimple.org/index.ph ... l#msg59871

Oder du entfernst es direkt aus dem MM-Template
Current page is {$node->hierarchy}: {$node->menutext}
url}"{if $node->accesskey != ''} accesskey="{$node->accesskey}"{/if}{if $node->tabindex != ''} tabindex="{$node->tabindex}"{/if}{if $node->titleattribute != ''} title="{$node->titleattribute}"{/if}>{$node->hierarchy}: {$node->menutext}
Die smarty-Tags sind für Programmierer sicher leicht zu verstehen
Bin selbst weit davon entfernt, einer zu sein :).
Einerseits möchte ich natürlich meine Layout-Ideen bzw. die Vorgaben meiner Kunden umsetzen, andererseits möchte ich auch nicht zu tief in die Materie eindringen müssen.
Auch, wenn ich mich wiederhole, die mitgelieferten MM-Templates sind für einen Großteil der gewünschten Menüs ausreichend, so dass du dich nicht oder nur selten damit befassen musst, da via CSS alles gestaltet werden kann.
Ich habe auch nirgendwo gefunden, welches .tpl man am Besten für welchen Zweck einsetzt.
Das kann man so pauschal auch nicht sagen, da es aufgrund der Möglichkeiten / Parameter des MenüManagers viele Einsatzmöglichkeiten gibt. Schau dir einfach (noch mal) die Musterinstallation an

http://demo.cmsmadesimple.de/index.php? ... _templates

Da werden auch die unterschiedlichen Menüs und deren Möglichkeiten gezeigt.

Je mehr du mit CMSms arbeitest, desto mehr wirst du erkennen, wie flexibel es einsetzbar ist.
jester

Re: Demo-Installation und Menü-Anpassung

Post by jester »

Mann, vielen Dank! Wieder was, wo ich Tage dran lernen kann!  :-*
Wie gesagt, zum einen steht es bei den mitgelieferten Templates gleich oben drin. Zum anderen sollte es nicht alle zu schwer sein, die Bezeichner "class" und "id" aus dem Template zu entnehmen.
Ich meinte mit meiner Frage, dass ich anfangs gar nicht verstanden habe, wo ich die Templates überhaupt finde. Dass ich die mit dem Icon mit dem blauen Pfeil auf weißem Blatt aufrufen und unter anderem Namen abspeichern kann.

Das Problem ist auch weniger ein mangelnde Dokumentation, sondern mehr, das passende für das eigene Problem an den verschiedenen Orten zu finden.

Ich habe vor, über meine eigene Problemlösung eine Art Tutorial für blutige Anfänger zu entwickeln, das einfach nur zeigt, was mache ich in welcher Reihenfolge und was finde ich wo. Wird noch etwas dauern, aber Deine Erklärungen helfen mir sehr!

Jester
cyberman

Re: Demo-Installation und Menü-Anpassung

Post by cyberman »

jester wrote: Ich meinte mit meiner Frage, dass ich anfangs gar nicht verstanden habe, wo ich die Templates überhaupt finde.
...
Das Problem ist auch weniger ein mangelnde Dokumentation,
Wenn es nicht (gut genug) dokumentiert ist, kannst du es auch nicht wissen 8).
sondern mehr, das passende für das eigene Problem an den verschiedenen Orten zu finden.
Stimmt. Die Verknüpfungen sind für Einsteiger nicht unbedingt einfach zu verstehen. Allerdings irritiert evtl. auch die doppelte Menü-Führung. Eine Idee, die ich schon seit der Version 0.12 mit mir rumschleppe, ist eine Überarbeitung der Administration.
Ich habe vor, über meine eigene Problemlösung eine Art Tutorial für blutige Anfänger zu entwickeln, das einfach nur zeigt, was mache ich in welcher Reihenfolge und was finde ich wo.
Klingt interessant ... die Idee dazu liegt auch schon eine halbe Ewigkeit in meiner Schublade.
jester

Re: Demo-Installation und Menü-Anpassung

Post by jester »

Klingt interessant ... die Idee dazu liegt auch schon eine halbe Ewigkeit in meiner Schublade.
Prima, dann kannst Du ja korrigierend eingreifen, wenn ich irgendwo in die falsche Richtung laufe.

Jester
cyberman

Re: Demo-Installation und Menü-Anpassung

Post by cyberman »

Schon irgend welche Ergebnisse?
jester

Re: Demo-Installation und Menü-Anpassung

Post by jester »

Ich habe mittlerweile eine Anleitung für Editoren als PDF vorliegen, die per PN bei mir angefordert werden kann. Außerdem füllt sich mein Outliner mit kleinen Anleitungen für Installation und Programmierung. Inzwischen verstehe ich besser, wie ich Menus einbinden kann, aber noch nicht so gut, dass ich mit meiner Anleitung "an die Öffentlichkeit" gehen mag.

:)

Grüße

Jester
cyberman

Re: Demo-Installation und Menü-Anpassung

Post by cyberman »

Schade ...
cyberman

Re: Demo-Installation und Menü-Anpassung

Post by cyberman »

jester wrote: Ich habe vor, über meine eigene Problemlösung eine Art Tutorial für blutige Anfänger zu entwickeln, das einfach nur zeigt, was mache ich in welcher Reihenfolge und was finde ich wo.
Hmm, für ein bißchen Tutorial sollte es doch reichen, oder :D?!

Manchmal ist es gerade die Sicht eines Newbies, Probleme der Neuanfänger zu verstehen ...
jester

Re: Demo-Installation und Menü-Anpassung

Post by jester »

Hi cyberman,

es ist nicht allein das Zutrauen in meine Fähigkeiten, momentan habe ich einfach zu viele Projekte und noch eine Bronchitis...

jester
cyberman

Re: Demo-Installation und Menü-Anpassung

Post by cyberman »

Na dann erst mal gute Besserung :) ...
Post Reply

Return to “Layout und Design”