MenuImage Plugin

Hilfe zu Modulen und Tags
Post Reply
Andiministrator

MenuImage Plugin

Post by Andiministrator »

In CMSms Versionen vor 1.6 konnte man über Smarty in den Menu Manager Templates das Bild einer Inhaltsseite auslesen (welches im Klappmenü des Reiters "Optionen" ausgewählt war). Seit der Version 1.6 ist dies leider nicht mehr möglich.

Deshalb habe ich ein kleines Plugin erstellt, welches die Funktionalität nachstellt. Falls es jemand braucht, es kann hier heruntergeladen werden: http://dev.cmsmadesimple.org/projects/menuimage

Ein Menu Template könnte z.B. so aussehen:

Code: Select all

{if $count > 0}
	<ul>
		{foreach from=$nodelist item=node}

			{if $node->depth > $node->prevdepth}
				{repeat string="<ul>" times=$node->depth-$node->prevdepth}
			{elseif $node->depth < $node->prevdepth}
				{repeat string="</li></ul>" times=$node->prevdepth-$node->depth}
				</li>
			{elseif $node->index > 0}
				</li>
			{/if}

			{capture assign='linktext'}{menuimage id=$node->id alt=$node->menutext css_class='menuimage'}{/capture}
			{if !$linktext}{capture assign='linktext'}{$node->menutext}{/capture}{/if}

			{if $node->current == true}
				<li class="currentpage"><span>{$linktext}</span>
			{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}>{$linktext}</a>
			{elseif $node->type == 'sectionheader'}
				<li class="sectionheader"><span>{$linktext}</span>
			{elseif $node->type == 'separator'}
				<li class="separator" style="list-style-type: none;"><hr />
			{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}>{$linktext}</a>
			{/if}

		{/foreach}
		{repeat string="</li></ul>" times=$node->depth-1}</li>
	</ul>
{/if}
cyberman

Re: MenuImage Plugin

Post by cyberman »

Ähmm, trotz des Parameters loadprops funktioniert es nicht ?
Andiministrator

Re: MenuImage Plugin

Post by Andiministrator »

Doch, sollte auch funktionieren. Nur war das anfangs nicht dokumeniert, und im Forum hatte niemand auf mein Problem geantwortet (http://forum.cmsmadesimple.org/index.ph ... 89.30.html). Bis es dann dokumentiert war, hatte ich das Plugin schon fertig ;)
cyberman

Re: MenuImage Plugin

Post by cyberman »

Die Idee mal ein bißchen weitergedacht könnte dein Plugin das bessere loadprops werden, indem ich selbst festlegen kann, welche der nun standardmäßig inaktiven Eigenschaften geladen werden sollen :) ...
Andiministrator

Re: MenuImage Plugin

Post by Andiministrator »

Ich habe mir den Quellcode von loadprops noch nicht angeschaut, aber ich weiß nicht, ob das durch ein Plugin verbessert werden kann. Momentan wird das MenuImage Plugin ja für jeden Menüpunkt seperat ausgeführt, d.h. es gibt für jeden Menüpunkt eine neue (wenn auch sehr kleine) Datenbankabfrage. Hier könnte man zwar über ein globales Array entgegenwirken, aber ist denn loadprops wirklich so lahm? Hat da schon mal jemand eine Performance-Messung durchgeführt?
cyberman

Re: MenuImage Plugin

Post by cyberman »

loadprops wurde ja eingeführt, um einen Teil der Queries einzusparen. Wird loadprops nun verwendet, gibts gleich wieder die volle Dröhnung - daher meine Idee, einzelne Fähigkeiten separat zuschalten zu können.
Andiministrator

Re: MenuImage Plugin

Post by Andiministrator »

Naja, ich würde gern mal eine Laufzeitmessung durchführen, wo das derzeitige MenuImage Plugin gegen das loadprops antritt. Wenn es in der jetztigen Version schon schneller ist, würde sich eine Weiterentwicklung vielleicht wirklich lohnen. Sobald ich etwas Zeit habe, mache ich das mal.
Post Reply

Return to “Module und Tags”