Spis treści
Gromadzenie danych XML
DokuWiki udostępnia swoje dane w formacie kanału XML przez plik feed.php. Można subskrybować taki kanałw czytniku wiadomości.
Funkcja gromadzenia danych XML została zrealizowana przez znakomitą Feed Creator Class, której autorem jest Kai Blankenhorn.
Konfiguracja/Opcje URL
Sposób generowania kanału może być sterowany przy użyciu pewnych opcji konfiguracji. Gdy feed.php jest wywoływany bez argumentów użyje tych opcji do utworzenia kanału. Wszystkie opcje mogą być również nadpisane przez parametry przekazane w adresie URL.
Linki
Każdy element w utworzonym kanale będzie zawierał link; ta opcja wskazuje, gdzie ten link prowadzi.
- Opcja konfiguracji: rss_linkto
- Parametr URL: linkto
- Domyślnie: diff
- Dostępne wartości:
Wartość | Cel przekierowania |
---|---|
page | wersja strony z czasu utworzenia wiadomości RSS |
current | najnowsza wersja strony |
rev | widok wersji strony |
diff | widok różnicowy zmian strony |
Zawartość kanału
Zawartość pokazywana wewnątrz każdej wiadomości kanału jest sterowane przez tą opcję.
- Opcja konfiguracji: rss_content
- Parametr URL: content
- Domyślnie: abstract
- Dostępne wartości:
Wartość | Zawartość wiadomości |
---|---|
abstract | pierwszy paragraf strony |
diff | tekst różnicowy opisujący zmian strony |
htmldiff | sformatowana w HTML tabela różnic dla zmian strony |
html | pełna treść strony sformatowana w HTML |
Format kanału
DokuWiki może tworzyć kanały XML w wielu formatach.
- Opcja konfiguracji: rss_type
- Parametr URL: type
- Domyślnie: rss1
- Dostępne wartości:
Wartość | Format kanału |
---|---|
rss | RSS 0.91 |
rss1 | RSS 1.0 |
rss2 | RSS 2.0 |
atom | ATOM 0.3 |
atom1 | ATOM 1.0 |
Tryb listy
feed.php może być użyta do eksportu listy ostatnich zmian (domyślnie) ale może być wykorzystana również do innych list.
- Opcja konfiguracji: brak
- Parametr URL: mode
- Domyślnie: recent
- Dostępne wartości:
Wartość | Tryb listy |
---|---|
recent | lista ostatnio wprowadzonych stron, z których najnowsza jest na początku |
list | zwykła lista wszystkich stron przestrzeni nazw (patrz poniżej by określić, której) |
search | lista stron pasujących do zapytania podanego w dodatkowym parametrze q |
Filtr przestrzeni nazw
Kanał może być ograniczony do stron z jednej tylko, wskazanej przestrzeni nazw.
- Opcja konfiguracji: brak
- Parametr URL: ns
- Domyślnie: *
- Dostępne wartości: dowolna poprawna przestrzeń nazw
Wartość list
opcji tryb listy powoduje, że kanał będzie zawierał tylko strony ze wskazanej przestrzeni nazw, bez podrzędnych przestrzeni nazw.
Wartość recent
opcji tryb listy powoduje, że dołączane są podrzędne przestrzenie nazw.
Ograniczenie przestrzeni nazw nie jest obsługiwanie bezpośrednio przez wartość search
opcji tryb listy. Możesz za to podać ograniczenie przestrzeni w zapytaniu (używając składni @
) – jednak będzie ono zawierać podprzestrzenie nazw.
Ograniczenia elementu
Liczba stron zamieszczonych na liście kanału może być ustalona w ten sposób.
- Opcja konfiguracji: recent
- Parametr URL: num
- Domyślnie: 20
- Dostępne wartości: dowolna liczba naturalna
Dołączanie drobnych zmian
Domyślnie drobne zmiany są umieszczane w kanale. Może to być zmienione przez argument URL.
- Opcja konfiguracji: brak
- Parametr URL: minor
- Domyślnie: 0
- Dostępne wartości: 0 lub 1
Użycie pamięci podręcznej
Kanały XML są keszowane by zmniejszyć obciążenie wiki. Ta opcja steruje, jak długo ważna jest pamięć podręczna kanałów.
- Opcja konfiguracji: rss_update
- Parametr URL: brak
- Domyślnie: 5*60
- Dostępne wartości: czas w sekundach
Streszczenia
Streszczenie zmiany strony będzie będzie z reguły zawarte w tytule artykułu kanału. Może to być czasami niepożądane i może zostać zablokowane.
- Opcja konfiguracji: rss_show_summary
- Parametr URL: brak
- Domyślnie: 1
- Dostępne wartości: 0 lub 1
Przykłady
- feed.php?type=rss2&num=5 zwraca kanał RSS 2.0 ostatnich pięciu zmian
- feed.php?mode=list&type=atom&linkto=page&ns=wiki wylistuje wszystkie strony w przestrzeni nazw wiki jako kanał ATOM 0.3 w którym każdy artykuł jest połączony bezpośrednio ze stroną
Pliki i ACL
Gdy włączone są ograniczenia uprawnień ACL, odczyt stron z ograniczonym dostępem nie będą dołączane do kanałów publicznych.
Jeśli masz zamiar uzyskać dostęp do kanałów z ze stronami z ograniczonym dostępem, musisz przekazać nazwę użytkownika i hasło w adresie URL w następujący sposób: ''http://example.com/dokuwiki/feed.php?u=username&p=password''.
Nie jest to zbyt bezpieczne i może prowadzić do wycieku poświadczeń twojego użytkownika. Gdy DokuWiki jest uruchomiony wewnątrz mod_php
może również zadziałać przekazywanie poświadczeń z użyciem Basic Auth HTTP jako obsługiwane przez niektóre czytniki wiadomości.
Podejście z użyciem .htusers
W mojej konfiguracji (dokuwiki 2008-05-05 i Liferea) podejście Basic Auth HTTP nie zadziałało bezpośrednio po instalacji. Wydaje się, że autoryzacja nie udawała się ponieważ web server nie prosił o nią. Wymusiłem ją zatem tworząc plik .htusers (według instrukcji użytkowania dokuwiki) i ograniczyłem dostęp do feed.php:
Użyłem następującego prostego skryptu by utworzyć plik htusers (wykorzystywany przez apache) w oparciu o dane użytkowników dokuwiki:
user@host# cat <<EOF > update_htusers #!/bin/sh grep -v '^#' users.auth.php | cut -sd\: -f1,2 > .htusers EOF user@host# chmod +x update_htusers user@host# ./update_htusers
Dodaj istniejący plik .htaccess do głównego folderu dokuwiki:
AuthType Basic AuthName "feed" AuthUserFile path-to-your-htusers-file <Files feed.php> Order deny,allow require valid-user </Files>
Patrz również
- RSS/ATOM Feed Aggregation dla dodania zewnętrznych kanałów do stron DokuWiki
- wtyczka kanałów dla innych dróg eksportu swoich postów na blogu przez RSS
- Porady odnośnie konfiguracji kanałów dla blogowania z DokuWiki