Salut zusammen,
ich möchte euch mein neues Plugin "IncludePage" vorstellen. Es setzt moziloCMS 1.12.beta4 voraus, denn es nutzt die neue CatPage-Klasse (die das Arbeiten mit den Inhaltsseiten herrlich vereinfacht ??? :mrgreen: )
AnforderungenAuf meiner privaten Website (http://www.azett.com) habe ich in der Kategorie "Start" jeweils eine Inhaltsseite pro Jahr ("2011", "2010", ...), wo ich meine Beiträge sammle.
Die Beiträge bestehen immer aus einer Überschrift (benutzerdefiniertes Syntaxelemen "a_ueber2") und einem DIV mit dem Inhalt (benutzerdefiniertes SE "contentdiv").
Auf der Seite "Aktuelles" wollte ich nun nur die ersten 3 Beiträge des aktuellen Jahres anzeigen, also aus der Inhaltsseite "2011" - und genau das macht das Plugin.
TechnikDas Plugin bekommt drei Parameter übergeben:
- Name der Inhaltsseite (ggfs auch in anderer Kategorie; dann in bekannter Schreibweise "Kategorie:Seite")
- zu suchendes Syntaxelement
- Anzahl des Syntaxelements
Das Plugin liest die übergebene Inhaltsseite ein - gibt aber nur den Teil zurück, in dem das angegebene Syntaxelement genau so oft vorkommt wie gewünscht (z.B. 3x). Sobald das Syntaxelement das nächste (z.B. vierte) Mal auftaucht, wird der Rest abgeschnitten.
BeispielInhaltsseite:
[ueber1|Überschrift 1]
viel Text 1
[ueber1|Überschrift 2]
viel Text 2
[ueber1|Überschrift 3]
viel Text 3
Aufruf des Plugins:
{IncludePage|Seite|ueber1|2}
Ausgabe des Plugins:
[ueber1|Überschrift 1]
viel Text 1
[ueber1|Überschrift 2]
viel Text 2
Vor der dritten großen Überschrift wird der Inhalt also abgeschnitten.
Um die Darstellung des zurückgegebenen Seitenteils kümmert sich dann ganz normal der Syntaxparser.
Nutzungsbeispiele{IncludePage|Seite|ueber1|2}
inkludiert die Inhaltsseite bis zur dritten großen Überschrift.
{IncludePage|Kategorie:Seite|---|0}
inkludiert die Inhaltsseite aus der angebenen Kategorie bis zur ersten horizontalen Trennlinie.
{IncludePage|Seite|trenner|5}
inkludiert die Inhaltsseite bis zum vierten benutzerdefinierten Syntaxelement 'trenner'.
Bekannte ProblemeIch weiß noch nicht, warum - aber Tabellen aus inkludierten Inhaltsseiten kommen nicht an :( -> <table></table> ist im resultierenden HTML-Quelltext, aber keine <tr>s und <td>s.
Vermutung: Die Tabellensyntax wird vom Plugin manipuliert und später vom Syntaxparser nicht mehr erkannt. Muss aber noch ausgiebig erforscht werden -
hat wer Lust? ;)
Wenn sonst noch was schiefgeht, lasst es mich wissen - und bitte auch, wenn alles klappt. Das Plugin ist auf meiner Website (http://software.azett.com/index.php?cat=moziloCMS-Plugins&page=IncludePage) ausführlich dokumentiert und im Pluginverzeichnis (http://cms.mozilo.de/plugins/details.php?image_id=44) verfügbar; außerdem ists in der stets aktuellen Version im offiziellen Plugin-Nightly-ZIP (http://cms.mozilo.de/index.php?cat=moziloCMS&page=moziloCMS-Nightly) enthalten.
Viel Spaß beim Ausprobieren! :)
Zitat von: "stefanbe"wen du das nimst
[...]
kanste dir das sparen
[...]
gruss stefanbe *grins*
Und du hast so recht. Die CatPage-Klasse ist einfach wunderbar :)
Die Änderungen sind im SVN und damit im Plugin-Nightly - außerdem habe ich das Plugin trotz des noch offenen Tabellen-Problems ins Pluginarchiv hochgeladen (http://cms.mozilo.de/plugins/details.php?image_id=44).
Zitat von: "freakiger"wie sieht das mir einem "von..." aus?
War mir klar, dass diese Frage kommt^^ Grundsätzlich ist das möglich, wird aber eine böse RegEx-Schweinerei. "Bis..." ist technisch recht einfach: Gehts z.B. um "ueber2", sucht der aktuelle Algorithmus einfach nach allen Vorkommen von "[ueber2|" und schneidet bei der gewünschten Anzahl einfach davor ab. "Von..." ist komplizierter, da dann ja die
schließende eckige Klammer gesucht wird - die aber allein steht und damit alles andere als einfach zu identifizieren ist.
@azett: vllt kann man, wenn mein Wunsch der "wegklammer-Syntax" (http://forum.mozilo.de/viewtopic.php?f=7&t=1617) erfüllt ist, "IncludePage" mit dieser kombinieren um ein "von..." zu erreichen!?!