Page 5 of 8
Re: Plugin Pimenu
Posted: Fri Nov 11, 2005 5:54 pm
by Svenni
Piratos wrote:
Was du da machst wird sowieso nur mit pimenu laufen
Das ist mir schon klar. Nur wird es ohne bereits vorhandene Werte mit Pimenu schwierig, wenn man nicht Pisearch als Suchmaschine benutzt oder gar interne Links nutzen will. Da stimmt dann auch wieder nichts mehr. Demgegenüber sind die Sectionheader schon "von Haus aus" immer vorhanden und ändern sich - wenn man sie nicht selbst ändert

- auch nicht und somit eine "verlässliche" Grösse, die Piemnu auch wirklich die zur Seite gehörenden Menüs so ausgeben lässt, wie sie vorgesehen sind.
Aber das ist ja nicht mein Problem neue Version 2.06 steht auf Wunsch eines "einsamen" CMS'lers zur Verfügung.
Danke, danke, danke, danke - jetzt gibt's wirklich nichts besseres an CMS als die Kombination CMSMS und Pimenu. Und ich habe die letzten 2 - 3 Jahre schon viele getestet - und am Ende für nicht praktikabel oder zu undurchschaubar befunden.
Die Arbeit mit Pimenu neigt sich langsam dem Ende zu, es wird noch etwas gemacht um die breadcrumbs zu ersetzen und das war's auch schon langsam.
Oh? Das war auch so eines der aufgetretenen Probleme bei Nutzung des pimsw: Wenn man dort die Links benutzt, stimmten die ganzen Menüs natürlich auch nicht mehr.
Nachtrag: Argh - kein Wunder, dass ich mich wundere, immer die 2.04 zu ziehen, wenn die neuen Versionen jetzt im DEV-Bereich stehen. Wenn ich nicht zufällig Deine aktuelle Sig gesehen hätte, würde ich mich wohl morgen noch wundern. Wäre vielleicht ganz gut, den alten Downloadlink in diesem und dem Posting zur 2.04 zu editieren?

