Page 1 of 1

MenuImage Plugin

Posted: Wed Jun 24, 2009 8:52 pm
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}

Re: MenuImage Plugin

Posted: Wed Aug 12, 2009 12:56 pm
by cyberman
Ähmm, trotz des Parameters loadprops funktioniert es nicht ?

Re: MenuImage Plugin

Posted: Wed Aug 12, 2009 1:07 pm
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 ;)

Re: MenuImage Plugin

Posted: Fri Aug 14, 2009 5:39 pm
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 :) ...

Re: MenuImage Plugin

Posted: Fri Aug 14, 2009 7:04 pm
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?

Re: MenuImage Plugin

Posted: Fri Aug 14, 2009 7:10 pm
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.

Re: MenuImage Plugin

Posted: Fri Aug 14, 2009 7:27 pm
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.