[pmwiki-users-de] Automatic wikitrails generation for RSS possible?

Michael Engelke PmWiki at MEngelke.de
Di Mai 27 18:06:48 CDT 2008


Thomas Tempelmann schrieb:
>> Mit Boardmitteln kann man RecentChanges dazu nehmen:
>> Site.AllRecentChanges?action=rss
>> Leider ist die Ausgabe sehr spartanisch!
>>     
> Nee, das reicht eben nicht, weil ich nicht aller Welt die Änderungen meiner
> gesamten Website mitteilen will, sondern nur die an bestimmten Seiten.
>   

Nicht so schnell! Es gibt Site.AllRecentChanges und $Group.RecentChanges 
und meinetwegen auch Site.AllRecentChangesPerAuthor.
Also könnte auch ein $Group.$Name-RecentChanges erstellen lassen:

Nehmen wir an, in der Gruppe "Main" soll NUR für die Seite "FooBar" eine 
RecentChanges Seite erstellt werden:
Dann schreiben wir in der Config.php:

 if(preg_match('/^(Main[\.|\/]FooBar)$/',$pagename))
  $RecentChangesFmt['Main.FooBar-RecentChanges'] = '* $CurrentTime  . . 
.  $[by] $AuthorLink: [=$ChangeSummary=]';

Und schon wird nur bei Änderungen von Main.FooBar ein neuer Eintrag in 
Main.FooBar-RecentChanges erstellt.
Die könnte man dann per Main.FooBar-RecentChanges?action=rss als Feed 
ausgeben lassen.

> Was ich brauche, ist ein RecentChanges nur für eine Seite. Geht das mit
> deiner Lösung?
>   

Nicht direkt.
Würde ein einziger Eintrag reichen, dann könnte man die Erweiterung: 
"FeedSkin" nehmen:

Im Artikel schreibt man ganz oben oder unten:
(:if equal {$Action} feedskin:)
(:div class=feed:)
* [[{$FullName}]]
(:divend:)
(:if:)

Anschließend hat man mit ?action=feedskin einen einzigen Eintrag im Feed!
Allerdings beführte ich, dass Dir das nicht reichen wird, Du möchtest 
ein Kombination aus ?action=diff und ?action=rss
Die einzige Lösung, die ich jetzt aus dem Ärmel schütteln kann, wäre mit 
einer Kombination aus FeedSkin und RebuildRC

(:if equal {$Action} feedskin:)
(:div class=feed:)
(:pagelist fmt=rebuildrc list=all name={$FullName} order=-time text="* 
[[$Group.$Name|$Modified]]":)
(:divend:)
(:if:)

Allerdings sieht das Ergebnis mit ?action=feedskin nicht ganz so schön 
aus, da alle älteren Wikiseiten mit den aktuellen Informationen 
angezeigt werden. (FeedSkin ist nicht für Historie ausgelegt)

Wenn Dir die ersten beiden Lösungen nicht reichen, kannst Du dich 
nochmal melden. Vielleicht kann man ?action=diff und ?action=rss 
irgenwie kombinieren...

-- 
eMail: PmWiki at MEngelke.de      ICQ: 267544462      Homepage: wiki.MEngelke.de