Imagemaps sind eine gerne benutzte Navigationsmöglichkeit für die Startseite eies Webs.
Ausgehend von den sich hinter einem Imagemap verbergenden Links gelangt man zu den Details.
Man benötigt also eine Ansicht ohne die übliche Navigation und nur mit dem Imagemap
und eine mit der üblichen.
Natürlich kann Pimenu keine Imagemaps erzeugen aber das ist ein gutes Beispiel wie man
Pimenu dazu benutzen kann.
Dazu nimmt man sein Haupttemplate und kopiert es sich.
Man hat also MeinTemplate1 und Meintemplate2
MeinTemplate1 erhält keine Navigation und MeinTemplate2 die Standardnavigation.
Es wird eine Inhaltsseite als Default festgelegt, die verwendet MeinTemplate1.
In diese Inhaltsseite wird das Imagemap verankert.
Hier ein Muster eines Imagesmaps aus Selfhtml:
Code: Select all
<div>
<map name="Landkarte">
<area shape="rect" coords="11,10,59,29" href="http://www.koblenz.de/" alt="Koblenz">
<area shape="rect" coords="42,36,96,57" href="http://www.wiesbaden.de/" alt="Wiesbaden">
<area shape="rect" coords="42,59,78,80" href="http://www.mainz.de/" alt="Mainz">
<area shape="poly" coords="48,311,105,248,96,210,75,205,38,234,8,310" href="http://www.baden-aktuell.de/" alt="Baden">
</map>
</div>
<p><img src="karte.gif" width="345" height="312" alt="Karte" usemap="#Landkarte"></p>
Es geht bei Pimenu die jeweils unerwünschten Inhalte auszublenden.
Das was im Imagemap steht soll nicht in der Standardnavigation erscheinen und umgekehrt.
Dazu werden dann Abfragen benutzt:
Kobelenz hat hierarchy 00001, Wiesbaden 00002, Mainz 00003, Baden 00004
Template für die Imagemapseite - pimenu wird in die Inhaltsseite und nicht in MeinTemplate1
eingebunden!
Code: Select all
<div>
<map name="Landkarte">
{foreach from=$rawmenu item=entry}
{if $entry->hierarchy eq '00001'}
<area shape="rect" coords="11,10,59,29" href="{$entry->url}" alt="{$entry->menutext}">
{elseif $entry->hierarchy eq '00002'}
<area shape="rect" coords="42,36,96,57" href="{$entry->url}" alt="{$entry->menutext}">
{elseif $entry->hierarchy eq '00003'}
<area shape="rect" coords="42,59,78,80" href="{$entry->url}" alt="{$entry->menutext}">
{elseif $entry->hierarchy eq '00004'}
<area shape="poly" coords="48,311,105,248,96,210,75,205,38,234,8,310" href="{$entry->url}" alt="{$entry->menutext}">
{/if}
{/foreach}
</map>
</div>
<p><img src="karte.gif" width="345" height="312" alt="Karte" usemap="#Landkarte"></p>
Damit werden alle anderen Positionen unterdrückt.
Das Menütemplate für MeinTemplate2 muss nun in der foreach - Schleife eine Abfrage haben um die in
MeinTemplate1 bereits verwendeten Inhalte zu unterdrücken.
Pimenu wird dann in das MeinTemplate2 eingebunden und nicht in eine Inhaltsseite.
Code: Select all
{foreach from=$rawmenu item=entry}
{if $entry->hierarchy neq '00001' and $entry->hierarchy neq '00002' and $entry->hierarchy neq '00003' and $entry->hierarchy neq '00004'}
Und hier der restliche Teil je nach Menüsystem
{/if}
{/foreach}
Damit der Besucher zur Startseite zurück kommen kann, sollte man manuell den Link dazu in diesem Template
einfügen.
Natürlich wird nicht jedermann ein Imagemap machen wollen, aber die Abfragetechnik ist dann
auch brauchbar, wenn es um eine verteilte Navigation geht - deswegen habe ich das hier einmal
als Beispiel angeführt.
Man kann Pimenu beliebig häufig in einem Template einsetzen, wenn die einzelnen Menütemplates unterschiedliche Namen haben.
So kann man z.B. für bestimmte Dinge eine horizontale Navigation aufbauen und gleichzeitig vertikale.