Re: Plugin Pimenu
Posted: Fri Nov 11, 2005 6:32 pm
by Svenni
Öööhm - ich glaube, da kommen sich noch irgend welche Werte im Pimenu-Script in die Quere. Es wird derzeit der letzte gesetzte (reale) Sectionheader dort eingetragen, nicht aber der Sectionheader des letzten Eintrages. In meinem unten genannten Beispiel müsste das so, wie ich die Funktion bisher aufgefasst hatte, wie folgt aussehen (hab's gleich auf die relevanten Werte reduziert und gegliedert):
Code: Select all
Startseite --- SH: --- LSH:
SECTIONHEADER: startseite --- SH: SECTIONHEADER: startseite --- LSH:
(Wechsel SH)
Hoerspielserien --- ID: 7 --- SH: SECTIONHEADER: startseite --- LSH: SECTIONHEADER: startseite
SECTIONHEADER: hoerspielserien --- SH: SECTIONHEADER: hoerspielserien --- LSH: SECTIONHEADER: startseite
(Wechsel SH)
Abrafaxe --- SH: SECTIONHEADER: hoerspielserien --- LSH: SECTIONHEADER: hoerspielserien
SECTIONHEADER: abrafaxe --- SH: SECTIONHEADER: abrafaxe --- LSH: SECTIONHEADER: hoerspielserien
(Wechsel SH)
Einleitung --- SH: SECTIONHEADER: abrafaxe --- LSH: SECTIONHEADER: abrafaxe
Besetzung --- SH: SECTIONHEADER: abrafaxe --- LSH: SECTIONHEADER: abrafaxe
Macher --- SH: SECTIONHEADER: abrafaxe --- LSH: SECTIONHEADER: abrafaxe
Folgen --- SH: SECTIONHEADER: abrafaxe --- LSH: SECTIONHEADER: abrafaxe
(02) Unter Verdacht --- SH: SECTIONHEADER: abrafaxe --- LSH: SECTIONHEADER: abrafaxe
(01) Der Prozess --- SH: SECTIONHEADER: abrafaxe --- LSH: SECTIONHEADER: abrafaxe
Knight Rider --- SH: SECTIONHEADER: abrafaxe --- LSH: SECTIONHEADER: abrafaxe
SECTIONHEADER: knightrider --- SH: SECTIONHEADER: knightrider --- LSH: SECTIONHEADER: abrafaxe
(Wechsel SH)
Folgen --- SH: SECTIONHEADER: knightrider --- LSH: SH: SECTIONHEADER: knightrider
(01) Michael Knight --- SH: SECTIONHEADER: knightrider --- SH: SECTIONHEADER: knightrider
Hoerbuecher --- SH: SECTIONHEADER: knightrider --- LSH: SH: SECTIONHEADER: knightrider
SECTIONHEADER: hoerbuecher --- SH: SECTIONHEADER: knightrider --- LSH: SECTIONHEADER: hoerbuecher
(Wechsel SH)
Ich habe Dir mal zwei Menüs ohne jede Einschränkungen, die ich so auch zu Testzwecken und zur Fehlersuche benutze, fertig gemacht:
http://www.svenwesten.de/cmstest/
Einmal ein Jumpmenü mit und einmal ein Jumpmenü ohne Ausgabe von last_sh. Den Sectionheadern habe ich Dir zur besseren Übersicht in den Testdaten ein "SECTIONHEADER: " vorangestellt.
Re: Plugin Pimenu
Posted: Fri Nov 11, 2005 7:13 pm
by Piratos
Das kann doch keiner lesen.
Schmeiss mal die unwichtigen Sachen raus und beschränke dich auf die wesentlichen Punkte.
Mach mal einen Screenshot aus Admin Listcontent, damit ich mal sehen kann wie du das aufgebaut hast.
Oder noch besser schick mir mal ein Backup nur von den Tabellen content und content_props plus dem Maintemplate und den Menütemplates.
Re: Plugin Pimenu
Posted: Fri Nov 11, 2005 7:26 pm
by Svenni
Piratos wrote:
Schmeiss mal die unwichtigen Sachen raus und beschränke dich auf die wesentlichen Punkte.
Erledigt und aus dem Jumpmenü zur besseren Übersicht ein Bulletmenü gemacht:
http://www.svenwesten.de/cmstest/index.php
Mach mal einen Screenshot aus Admin Listcontent, damit ich mal sehen kann wie du das aufgebaut hast.
Erledigt, siehe Anlage.
Oder noch besser schick mir mal ein Backup nur von den Tabellen content und content_props
Falls Dir der Screenshot nicht weiterhilft, mach ich das nachher.
plus dem Maintemplate und den Menütemplates.
Alles noch Standard ohne weitere Änderungen, da blosse Anzeige der vorhandenen Tabellenstruktur.
[attachment deleted by admin]
Re: Plugin Pimenu
Posted: Fri Nov 11, 2005 7:31 pm
by Piratos
Und wie sollen nun Inhalte in deine Menüs gepresst werden ?
Welche sollen wo rein oder separiert werden ?
------------------------------------------------------
Mit last_sh wird das ja ein Aufwand, warum nicht einfach einen "Startheader definieren" dann den nächsten, usw.
--------------------------------------------------------
Bei dieser CMS wundert mich eines, content_ailais darf nicht doppelt eingegeben werden, aber man kann einige Male den gleichen Namen für einen Header eingeben.
Re: Plugin Pimenu
Posted: Fri Nov 11, 2005 7:40 pm
by Svenni
Piratos wrote:
Mit last_sh wird das ja ein Aufwand, warum nicht einfach einen "Startheader definieren" dann den nächsten, usw.
Ich vermute mal, wir haben beide was anderes unter last_sh verstanden. Für mich war das immer der ... hmmmm ... letzte current_sh (oh - diese exakte Beschreibung von dem, was ich die ganze Zeit meinte, fällt mir jetzt erst auf), also des vorherigen Eintrages. Beispiel aus meiner Teststruktur:
Code: Select all
SECTIONHEADER: abrafaxe --- SH: SECTIONHEADER: abrafaxe --- LSH: SECTIONHEADER: hoerspielserien
Einleitung --- SH: SECTIONHEADER: abrafaxe --- LSH: SECTIONHEADER: abrafaxe (-> current_sh wird neu gefüllt)
Besetzung --- SH: SECTIONHEADER: abrafaxe --- LSH: SECTIONHEADER: abrafaxe (-> ab hier sind beide sh-Werte gleich)
Macher --- SH: SECTIONHEADER: abrafaxe --- LSH: SECTIONHEADER: abrafaxe
Folgen --- SH: SECTIONHEADER: abrafaxe --- LSH: SECTIONHEADER: abrafaxe
(02) Unter Verdacht --- SH: SECTIONHEADER: abrafaxe --- LSH: SECTIONHEADER: abrafaxe
(01) Der Prozess --- SH: SECTIONHEADER: abrafaxe --- LSH: SECTIONHEADER: abrafaxe
Knight Rider --- SH: SECTIONHEADER: abrafaxe --- LSH: SECTIONHEADER: abrafaxe
SECTIONHEADER: knightrider --- SH: SECTIONHEADER: knightrider --- LSH: SECTIONHEADER: abrafaxe
Folgen --- SH: SECTIONHEADER: knightrider --- LSH: SH: SECTIONHEADER: knightrider (-> current_sh wird neu gefüllt)
Zur angedachten Funktionsweise mal ein Beispiel:
Du rufst irgend einen Menüpunkt auf. Wenn Du jetzt sagst
Code: Select all
{if $entry->current_sh eq $entry->last_current_sh}
beschränkst Du die nachfolgenden Abfragen damit praktischerweise auf den aktuell gültigen current_sh, denn es werden nur die Inhalte ausgegeben, bei denen beide Werte identisch sind. Und die kann man dann z. B. mittels depth-Beschränkung noch weiter einschränken.
Ergebnis sind Menütemplates, die bei Verwendung von Pimenu-Templates auch durch Aufruf über interne Links, Breadcrumbs, Module etc.
immer die Menüs so anzeigen, wie man sie gedacht hat. Da sie nichts weiter benötigen als den für die aufgerufene Seite gültigen current_sh. Und das, ohne dauernd in den Templates rumzuwerkeln, diese anzupassen/zu erweitern oder irgendwelche Werte über Links an pimsw zu übergeben, welche sich jederzeit ändern können.
Für Dich dagegen war last_sh wohl von vornherein der letzte "real" gesetzte Sectionheader. Tut mir leid, wenn wir uns so aneinander vorbeigeredet haben, aber manchmal ist es doch recht schwierig, seine Ideen/Vorschläge/Wünsche in Worte zu fassen. Ich hoffe, ich habe die Problemstellung jetzt besser erläutern können.
Nachtrag:
Allerdings weiss ich immer noch nicht so recht, ob das wirklich der richtige Wert ist. Mir schwant nämlich gerade, dass das auch nicht so ganz passen könnte beim Filtern. Ich habe mir dazu eine Liste der Ermittlung von $current_sh (was wohl nach reiflicher Überlegung die richtigere Bezeichnung sein dürfte, $entry->last_current_sh wird ja erst aus den Menüdaten erstellt und schränkt somit nicht auf den aktuell gültigen Datensatz ein) gemacht:
1. aktuelle ID der Seite ermitteln, auf der man sich gerade befindet
2. diesen in der Pimenu-Menütabelle lokalisieren
3. $current_sh den current_sh des unter (2.) ermittelten Eintrages in der Pimenu-Menütabelle zuweisen
Alternativ könnte man den Wert auch $page_sh nennen. Bei näherer Betrachtung ist das sogar die treffendste Bezeichnung für diesen Wert.
Alles andere dürfte, wenn ich es mir recht überlege, wohl auch nicht zum gewünschten Ziel führen, da wir ja eine feste Variable brauchen und nicht noch eine, die sich dauernd ändert. Ich lerne zwar langsam, aber doch hinzu. 
Waren meine Gedankengänge einigermassen logisch? Ich weiss, ich bin ein schwiiiiieriger Fall. 
Re: Plugin Pimenu
Posted: Sat Nov 12, 2005 9:27 am
by Piratos
Das Problem Nummer 1 ist es immer das Ziel genau zu formulieren, was man verfolgt.
Ist es formuliert muss man eine Logik dazu entwickeln.
Danach sollte man versuchen diese Logik auf den einfachsten Nenner zu bringen, also zu minimieren, damit sich ein möglicher Ablauf herausstellt.
Dann muss man sehen, wie es sich mit der Logik vorhandener Module oder Plugins verbinden oder realisieren lässt.
Ich habe zwar eine Ahnung, was du gerne möchtest, aber es nützt mir sehr wenig, deine Testläufe zu sehen.
Mir fehlen schlicht die Daten um dich konkret unterstützen zu können und ich werde bei mir keine zig Daten eingeben.
Schick mir einfach die angesprochenen Daten und ich versuche dabei zu helfen, weil mich die Aufgabe interessiert - es bringt nicht viel das hier im Forum lang und breit zu treten.
Re: Plugin Pimenu
Posted: Sat Nov 12, 2005 11:19 am
by Svenni
Piratos wrote:
Ich habe zwar eine Ahnung, was du gerne möchtest, aber es nützt mir sehr wenig, deine Testläufe zu sehen.
Mir fehlen schlicht die Daten um dich konkret unterstützen zu können und ich werde bei mir keine zig Daten eingeben.
Schick mir einfach die angesprochenen Daten und ich versuche dabei zu helfen, weil mich die Aufgabe interessiert - es bringt nicht viel das hier im Forum lang und breit zu treten.
Ööhm - hab' ich doch im Nachtrag genau beschrieben. War aber vielleicht zu viel Text gestern, weil ich selbst noch an der Formulierung des gesuchten Wertes herumfeilte.

:
Ich habe mir dazu eine Liste der Ermittlung von $current_sh (was wohl nach reiflicher Überlegung die richtigere Bezeichnung sein dürfte, $entry->last_current_sh wird ja erst aus den Menüdaten erstellt und schränkt somit nicht auf den aktuell gültigen Datensatz ein) gemacht:
1. aktuelle ID der Seite ermitteln, auf der man sich gerade befindet
2. diesen in der Pimenu-Menütabelle lokalisieren
3. $current_sh den current_sh des unter (2.) ermittelten Eintrages in der Pimenu-Menütabelle zuweisen
Also zusammenfassend den Wert des Sectionheaders der aktuell angezeigten Seite in Variablenform, quasi analog zu $current__hierarchy, der dann wohl $current_sh oder $page_sh heissen müsste.

Re: Plugin Pimenu
Posted: Sat Nov 12, 2005 1:28 pm
by Piratos
startseite - kein last_sh vorhanden, da es vorher noch keinen gab
danach folgt hoerspielserien , jetzt ist last_sh startseite
danach folgt abrafaxe , jetzt ist last_sh hoerspielserien
Das läuft also korrekt
$entry->current_sh wird ja auch ausgegeben
Sectionheader dienen der optischen Trennung in Menüs.
Im Rahmen seiner Möglichkeiten kann man das auch zur Steuerung von Pimenu nutzen.
Aber an Sectionheader sind keine Links gebunden, man kann also die optisch getrennten Bereiche
bestenfalls auch in Inhaltsbereiche für Pimenu verwerten.
Ein Klick auf einen Sectionheader bringt also nichts.
Und - es wird immer eine Hilfsvariable benötigt, die es hier auch unter dem Namen pimsw gibt.
Nur mit dieser Hilfsvariaben kannst du von aussen nach innen einwirken und das ist notwendig,
weil das System ja wissen muss, wie es auf Uservorgabe zu reagieren hat.
Beispiel - pimenu mit einem 2 Sprachenweb mit dem jumpmenu:
Deutsch
English
---Please select---
{foreach from=$rawmenu item=entry}
{if $entry->type eq 'separator'}
------
{else}
{if $entry->current_lang eq 0 and $pimsw eq 0 and $entry->show_in_menu eq 1}
{if $entry->type neq 'sectionheader'}
url}&pimsw=0">{$entry->menutext}
{else}
url}">{$entry->menutext}
{/if}
{elseif $entry->current_lang eq 1 and $pimsw eq 1 and $entry->show_in_menu eq 1}
{if $entry->type neq 'sectionheader'}
url}&pimsw=1">{$entry->menutext}
{else}
url}">{$entry->menutext}
{/if}
{/if}
{/if}
{/foreach}
------------------------------------------------------------------
Steuerung von Deutsch auf English:
Deutsch
English
Hier wird der Wert von pimsw auf 0=deutsch oder 1 englisch gesetzt.
Das bedeutet - klicke ich auf English wird dem pimenu mitgeteilt, dass der Wert von pimsw die 1 ist.
Dann und nur dann kann ich im Haupteil den betreffenden Teil anstarten.
Würde pimsw wegfallen:
{if $entry->current_lang eq 0 and $entry->show_in_menu eq 1}
bzw.
{if $entry->current_lang eq 1 and $entry->show_in_menu eq 1}
dann würde ich immer ALLE Werte erhalten und nicht meine gewünschte Auswahl.
In deinem Fall ist die Sprachsteuerung egal aber genau das System kann zur Lösung deiner Aufgabe verwendet werden.
Du musst nur daran denken - die Daten kommen sequentiell.
Du musst nur deine Inhalte in deinem Sinne ordnen
startseite -- pimsw 0
hoerspieleserien -- pimsw 1
abfrafaxe -- -- pimsw 2
noch mehr Gruppen -- pimsw 3 usw.
stop
und das Pimenu über Parameter mitteilen und auch sinnvoll auswerten.
Die Inhalte zwischen den angemeldeteten Gruppen können alle Typen enthalten.
Die Gruppen kannst du im Multimenümodus verteilen wie du willst, allerdings könnte bei dir auch ein einziges Template ausreichen.
Du benötigst also immer dein Startmenü und daraus oder aus den Werten der aufgemachten Untermenüs kann man dann springen.
last_sh oder current_sh wird dazu überhaupt nicht benötigt.
Re: Plugin Pimenu
Posted: Sat Nov 12, 2005 3:10 pm
by Svenni
Piratos wrote:
Du musst nur deine Inhalte in deinem Sinne ordnen
startseite -- pimsw 0
hoerspieleserien -- pimsw 1
abfrafaxe -- -- pimsw 2
noch mehr Gruppen -- pimsw 3 usw.
stop
und das Pimenu über Parameter mitteilen und auch sinnvoll auswerten.
Die Inhalte zwischen den angemeldeteten Gruppen können alle Typen enthalten.
Die Gruppen kannst du im Multimenümodus verteilen wie du willst, allerdings könnte bei dir auch ein einziges Template ausreichen.
Du benötigst also immer dein Startmenü und daraus oder aus den Werten der aufgemachten Untermenüs kann man dann springen.
last_sh oder current_sh wird dazu überhaupt nicht benötigt.
Ich hab' das ganze ja schon mal so gelöst gehabt, dass bei Menülinkerzeugung je nach Bedarf die IP oder die PID des Menüeintrages an pimsw übergeben wird. Nur leider stürzt das ganze - logischerweise - sofort wie ein Kartenhaus zusammen, wenn man nicht die angepassten Menüs benutzt. Daher ist das leider auch keine Lösung gewesen.
Re: Plugin Pimenu
Posted: Sat Nov 12, 2005 3:20 pm
by Svenni
Hmmmm - das Schalterproblem könnte man ja evtl. auch anders lösen. Mir ist da beim Lesen Deiner Ausführungen eine andere Idee gekommen, die zum selben gewünschten Ergebnis führt. Nur mit dem Unterschied, dass Pimenu beim Aufruf schon weiss, was Sache ist.
Also, folgende Idee:
Kann man das ganze Pimenu beim Aufruf nicht als Schalter übergeben, das nur die Menüeinträge ausgegeben werden sollen, die zur selben Section gehören bzw. den selben Sectionheader haben wie die aktuelle Seite? Dann könnte Pimenu
1. die Menütemplates wie bisher abarbeiten,
2. bei gesetztem Schalter in den bisher erstellten Daten nach dem current_sh der aktuellen Seite suchen und
3. die auszugebenen Menüeinträge nochmal auf diesen current_sh beschränken.
Das könnte dann beispielsweise so aussehen:
Code: Select all
{pimenu template="jumpform.tpl" same_section="0"}
= Das ist der Standardausgabe, die dieselben Menüdaten ausgibt wie bisher.
Code: Select all
{pimenu template="jumpform.tpl" same_section="1"}
= Erst läuft alles wie gehabt, nur am Ende werden die auszugebenden Menüeinträge noch einmal nach dem Wert current_sh der aktuellen Seite gefiltert/beschränkt. Die notwendigen Daten hierzu sind ja zwischenzeitlich schon ermittelt worden.
Ginge das?
Re: Plugin Pimenu
Posted: Sat Nov 12, 2005 3:47 pm
by Piratos
Schick mir deine Daten und ich kümmere mich - nochmal mach ich das Angebot aber nicht.
Tastensteuerung und Pimenu
Posted: Sat Nov 12, 2005 3:56 pm
by Piratos
Wer barrierefrei sein Web gestalten will, der möchte manchmal die Möglichkeit der tastensteuerung im Menü haben.
Das geht bei Piemnu nur mit etwas Hilfe von aussen, wenn es sauber laufen soll.
Smarty liefert ein Plugin counter mit , das habe ich etwas verändert und es alphacounter genannt:
Code: Select all
<?php
/**
* Smarty plugin
* @package Smarty
* @subpackage plugins
*/
/**
* Smarty {counter} function plugin
*
* Type: function<br>
* Name: counter<br>
* Purpose: print out a counter value
* @link http://smarty.php.net/manual/en/language.function.counter.php {counter}
* (Smarty online manual)
* @param array parameters
* @param Smarty
* @return string|null
*/
function smarty_function_alphacounter($params, &$smarty)
{
static $counters = array();
$name = (isset($params['name'])) ? $params['name'] : 'default';
if (!isset($counters[$name])) {
$counters[$name] = array(
'start'=>1,
'skip'=>1,
'direction'=>'up',
'count'=>1
);
}
$counter =& $counters[$name];
if (isset($params['start'])) {
$counter['start'] = $counter['count'] = $params['start'];
}
if (!empty($params['assign'])) {
$counter['assign'] = $params['assign'];
}
if (isset($counter['assign'])) {
$smarty->assign($counter['assign'], $counter['count']);
}
if (isset($params['print'])) {
$print = (bool)$params['print'];
} else {
$print = empty($counter['assign']);
}
if ($print) {
$retval = $counter['count'];
} else {
$retval = null;
}
if (isset($params['skip'])) {
$counter['skip'] = $params['skip'];
}
if (isset($params['direction'])) {
$counter['direction'] = $params['direction'];
}
if ($counter['direction'] == "down")
$counter['count'] -= $counter['skip'];
else
$counter['count'] += $counter['skip'];
$out=chr($retval);
return $out;
}
/* vim: set expandtab: */
?>
Dieses Plugin MUSS in lib/smarty/plugins gelegt werden und nicht in den Ordner plugins der CMS, weil es sich hier um eine Funktionserweiterung von Smarty handelt.
Der Aufruf selbst ist dem Original gleich, aber die Wirkung ist anders
Und so sieht ein einfaches Menü mit Tastensuerung als Pimenu Template aus:
Code: Select all
{alphacounter start=64 print=false}
{foreach from=$rawmenu item=entry}
{if $entry->type <>'separator' and $entry->url<>'' and $entry->show_in_menu eq 1}
<a href="{$entry->url}" accesskey="{alphacounter}"{if $entry->iscurrent eq 1}class="currentpage"{/if}> {alphacounter direction="down" print=0}{alphacounter direction="up"} - {$entry->menutext}</a><br />
{elseif $entry->type =='separator'}
<hr class="separator" />
{/if}
{/foreach}
Der erste Aufruf ist die Initialisierung und zwar mit dem Zahlenwert 64 das entspricht dem Zeichen @
Der nächste Wert ist der Buchstabe A usw.
Da der alphacounter bei jedem AUfruf einen höher zählt muss er, wenn der korrekte Buchstabe vor dem Menütext zu sehen sein soll einmal runter gezählt und die Ausgabe unterdrückt werden:
{alphacounter direction="down" print=0}
Danach erfolgt die Anweisung wieder normal hochzuzählen mit {alphacounter direction="up"}
Als Ergebnis erhält man den gleichen Buchstaben wie beim ersten Aufruf.
Nun kann ein Menüeintrag mit Alt und dem Buchstaben direkt gewählt werden, beim IE ist es Alt Buchstabe enter.
[attachment deleted by admin]
Re: Plugin Pimenu
Posted: Sat Nov 12, 2005 4:01 pm
by Svenni
Piratos wrote:
Schick mir deine Daten und ich kümmere mich - nochmal mach ich das Angebot aber nicht.
PM ist raus.

Tastaturnutzung
Posted: Sat Nov 12, 2005 6:03 pm
by Piratos
Zu sehen ist das auch in auf meiner Spielwiese
http://czcms.funpic.de
Ich habe das dort einfach mal in das Like - CSSMENU eingesetzt.