Page 1 of 1

Menü-aufruf im Template eine ID/ Klasse mitgeben

Posted: Mon Apr 12, 2010 1:00 am
by mike-r
Ich hätte mal gern ein kleines Problem, unter Umständen wurde das oder Ähnliches schon einmal behandelt, ich finde leider nichts dazu.
Ich möchte ein Menü ohne wrapper-div stylen. Hierzu bräuchte ich die Funktion eine Klasse oder ID anzufügen. Vielleicht steh ich auch aufm Schlauch grad, ist spät ;)
Beispiel:
Standard:

Code: Select all

{menu template='minimal_menu.tpl'}
gibt mir etwa:

Code: Select all

<ul><li>home...
aus.
Ich möchte aber:

Code: Select all

<ul class="menu1"><li>home...
also was der Art im Template:

Code: Select all

{menu template='minimal_menu.tpl' class='menu1'}
Gibt es da eine Lösung, wo ich nicht allzutief in den Menu-templates graben muss?

Re: Menü-aufruf im Template eine ID/ Klasse mitgeben

Posted: Mon Apr 12, 2010 10:19 am
by NaN
Dazu müsstest Du den MenuManager hacken.
Weil er den Parameter "class" nicht kennt und daher auch nicht ans MenuTemplate weitergibt und es dadurch unter Umständen auch zu einer Warnmeldung kommen kann, dass ein unbekannter Parameter verwendet wurde.

Dir wird nichts anderes übrig bleiben als für jedes Menü ein Template anzulegen, und dort die Klasse class="menu[n]" direkt ins Tag zu schreiben. Das sollte nicht weiter schwer sein. Musst nur das Template in die Datenbank importieren und die Klasse hinzufügen. Ist meistens das erste gleich nach {if $count > 0} das Dir dort über den Weg läuft.
(Beim Namen für das Template aber die Dateiendung weglassen)

Wenn Du lieber Datei-Templates anstelle von Datenbank-Templates verwenden willst, dann mache folgendes:
Lege im Root ein Verzeichnis namens "module_custom" an.
Dort legst Du ein Unterverzeichnis mit dem genauen Namen des Moduls an (in diesem Falle "MenuManager").
Und dort wiederum ein Unterverzeichnis namens "templates".
In dieses Verzeichnis kopierst Du einfach das geänderte MenuManager Template. Muss aber den gleichen Namen haben wie das Original.
(Die Datei-Templates befinden sich in modules/MenuManager/templates).

Re: Menü-aufruf im Template eine ID/ Klasse mitgeben

Posted: Mon Apr 12, 2010 12:04 pm
by nockenfell
NaN wrote: Wenn Du lieber Datei-Templates anstelle von Datenbank-Templates verwenden willst, dann mache folgendes:
Lege im Root ein Verzeichnis namens "module_custom" an.
Dort legst Du ein Unterverzeichnis mit dem genauen Namen des Moduls an (in diesem Falle "MenuManager").
Und dort wiederum ein Unterverzeichnis namens "templates".
In dieses Verzeichnis kopierst Du einfach das geänderte MenuManager Template. Muss aber den gleichen Namen haben wie das Original.
(Die Datei-Templates befinden sich in modules/MenuManager/templates).
Ist das module_custom eigentlich irgendwo dokumentiert? Bisher habe ich dazu lediglich folgende Forenbeiträge gefunden:
http://forum.cmsmadesimple.org/index.ph ... 682.0.html
http://forum.cmsmadesimple.org/index.ph ... 631.0.html

Soweit ich gesehen habe, bringt das module_custom Verzeichnis lediglich für Language und Sprachdateien etwas. Interessanter wäre es natürlich, wenn auch andere PHP Dateien damit verändert werden könnten.

Re: Menü-aufruf im Template eine ID/ Klasse mitgeben

Posted: Mon Apr 12, 2010 12:38 pm
by NaN
nockenfell wrote:
Ist das module_custom eigentlich irgendwo dokumentiert?
So richtig dokumentiert ist es nicht.
Ich kenne es auch nur aus den Ankündigungen und bin mal durch Zufall drüber gestolpert.
nockenfell wrote:
Soweit ich gesehen habe, bringt das module_custom Verzeichnis lediglich für Language und Sprachdateien etwas.
Ist das nicht dasselbe?
Du meinst sicher Templates und Sprachdateien ;)
Aber Du hast recht, das geht nur in diesen beiden Fällen.

So wie ich das aus dem Quellcode entnehmen kann, wird, wann immer ein Modul ein Datei-Template rendern will bzw. wann immer eine Ausgabe in einer bestimmen Sprache erfolgen soll, zuerst nach dem module_custom ordner geschaut.
nockenfell wrote:
Interessanter wäre es natürlich, wenn auch andere PHP Dateien damit verändert werden könnten.
Ja, das wäre es wirklich, aber dann sollte das ganze nicht module_custom, sondern CMS_custom heßen ;)

Re: Menü-aufruf im Template eine ID/ Klasse mitgeben

Posted: Thu Apr 15, 2010 1:03 pm
by mike-r
Danke erst mal, mal schauen, wie ich's mache.