Englisch: HomePage |
PmWikiDe /
Web-Feeds
Administratoren (Fortgeschrittene)
Ein Feed ist eine bequeme Möglichkeit, Besucher über Änderung an einer Website benachrichtigen zu lassen. Anstatt also jeden Tag die Seite RecentChanges? zu überprüfen, um herauszufinden was sich geändert hat, kann ein Besucher einen Newsaggregator nutzen, um schnell zu sehen, welche interessanten Seiten sich auf einer Website geändert haben. Diese Benachrichtigung kann man dann im RSS-fähigen Programm auslesen. Webfeeds erkennt man gewöhnlich an Ausdrücken wie RSS, Atom und Web-Syndication. Sie sind auch Grundlage für Podcasts. (Um Benachrichtigungen per E-Mail zu erhalten, sollten Sie sich E-Mail Nachricht bei geänderten Seiten / E-Mail Nachricht bei geänderten Seiten (neu) ansehen.) Wikitrails als GrundlageIn der einfachsten Form basieren Feeds in PmWiki auf Seitenabfolgen. Benutzen Sie eine Feed-Aktion wie Und solange Besucher Seiten bearbeiten können, können Sie auch angepasste Feeds haben, ohne den Administartor um Hilfe bitten zu müssen. Alles was sie tun müssen ist eine Referenzseite der Seitenabfolgen zu erzeugen, die die Seiten enthält, über deren Änderungen sie benachrichtigt werden möchten. Feeds können auch von Gruppen, Kategorien und Rückverweisen erzeugt werden und die Reihenfolge und Anzahl der Items können durch Optionen in dem URL verändert werden. So könnten Sie einen Feed für die Skins-Kategory (sortiert mit den wichtigsten zuerst) abfordern, in dem Sie dies benutzen: PmWiki ist in der Lage, Feeds in vielen Formaten zu liefern, einschließlich RSS 2.0 ( Wie liest man PmWiki-Feeds
Feed-OptionenFügen Sie beliebige der folgenden Optionen an das Ende des PmWiki-Web-Feed-URLs, um dessen Ausgabe zu ändern (im Grunde genommen ist jede pagelist-Option? für Web-Feeds einzusetzen):
Autoren (Fortgeschrittene) PmWiki für Feeds konfigurierenDieser Abschnitt beschreibt, wie Sie Teile eines Wikis aufbereiten, um es in einem Web-Feed zu präsentieren. Es wird nicht beschrieben, wie Sie ein Web-Feed in einer Wiki-Seite darstellen – siehe dazu Cookbook:RssFeedDisplay. Um eine Web-Feed-Erzeugung für eine Site zu ermöglichen, fügen Sie eine oder mehrere der folgenden Zeilen zu einer Ihrer Lokale Anpassungen-Dateien (z. B. local/config.php-Datei) hinzu: if ($action == 'rss') include_once("$FarmD/scripts/feeds.php"); if ($action == 'atom') include_once("$FarmD/scripts/feeds.php"); if ($action == 'rdf') include_once("$FarmD/scripts/feeds.php"); if ($action == 'dc') include_once("$FarmD/scripts/feeds.php"); Oder Sie kombinieren mehrere Feeds in einem einzigen Ausdruck , wobei Sie "||" benutzen, um die Feed-Typen voneinander zu trennen. Wenn Sie z. B. RSS- und Atom-Feeds aktivieren wollen, schreiben Sie: if ($action == 'rss' || $action == 'atom' || $action == 'rdf' || $action == 'dc') include_once("$FarmD/scripts/feeds.php"); Feed-Inhalt konfigurierenWeb-Feeds sind im höchsten Grade konfigurierbar, neue Elemente können leicht zu Feeds über das $FeedFmt-Array hinzugefügt werden. Elemente in $FeedFmt sehen so aus: $FeedFmt['atom']['feed']['rights'] = 'All Rights Reserved';
Dabei korrespondiert der erste Index mit der Aktion (?action=atom), der zweite Index indiziert ein Per-Feed- oder Per-Item-Element und der dritte Index ist der Name des erzeugten Elements. Die obige Einstellung erzeugt demnach ein "<rights>All Rights Reserved</rights>" in dem Feed für ?action=atom. Wenn der Wert eines Eintrags mit einem '<' beginnt, wird feed.php nicht automatisch ein Tag darumherum hinzufügen. Elemente können auch aufrufbare Funktionen (callable functions) sein, welche aufgerufen werden, um die passenden Ausgabe zu erzeugen. Siehe RSS specification oder andere Feed-Spezifikationen wegen des möglichen Inhalts der Elemente. Sie können auch einen existierenden Eintrag ändern anstatt einen neuen zu erzeugen. Benutzen Sie die folgenden Zeilen, um sicherzustellen, dass Änderungen am Wiki von einigen RSS-Readern aufgenommen werden, die andernfalls "keine Notiz" von der Änderung nehmen würden: # Ändere den Verweis-URL, wenn ein Item bearbeitet wird. $FeedFmt['rss']['item']['link'] = '{$PageUrl}?when=$ItemISOTime'; $FeedFmt['atom']['item']['link'] = "<link rel=\"alternate\" href=\"{\$PageUrl}?when=\$ItemISOTime\" />\n"; Siehe auch
FAQWie füge ich dem Feed-Body Text von der Seite hinzu (ganze Seite oder die ersten X Zeichen)? (Und bitte: KEIN markup) function MarkupExcerpt($pagename) { $page = RetrieveAuthPage($pagename, 'read', false); return substr(@$page['text'], 0, 200); } $FmtPV['$MarkupExcerpt'] = 'MarkupExcerpt($pn)'; $FeedFmt['rss']['item']['description'] = '$MarkupExcerpt'; Heißt das, wenn ich die Zeit im RSS-Titel und "summary" im RSS-Body einfügen will, muss ich $FeedFmt['rss']['item']['description'] = '$LastSummary'; $FeedFmt['rss']['item']['title'] = '{$Group} / {$Title} @ $ItemISOTime';
Wie nutze ich das RSS-<enclosure>-Tag für Podcasting? Für Podcasting von mp3-Dateien hängen Sie einfach eine mp3-Datei an die Seite an, und zwar mit dem gleichen Namen wie die Seite (z. B. für eine Seite namens Podcast.Episode4 würden Sie eine Datei namens "Episode4.mp3" an die Seite anhängen). Die Datei wird automatisch durch ?action=rss aufgenommen und als eine Anlage behandelt. Der Satz an möglichen 'enclosures' (Anlagen) ist vom $RSSEnclosureFmt-Array vorgegeben, demnach erlaubt $RSSEnclosureFmt = array('{$Name}.mp3', '{$Name}.wma', '{$Name}.ogg');
Podcasting in mp3-, wma- und ogg-Formaten. Wie füge ich eine Zusammenfassung ("summary") zum Titel in einem RRS-Feed hinzu (d. h. mit Fügen Sie diese Zeile in Ihre local/config.php-Datei ein: $FeedFmt['rss']['item']['title'] = '{$Group} / {$Title} : $LastModifiedSummary';
Wie füge ich die Beschreibung ("description") zum Titel und die "summary" zum Body hinzu? Fügen Sie diese Zeilen in Ihre local/config.php-Datei ein: $FeedFmt['rss']['item']['title'] = '{$Group} / {$Title} : {$Description}';
$FeedFmt['rss']['item']['description'] = '$LastModifiedSummary';
Bemerkungen:
Einige meiner passwortgeschützten Seiten erscheinen nicht im Feed... wie umgehe ich das? Pms Antwort auf eine ähnliche Frage in der Newsgroup: Beim letzten Mal, als ich das überprüft habe, hatten RSS und andere Syndication-Protokolle kein wohl etabliertes Interface oder Mechanismen für die Durchführung von Zugriffkontrollen (d. h. Authentifikation). So weit ich weiß, ist das noch immer der Fall. PmWikis Web-Feed-Fähigkeiten ist auf Seitenlisten aufgebaut, so ist es gut möglich, das die $EnablePageListProtect-Option das Erscheinen einer aufgefrischten Seite verhindert. Sie könnten versuchen, $EnablePageListProtect=0; zu setzen und zu schauen, ob die passwortgeschützte Seite erscheint. Die "Kehrseite" zum Setzen der Variablen $EnablePageListProtect auf null ist, dass jeder, der eine Suche in Ihrer Site durchführt, die Existenz der Seiten in dem gesperrten Abschnitt erfährt. Die Seiten wird niemand lesen können, aber sie wissen, sie sind da! Sie könnten $EnablePageListProtect nur für ?action=rss auf null setzen: if ($action == 'rss') $EnablePageListProtect = 0;
Das schränkt die Möglichkeit, geschützte Seiten zu sehen, auf die RSS-Feeds ein. Normale Seitenlisten und Suchergebnisse sehen diese Seiten nicht. Letztlich ist es auch möglich, das Web-Feed so zu konfigurieren, dass es die Authentifikations-Informationen direkt aus dem URL bezieht, wie in .../Site/AllRecentChanges?action=rss&authpw=secret Der große Nachteil ist, dass das Passwort im Klartext mit jedem RSS-Aufruf durch das Netz wandert und endet darin, dass es in Apaches Access-Logs gespeichert wird. Wie fügt man Feed-Bilder hinzu? Fügen Sie diese Zeilen in Ihre local/config.php-Datei ein (das Beispiel ist für $FeedFmt['rss']['feed']['image'] = " <title>Logo title</title> <link>https://example.com/</link> <url>https://example.com/images/logo.gif</url> <width>120</width> <height>60</height>"; Vergessen Sie nicht, NICHT mit einem "<" zu beginnen (sondern mit einem Leerzeichen), da es sonst kein <image>-Tag darumherum gäbe... siehe hier.
Wie füge ich RRS-News-Feeds in eine PmWiki-Seite ein? Wie kann ich Standard-Feed-Optionen in einer Konfigurationsdatei setzen anstatt dass ich sie jedesmal in den URL setze? Wenn Sie zum Beispiel if ($action == 'rss') SDVA($_REQUEST, array( 'group' => 'News', 'order' => '-time', 'count' => 10)); Gibt es Wege, wie Besucher leicht ein Web-Feed abonnieren können? In einigen Browser (Mozilla Firefox) können Besucher ein orangenes RSS-Icon in der Adresszeile sehen und abonnieren den Feed, indem sie darauf klicken. Um RSS-Icons zu aktivieren, fügen Sie diese Zeilen in Ihre local/config.php-Datei ein: $HTMLHeaderFmt['feedlinks'] = '<link rel="alternate" type="application/rss+xml" title="$WikiTitle" href="$ScriptUrl?n=Site.AllRecentChanges&action=rss" /> <link rel="alternate" type="application/atom+xml" title="$WikiTitle" href="$ScriptUrl?n=Site.AllRecentChanges&action=atom" />'; Sie können auch einen solchen Verweis zum Beispiel in ihre SideBar setzen: Kann ich ein RSS-Feed für einzelne Seiten-Versionen erzeugen? See Cookbook:PageFeed. Wie erzeuge ich eine Feed-Seite ähnlich wie RecentChanges oder AllRecentChanges, die aber nur bestimmte Gruppen oder Seiten enthält? Siehe Cookbook:CustomRecentChanges. In Kürze: Sie deklarieren eine $RecentChangesFmt-Variable mit Ihren bevorzugten Feed-Seite und kleiden sie in eine Bedingung Ihrer Wahl ein. Zum Beispiel: if (PageVar($pagename, '$Group')!='ForbiddenGroup') { $RecentChangesFmt['Site.MyFeedPage'] = '* [[{$FullName}]] . . . $CurrentTime $[by] $AuthorLink: [=$ChangeSummary=]'; } Wie kann ich mein RSS-Feed updaten, um jede Änderung an einer Seite zu zeigen und nicht nur neu erzeugte Seiten? Fügen Sie einen einzigartigen GUID-Verweis für jede Änderung in Ihre local/config.php-Datei ein (siehe PITS-Eintrag): $FeedFmt['rss']['item']['guid'] = '{$PageUrl}?guid=$ItemISOTime'; Alternativ können Sie die Option für Änderungsüberwachungen erzeugen, indem sie einen Qualifier für RSS-Links hinzufügen. Das erlaubt den Besuchern zwischen Standard-neue Seiten-RSS-Feeds und neue Änderungen-RSS-Feeds zu wählen (in PmWiki ist diese Option aktiviert): ## For new pages updates: https://example.com/wiki/HomePage?action=rss ## For edits updates: https://example.com/wiki/HomePage?action=rss&edits=1 if(@$_REQUEST['edits'] && $action == 'rss') $FeedFmt['rss']['item']['guid'] = '{$PageUrl}?guid=$ItemISOTime';
Übersetzung von PmWiki.WebFeeds, Originalseite auf PmWikiDe.WebFeeds — Backlinks
|