Plugin Pimenu

Hilfe zu Modulen und Tags
Piratos

Re: Plugin Pimenu

Post by Piratos »

Aus dem eglischen Forum von Alex
How can I modify the depth of the menu, i.e. how many levels are displayed. Is there a way to css-style or indent the menu?
Alex - Pimenu liefert alle Daten die in der CMS überhaupt vorhanden sind plus einige dazu.

Es liefert Daten und kein Menü.

Das Menü machst du selbst mit Hilfe eines Templates. Mustertemplates werden mitgeliefert.

Das Menü entsteht über Smarty

also

1. Pimenu liefert alle Daten
2. Du lieferst das Template und sagst Smarty was es mit den Daten machen soll
3. Smarty liefert das Menü

Dieser auf den ersten Blick vielleicht umständlich erscheinende Art bedeutet aber in der Praxis die völlig Freiheit für den Designer und setzt genau das um, was normalerweise das Ziel von CMS mit Smarty sein soll:

Trennung von Programmcode und Design !!
Piratos

Pimenu 3.0 im Endtest

Post by Piratos »

Wahrscheinlich am Montag zum Download Pimenu 3.0.

Mit dieser Version wird Pimenu kein eigenes statisches Menü schreiben , sondern die Funktion vollständig Smarty überlassen.

Die Kunstgriff ist der Einsatz der Smartyfunktion clear_all_cache

Diese hat die Möglichkeit eines Parameters:

void clear_all_cache ( [int expire_time])

Leert den gesamten Template-Cache. Als optionaler Parameter kann ein Mindestalter in Sekunden angegeben werden, das die einzelne Datei haben muss, bevor sie gelöscht wird.

Diese Zeit ist der bekannte Parameter seconds, der nun aber umgekehrte Wirkung haben wird.

Bei einem Wert von 0 wird praktisch bei jedem Seitenaufruf der komplette Cache gelöscht und damit jeder neu aufgerufene Inhalt mit Smarty vearbeitet.

Bei einem Wert von z.B. 3600 werden bei einem Seitenaufruf nur die Cacheinhalte gelöscht, die älter sind als 3600 Sekunden.

Das heisst, ein hoher Wert von Seconds verlängert die Lebenszeit auch eines Menüs über den Cache.

Unterm Strich bedeutet das - ein Menü ist solange statisch, wie es seine Cache - Datei gibt.

Bei Webs , die selten geändert werden, sollte der Wert von seconds hoch sein, bei Webs die häufig geändert werden sollte er kleiner sein.

Die breadcrumbsfunktion entfällt in der 3.0.
Piratos

Version 3.0 verfügbar

Post by Piratos »

Habe einige Dinge etwas anders gelöst.

100% Smarty und 1090% Integration in die CMS , das war das Ziel und es hat geklappt.

Download über dev.cmsmadesimple.org
Svenni

Re: Plugin Pimenu

Post by Svenni »

Zur 3.0:

