Page 2 of 8

Re: Plugin Pimenu

Posted: Sat Oct 29, 2005 8:43 am
by Piratos
Was ich sagen wollte: die Produktion der Menü-Rohdaten sollte nicht durch den Aufruf einer Seite, sondern durch Updates im Admin-Bereich ausgelöst werden.
Das ist genau der Kernpunkt meiner Kritik an dieser CSMS - freut mich, dass dieses auch von jemanden geschrieben wird, der noch nicht so lange dabei ist.

Re: Plugin Pimenu - Neu Version 1.5 - NEUER RECORD

Posted: Sat Oct 29, 2005 8:55 am
by Piratos
Ab heute nachnmittag gegen 15.00 gibt es eine neue Version.

Generated in 1.800248 seconds by CMS Made Simple 0.11-beta4 (not cached) using 10 SQL queries

Das sind nicht etwa Zeiten für das statische Menü, sondern es ist kein statisches Menü , aber eines mit über 5000 Positionen    - bei gleichzeitiger Erstellung und dem Schreiben des statischen Menüs  mit über 500 KB Umfang  - neuer Rekord !!!

Der Grund  - ich habe mich komplett von der Standardprozedure GetAllContent - wie sie überall verwendet wird - getrennt und lese die Datenbank einfach direkt aus.

Ich war ehrlich überrascht, einen solchen Zuwachs an Speed hätte ich nicht erwartet.

Das bedeutet aber auch, dass diese CMS im Bereich Contentmanager beschissen programmiert ist, ansonsten wäre das nicht möglich.

Ich habe Pimenu ebenfalls komplett neu aufgestellt, doppelten Code (Zuweisungen an Variablen) entfernt - das bringt bis auf besser überschaubaren Code aber nur nicht mehr messbare Microsekunden.

Es werden zusätzlich show_in_menu, parent_id und hierarchy, sowie Dummyeinträge für Menüs mit Rollover Grafiken an Smarty übergeben.

Die Hierachyübergabe ist dabei das wichtigste, da damit direkte Ausblendungen einzelner Menüeinträge und ganzer Bereiche möglich ist.

Re: Plugin Pimenu

Posted: Sat Oct 29, 2005 9:16 am
by cyberman
Piratos wrote: Der Grund - ich habe mich komplett von der Standardprozedure GetAllContent - wie sie überall verwendet wird - getrennt und lese die Datenbank einfach direkt aus.
Über MySQL oder ADODB ?

Re: Plugin Pimenu

Posted: Sat Oct 29, 2005 9:25 am
by Lohengrin
Der Geschwindigkeitszuwachs liegt vermutlich am Verzicht auf die dynamische Klasseninstanzierung in GetAllContent:

Code: Select all

if (in_array($row['type'], array_keys(@ContentManager::ListContentTypes())))
{
	$contentobj = new $row['type'];
	$contentobj->LoadFromData($row, $loadprops);
	array_push($result, $contentobj);
}
Sieht echt fies aus! Und ist vollkommen unnötig, wenn es doch eigentlich nur darum geht, die Hierarchie aufzubauen.

PS: So neu bin ich gar nicht... Eher etwas still...

JETZT DOWNLOADEN 1.05

Posted: Sat Oct 29, 2005 10:59 am
by Piratos
Habe fertig.
Über MySQL oder ADODB ?
Natürlich Adodb - lass mich doch nicht wieder von bestimmten Leuten anpinkeln, ausserdem ist das für mich auch bequemer.

Sourcecode ist erheblich geschrumpft.

Es werden paar DInge mehr an Smarty übergeben, so z.B. Dummys für Grafikmenüs bzw. deren Bilderchen, parent_id und die volel Hierarchy damit man bestimmte Gruppen oder einzelne Seiten gezielt angreifen kann.

Ausserdem noch das jumpmenu und Erklärung als PDF.
Sieht echt fies aus!
Verfolge mal alle Sprünge, dann weist du auch warum das dauert.

Nachtrag:

Wishy hat da auch schon etwas über die Möglichkeiten von Pimenu bemerkt
It might be worth looking into the pimenu thing that's floating around.  Should be able to modify the output enough to get the rollovers you need.

Nachtrag:

Habe in der Anleitung folgendes vergessen:

->show_in_menu
ist 0 wenn bei der Erfassung es so gesetzt ist oder 1 (wird gezeigt)
Dieser Wert muss im Menütemplate ausgewertet werden, wenn es solche Inhalte gibt, die auf 0 gesetzt wurden.

Re: Plugin Pimenu

Posted: Sat Oct 29, 2005 2:14 pm
by Svenni
Also entweder mache ich irgend etwas falsch oder da funktioniert bei mir irgend etwas (noch) nicht im Zusammenspiel 11beta4 und der neuen pimenu. Ich bekomme immer nur so kryptische und (lange) leere Menüs zurückgeliefert (siehe Anlage). Ich nutze das mit der neuen Version mitgelieferte jumpform.tpl, bei den anderen Templates ist es aber auch so.

[attachment deleted by admin]

Re: Plugin Pimenu

