moziloCMS Supportforum

moziloCMS => Plugins => Thema gestartet von: azett am 06. Mai 2011, 18:15:02

Titel: Inhaltsseiten teilweise inkludieren: IncludePage
Beitrag von: azett am 06. Mai 2011, 18:15:02
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: )


Anforderungen
Auf 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.


Technik
Das Plugin bekommt drei Parameter übergeben:
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.


Beispiel
Inhaltsseite:[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 Probleme
Ich 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! :)
Titel: Re: Inhaltsseiten teilweise inkludieren: IncludePage
Beitrag von: stefanbe am 06. Mai 2011, 20:13:15
wen du das nimst
list($catparam,$pageparam) = $CatPage->split_CatPage_fromSyntax($params[0]) kanste dir das sparen
        // Kategorie und Seite
        $cat_and_page = explode(":", $params[0]);
        $catparam = "";
        $pageparam = "";
        // "Kategorie:Seite"
        if (count($cat_and_page) == 2) {
            $catparam = $specialchars->replaceSpecialChars($cat_and_page[0],false);
            $pageparam = $specialchars->replaceSpecialChars($cat_and_page[1],false);
        }
        // Seite in gleicher Kategorie ("Seite")
        else {
            $catparam = $CAT_REQUEST;
            $pageparam = $specialchars->replaceSpecialChars($cat_and_page[0],false);
        } 

gruss stefanbe *grins*
Titel: Re: Inhaltsseiten teilweise inkludieren: IncludePage
Beitrag von: freakiger am 09. Mai 2011, 14:51:05
Das hat gefehlt! Danke!

wie sieht das mir einem "von..." aus? Also z.B.: ab der 2. Syntax bis zur 5ten. (ein "von Syntax-A bis Syntax-B" finde ich übertrieben)
Titel: Re: Inhaltsseiten teilweise inkludieren: IncludePage
Beitrag von: azett am 10. Mai 2011, 17:21:59
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.
Titel: Re: Inhaltsseiten teilweise inkludieren: IncludePage
Beitrag von: freakiger am 11. Mai 2011, 12:01:45
@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!?!