Hast Du schon mal ein Template mit normalen Seconds gehabt und hast das dann später im Template auf setforce="1" gestellt? Ich weiss nicht wieso, aber bei voll dynamischen Menüs macht das Probleme, pimenu oder wohl eher Smarty scheint das setforce danach zu ignorieren. :(

Darüber hinaus müsste eine Einstellung von seconds="0" oder seconds="1" doch - wenn ich die Anleitung richtig verstanden habe - bei dynamischen Menü denselben Effekt haben wie setforce="1", nur mit dem Unterschied, dass nicht gleich alles neu kompiliert wird, oder ...? Will aber auch irgendwie nicht funktionieren.
Last edited by Svenni on Sat Nov 19, 2005 9:56 pm, edited 1 time in total.
Piratos

Re: Plugin Pimenu

Post by Piratos »

Der Schalter setforce wird gleich am Anfang abgefragt und bei 1 wird die Smafrtyanweisung gesetzt:

$setforce = isset($params['setforce']) ? $params['setforce'] :0;
if ($setforce) $smarty->force_compile=true;

Zu force_compile sagt das Smarty Handbuch:

Veranlasst Smarty dazu die Templates bei jedem Aufruf neu zu kompilieren. Diese Einstellung überschreibt '$compile_check'. Normalerweise ist dies ausgeschaltet, kann jedoch für die Fehlersuche nützlich sein. In einem Produktiven-Umfeld sollte auf die Verwendung verzichtet werden. Wenn caching eingeschaltet ist, werden die gecachten Dateien bei jedem Aufruf neu kompiliert.

seconds =0 hat NICHT die gleiche Wirkung.

Bei force_compile wird ALLES neu verarbeitet, egal woher das Template stammt - das ist also der Mister Radikalinski , der so gut wie nie benötigt wird und er bringt auch den gesamten Cache - Mechanismus der CMS zum wanken - auch wenn er vor dem verlassen von Pimenu wieder zurück gesetzt wird - es kommt halt darauf an, in welcher Folge Templates vorhanden sind und wie sie in der Folge abgearbeitet werden.

Bei seconds werden lediglich nur die mit Pimenu eingesetzten Templates verarbeitet - alle anderen Templates bleiben unberührt. 
Piratos

Mustermenüs für Pimenu

Post by Piratos »

So brauchbar pimenu auch ist, nicht jeder kann oder will sich mit smarty beschäftigen.

Ich werde daher in der nächsten Zeit die Anzahl der Mustermenüs erweitern.

Zunächst werde ich die Menüvorstellungen von http://gosu.pl/dhtml/mygosumenu.html als Basis nehmen.

Diese verwenden zwar alle Javascript - aber das ist mir ehrlich gesagt völlig egal - denn auch CSSMENU benötigt in allen Fällen wo der IE am werkeln ist, Javascript - mit anderen Worten fast überall.

Wenn ich mygosumenu abgearbeitet habe werde ich daraus eine komplette Sammlung machen und über  dev.cmsmadesimple downloadbar machen.

Dennoch möchte ich gleich hinweisen - es sind funktionierende Beispiele passend für mein Msuterweb und dessen Auslegung. Anderes Design kann andere Templates erfordern.

Die CSS - Daten werden für die Mustererstellung übernommen wie sie waren, egal wie sie aussehen.

Hinweis: Ich werde auf keinen Fall bei einer individuellen Anpassung helfen !!

Hier ein Beispiel eines horizontalen Menüs , das durch einfache Änderung der Eröffnung auch vertikal läuft - es entspricht example1 aus der Kategorie 1.0 von mygosomenu - das Template sieht so aus:

Code: Select all

<table cellspacing="0" cellpadding="0" id="menu1" class="ddm1">
<tr>
{foreach from=$rawmenu item=entry}
{if $entry->show_in_menu eq 1 and $entry->type neq 'separator'}

{if $entry->type eq 'content'}
{if $entry->next_level > $entry->depth}
<a class="item2" href="{$entry->url}">{$entry->menutext}</a>
{elseif $entry->next_level == $entry->depth}
<a class="item2" href="{$entry->url}">{$entry->menutext}</a>
{elseif $entry->next_level < $entry->depth}
<a class="item2" href="{$entry->url}">{$entry->menutext}</a>
</div>
</td>
{/if}

{elseif $entry->type eq 'sectionheader'}
{if $entry->next_level > $entry->depth}
<td><a class="item1{if $entry->number eq 0} left{/if}" href="javascript:void(0)">{$entry->menutext}</a>
<div class="section">
{elseif $entry->next_level == $entry->depth}
<a class="item2" href="javascript:void(0)">{$entry->menutext}</a>
{elseif $entry->next_level < $entry->depth}
{if $entry->menutext eq "Händleranschriften"}
<a class="item1 right" href="javascript:void(0)">{$entry->menutext}</a>
{else}
<a class="item1" href="javascript:void(0)">{$entry->menutext}</a>
{/if}
</div>
</td>
<td>
{/if}
{/if}

{/if}
{/foreach}
</tr>
</table>


[attachment deleted by admin]
Last edited by Piratos on Sun Nov 20, 2005 3:20 pm, edited 1 time in total.
Piratos

Samples aus Tigra Menu

Post by Piratos »

In den nächsten Tagen werde ich einige Mustertemplates aus dem Bereich Tigra Menu bringen.

http://www.softcomplex.com/products/tigra_menu/

Das Besondere daran ist, dass die Menüdaten bei Tigra Bestandteil eines Javascriptes sind bzw. dort innerhalb einer Variablendeklaration gehalten werden - auch kein grosses Ding für Pimenu.

Ich werde nur Templates bringen, die bei mir unter dem IE und unter Firefox 1.07 laufen.

Abruf unter http://www.softcomplex.com/products/tigra_menu/

Die Files werden tigra1.zip usw. heissen.
roemsi

Re: Plugin Pimenu

Post by roemsi »

Hi!

Einmal Danke an Piratos für Pimenu. Das sowas nicht standardmäßig integriert wird versteht wohl keiner.

Ich beschäftige mich seit ca. 3 Tagen damit und muß sagen das ich es zwar noch nicht ganz durchschaut habe vor allem trenner und trenner2 machen mir etwas Kopfzerbrechen. Konnte auch trotz lesen der Anleitung und einiger Templates nicht ganz durchblicken wo wirklich der unterschied ist, bzw. für was man die im endeffekt benötigt. Vielleicht kann mich da mal wer aufklären. Des weiteren folgte ich den Rat von Piratos die Menüs von Mygosu zu templates umzuwandeln. Beschäftigte mich mit dem horizontalen Dropdown Menü (ist glaub ich 1.3 oder 1.2 der examples), naja wie schon erwähnt, noch nicht ganz durchgeblickt.

Ist vielleicht schon ein template von diesem Menü vorhanden? Ich tue mir um einiges leichter wenn ich von Beispielen lernen kann als von theoretischen Beschreibungen.

Und keine Angst ich werde dieses Template nicht verwenden. Ich möchte eigentlich versuchen eine Abart von einem DropDown Menü zu erstellen. Wenn es funktioniert werde ich natürlich das template Piratos für seine examples zu schicken (wenn er das möchte).

Schöne Grüße
Römsi
cyberman

Re: Plugin Pimenu

Post by cyberman »

Schau doch einfach mal hier unter der Rubrik "sample-templates". Vielleicht ist dort schon dabei, was Du suchst :-) .
Piratos

