Пользовательский канал RSS в Dokuwiki - PullRequest
0 голосов
/ 20 августа 2009

Я использую Dokuwiki для наполнения сайта известным набором страниц. Скажем, от foo_1 до foo_9. Содержимое этих страниц будет меняться, но названия и местоположения никогда не изменятся.

Я хочу предоставить полнофункциональный RSS-канал в определенном порядке только на этих страницах:

foo_1
foo_2
foo_3
...
foo_9

Использование элементов синдикации по умолчанию невозможно (всегда используется порядок сортировки самых новых элементов сверху), поэтому я подумал, что мне нужно будет создать настраиваемую копию feed.php

Проблема в том, что я не достаточно хороший PHP-разработчик, чтобы знать, что мне нужно изменить. В feed.php в строке 134 функция rss_buildItems выглядит так, как я бы хотел настроить. По сути, я хотел бы передать ему простой массив элементов для перечисления в правильном порядке (при условии, что это сработает), а затем удалить вызов, собирающий информацию (который, как мне кажется, находится в строке 288 функции getRecents(), но меня это тоже немного смущает). Итак, мне нужно:

  1. Идентификатор или другие соответствующие данные страницы для того, что я хочу перечислить.
  2. Формат массива.
  3. Строки для блокировки, чтобы остановить основанный на дате метод листинга.

Если бы кто-нибудь мог начать меня, или у него есть другие идеи, которые могли бы быть проще, я был бы очень признателен.

1 Ответ

0 голосов
/ 25 августа 2009

Я решил эту проблему, сделав копию файла feed.php, затем взяв строку 288:

$recents = getRecents(0,$opt['items'],$opt['namespace'],$flags); 

И заменить его чем-то похожим на это:

$recents = array(array(     "date" => "",
                           "ip" =>  "::1", 
                            "type" => "E",
                            "id" => "foo",
                            "user" => "user",
                            "sum" => "",
                            "extra" => "",
                            "perms" => "1"
                            ),
                    array(  "date" => "",
                            "ip" =>  "::1", 
                            "type" => "E",
                            "id" => "bar",
                            "user" => "user",
                            "sum" => "",
                            "extra" => "",
                            "perms" => "1"
                     )                  
                 ); 

Кажется, отлично работает.

...