Posted: Sat Oct 29, 2005 3:38 pm
by Piratos
Also

1. das alles habe ich unter 0.11 beta4 erstelt und getestet

2. das template sieht so aus:




---Please select---
{foreach from=$rawmenu item=entry}
{if $entry->type eq 'separator'}
------
{else}
url}">{$entry->menutext}
{/if}
{/foreach}



3. Das kleine Javascript steht in der Anleitung und muss im Headerbereich eingebunden werden

4. Die Inhalte stammen auf dem direkten Wege  aus deiner Datenbank ohne Zusatze
    {$entry->menutext} ist der direkt von dir vorgegebene Text für den jeweiligen Inhalt


5. Das sieht dann z.B. so wie mein Screenshot







[attachment deleted by admin]

Re: Plugin Pimenu

Posted: Sat Oct 29, 2005 4:10 pm
by Piratos
Und wo wir gerade bei Bildern sind hier pimenu.tpl, die Nachbildung vom CSSMENU.

Auch hier gilt laut Anleitung, dass das Javascript con dem Module manuell eingebunden werden muss.
In der 0.11beta4 ist CSSMENU Standard, deswegen ist die CSS schon vorhanden (wenn Installation nicht geändert wurde).

Man beachte beim Bild, das im statischen Menu automatisch die class="currentpage" nicht zum Einsatz kommt, da ja sinnlos.

Die Daten sind bis auf die obligatorischen aus der Installation mit Script erzeugte Dummydaten.



[attachment deleted by admin]

Re: Plugin Pimenu

Posted: Sat Oct 29, 2005 4:27 pm
by Svenni
Hmmm - könnte natürlich auch noch sein, dass ich beim Aufruf zu wenig Parameter mitgebe bzw. einen wichtigen vergessen habe. So wie ich die Anleitung bisher verstanden habe, sollte für die von Dir gezeigten Ergebnisse doch

{pimenu template='jumpmenu.tpl'}

reichen, oder?


Nachtrag:
Ich habe mal die jumpform.tpl, die der neuen Version beiliegt, mit Deinem Script oben verglichen. Eine Zeile stimmt nicht überein, da ist was zu viel:
url}">{$entry->menutext} {$entry->hierarchy}
Kann es daran liegen? Ein kurzer Test erbrachte allerdings auch keine Änderung.

Re: Plugin Pimenu

Posted: Sat Oct 29, 2005 5:32 pm
by Piratos
Vorsicht beim schnellen Test hintereinander - default ist statisches Menü  und wenn du keinen Wert für seconds eingetragen hast, ändert ich in 60 Minuten nichts.  Also entweder Cache löschen oder parameter seconds=0 angeben (das wäre zum testen besser)..

Auf dem Bild sieht es aber aus , als wenn da schon etwas ist.

Was sollte denn statt nn, ss, &&, && stehen.

Funktionieren die Links ??

Re: Plugin Pimenu Unterstützung bei Imagemaps

Posted: Sat Oct 29, 2005 5:34 pm
by Piratos
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.

Re: Plugin Pimenu

Posted: Sat Oct 29, 2005 5:48 pm
by Svenni
Piratos wrote: Vorsicht beim schnellen Test hintereinander - default ist statisches Menü  und wenn du keinen Wert für seconds eingetragen hast, ändert ich in 60 Minuten nichts.  Also entweder Cache löschen oder parameter seconds=0 angeben (das wäre zum testen besser)..