Re: Plugin Pimenu

Post by Piratos »

trenner und trenner2
In den nächsten Tagen wird es eine neue Version von pimenu geben.

Da wird auch adodb auf Sparflamme gestellt und pimenu noch einen Tick schneller.
Ausserdem muss ich die Standardtemplates überarbeiten, da das CSSMenu ja auch nicht stehen geblieben ist.

Ich werde dann in der Anleitung etwas detailierter auf die trenner eingehen.

Nachtrag:

Da die 0.11 er gerade gekommen ist, werde ich die Anpassung damit vornehmen.
Last edited by Piratos on Mon Dec 05, 2005 11:32 am, edited 1 time in total.
Piratos

Pimenu 3.03 ab Montag

Post by Piratos »

Die nächste Version kommt am Montag.

Bisherige Änderungen:
  • Die Ausgabe der Werte für trenner und trenner2 wird intern an anderer Stelle aufbereitet - sicherere Ausgabe
  • Einige Templates wurden an den geänderten Verhältnissen von 0.11.1 angepasst
  • Der Hilfetext zum Plugin wurde auf UTF-8 angepasst und erheblich erweitert.
Piratos

Pimenu 3.03 ist raus

Post by Piratos »

Habe soeben die Version 3.03 zum downlaod bereit gestellt.

Es arbeitet vorzüglich mit der 0.11.1 und der heutigen daily zusammen.

Das Standardtemplate pimenu.tpl habe ich den Gegebenheiten der aktuellen Version vom CssMenu angepasst  - die Ausgabe ist identisch.

Inhalte vom Typ Link funzen einwandfrei (was man von der CMS und den mitgelieferten Menü - Modulen nicht behaupten kann).

Hilfetag wurde umfangreich angepasst und enthält fast das ganze Handbuch.

Update kann ich nur empfehlen !!


[attachment deleted by admin]
Last edited by Piratos on Thu Dec 15, 2005 5:18 pm, edited 1 time in total.
Piratos

Re: Plugin Pimenu

Post by Piratos »

Pimenu ist , was die Downloadzahlen betrifft, gleich nach der CMS selbst auf Platz 2.

Aber - Rückmeldungen oder weitere von Usern erstellte Templates gibt es nicht - schon ein wenig erstaunlich.
cyberman

Re: Plugin Pimenu

Post by cyberman »

Piratos wrote: Aber - Rückmeldungen oder weitere von Usern erstellte Templates gibt es nicht - schon ein wenig erstaunlich.
Das kann doch IMHO nur eins bedeuten - Pimenu funktioniert bereits im Auslieferungszustand so gut, dass die User gar nicht mehr daran denken, etwas anderes einzusetzen, aufzurüsten oder umzustellen  ;D .

Und bislang 2061 Aufrufe dürften das Thema wahrscheinlich zu einem der Topthemen im CMSms-Forum machen.

Da wir aber gerade beim Thema Menu sind - hattest Du vor längerer Zeit nicht mal ein Flashmenu für CMSms erstellt ? Gibts das noch irgend wo ?
Piratos

Re: Plugin Pimenu

Post by Piratos »

Kein Flashmenu, lediglich die XHTML konforme Einbindung von Flash - Dateien in ein Dokument (die Standardart ist nämlich nicht XHTML konform) - da habe ich mal ein plugin gemacht.

Grafische Elemente  einzubinden , wie die automatische Generierung von Buttons, wäre ein Kinderspiel, jedoch war dies ein Bestandteil der zuletzt von mir komplett verkauften CMS und das darf ich nicht so einfach z.B. hier mit einbringen. Aber hier gibt es ja so viele Experten, die könnten so etwas problemlos und  innerhalb 1 - 2 Stunden machen - ich gebe da aber aus den bestimmten Gründen noch nicht einmal Tipps.
Post Reply

Return to “Module und Tags”