Auf dem Bild sieht es aber aus , als wenn da schon etwas ist.
Hat leider alles nichts gebracht - keine Änderungen zu sehen. :(
Was sollte denn statt nn, ss, &&, && stehen.
Die normale Menüstruktur. In einer Neuinstallation mit Standardinhalten, die ich eben zu Testzwecken noch mal gemacht hat, sieht das ganze genauso aus: Nur dieser "kryptische Kram", massig Leerraum und "Home Page" werden von allen Templates erzeugt.
Funktionieren die Links ??
Nur der vorhandene Eintrag, Rest "The requested URL was not found on this server.". Wenn ich mir den Quelltext der ausgegebenen Seite anschaue, sieht das - entpersonalisiert - so aus:

Code: Select all

<form>

<select name="pulldown" onChange="jumpBox(this.form.elements[0])">
<option>---Please select---</option>
<option value="http://www.wasweissdenn.ich/cmsms11b4/index.php?Hör*erlebnisse=n">n</option>
<option value="http://www.wasweissdenn.ich/cmsms11b4/index.php?Hör*erlebnisse=1">Home Page</option>
<option value="http://www.wasweissdenn.ich/cmsms11b4/index.php?Hör*erlebnisse="></option>
<option value="http://www.wasweissdenn.ich/cmsms11b4/index.php?Hör*erlebnisse="></option>
<option value="http://www.wasweissdenn.ich/cmsms11b4/index.php?Hör*erlebnisse=S">S</option>
<option value="http://www.wasweissdenn.ich/cmsms11b4/index.php?Hör*erlebnisse="></option>
<option value="http://www.wasweissdenn.ich/cmsms11b4/index.php?Hör*erlebnisse=&">&</option>
<option value="http://www.wasweissdenn.ich/cmsms11b4/index.php?Hör*erlebnisse=&">&</option>
<option value="http://www.wasweissdenn.ich/cmsms11b4/index.php?Hör*erlebnisse="></option>

<option value="http://www.wasweissdenn.ich/cmsms11b4/index.php?Hör*erlebnisse="></option>
<option value="http://www.wasweissdenn.ich/cmsms11b4/index.php?Hör*erlebnisse="></option>
<option value="http://www.wasweissdenn.ich/cmsms11b4/index.php?Hör*erlebnisse="></option>
<option value="http://www.wasweissdenn.ich/cmsms11b4/index.php?Hör*erlebnisse="></option>
<option value="http://www.wasweissdenn.ich/cmsms11b4/index.php?Hör*erlebnisse="></option>
<option value="http://www.wasweissdenn.ich/cmsms11b4/index.php?Hör*erlebnisse="></option>
<option value="http://www.wasweissdenn.ich/cmsms11b4/index.php?Hör*erlebnisse="></option>
<option value="http://www.wasweissdenn.ich/cmsms11b4/index.php?Hör*erlebnisse="></option>
<option value="http://www.wasweissdenn.ich/cmsms11b4/index.php?Hör*erlebnisse="></option>
<option value="http://www.wasweissdenn.ich/cmsms11b4/index.php?Hör*erlebnisse="></option>
<option value="http://www.wasweissdenn.ich/cmsms11b4/index.php?Hör*erlebnisse="></option>
<option value="http://www.wasweissdenn.ich/cmsms11b4/index.php?Hör*erlebnisse="></option>
<option value="http://www.wasweissdenn.ich/cmsms11b4/index.php?Hör*erlebnisse="></option>
<option value="http://www.wasweissdenn.ich/cmsms11b4/index.php?Hör*erlebnisse="></option>
<option value="http://www.wasweissdenn.ich/cmsms11b4/index.php?Hör*erlebnisse="></option>
<option value="http://www.wasweissdenn.ich/cmsms11b4/index.php?Hör*erlebnisse="></option>
<option value="http://www.wasweissdenn.ich/cmsms11b4/index.php?Hör*erlebnisse="></option>

<option value="http://www.wasweissdenn.ich/cmsms11b4/index.php?Hör*erlebnisse="></option>
<option value="http://www.wasweissdenn.ich/cmsms11b4/index.php?Hör*erlebnisse=m">m</option>
<option value="http://www.wasweissdenn.ich/cmsms11b4/index.php?Hör*erlebnisse="></option>
</select>
</form>

Re: Plugin Pimenu

Posted: Sat Oct 29, 2005 6:08 pm
by Piratos
n
Wo kommt dann dieser Link her ??

Aus der CMS wohl kaum - wüsste zumindest nicht, dass es eine Domainform .ich gäbe - das bedeutet, der Link geht ins Leere die URL wird nicht gefunden.

Zum anderen fehlt da etwas - die CMS gibt wesentliche Daten über die Variable $config her und so wird es auch verarbeitet :

$config["root_url"]."/index.php?".$config["query_var"]."=".$onecontent['content_id']

Das ergibt den Link der auf einem  lokalen server dann so aussieht:

Code: Select all

http://localhost/ctest/index.php?page=17
In der $config["query_var"] steht normalerweise "page" - das fehlt hier vollkommen.

$onecontent['content_id'] kommt aus deiner Datenbank und enthält die ID des aktuellen Inhaltes.

Deine komischen Zeichen  stammen  wahrscheinlich von Hör*erlebnisse  - dein Webserver kommt mit den Umlauten nicht klar - ist falsch  eingestellt .

Also in deiner CMS -Konfiguration ist etwas oberfaul und deine Webserverkonfiguration stelle ich ebenfalls in  Zweifel.

Re: Plugin Pimenu

Posted: Sat Oct 29, 2005 7:31 pm
by Svenni
Piratos wrote:

Code: Select all

http://localhost/ctest/index.php?page=17
Ich hab' nochmal neu installiert, diesmal hat er die richtige URL draus gemacht. Hat nur leider nichts gebracht - immer noch dasselbe. :(

Allerdings habe ich jetzt mal in die Seiteninformationen geschaut - und evtl. einen Hinweis auf den Verursacher gefunden: Bei den kryptischen und leeren Einträge/Links steht als Typ "Anker".

Re: Plugin Pimenu

Posted: Sat Oct 29, 2005 8:32 pm
by Piratos
Den Type gibt es aber überhaupt nicht und Typen werden auch nicht ausgegeben.

There are currently 5 main content types in version 0.11-beta4 "Trinidad":

    * Content
    * Link
    * Separator
    * Section Header
    * News


neues template als test.tpl

{foreach from=$rawmenu item=entry}

{$entry->type} --- {$entry->url} ---  {$entry->menutext}



{/foreach}



Dann  tmp/template_c/test.tpl  (vorher aber parameter seconds streichen). posten