Содержание

Pagelist plugin

Как использовать список страниц в вашем плагине

Вы используете список страниц для вывода списка страниц. Вам нужен массив, в котором есть строки, по крайней мере, с 'id' набором записей.

Вы также можете добавить свои собственные столбцы. Ниже описаны два способа.

addColumn() с данными через addPage()/setHeader()

(Предпочтительный подход) Вы можете использовать плагин списка страниц в своем плагине. Вы также addColumn() можете (необязательно) добавить свой собственный столбец. Данные для этого столбца предоставляются с помощью addPage() и setHeader().

example/syntax/component.php
...
$flags = ['header']; //показать заголовок таблицы 
$header = [
    'yourcolumn' => 'Your Column'
];
$pages = [
    ['id' =>  'первая страница' ,  'ваша колонка'  => 'Text 1'],
    ['id' =>  'вторая страница' ,  'ваша колонка'  => 'Text 2'],
    ['id' => '3rd', 'yourcolumn' => '<em>3&amp;4</em> with user input escaping'],
];
if($pagelist = $this->loadHelper('pagelist')) {
    $pagelist->addColumn('example', 'yourcolumn');
    $pagelist->setHeader($header); //доступно с 17 октября 2022 г. 
    $pagelist->setFlags($flags);
    $pagelist->startList('plugin_example_class');
    foreach($pages as $page) {
        $pagelist->addPage($page);
    }
    $renderer->doc .= $pagelist->finishList();
}
...

addColumn() с данными через th()/td()

(Альтернативный подход) Если данные для дополнительного столбца не были предоставлены ранее, список страниц запросит их у вашего плагина th() и td() предоставит его. helper.php Часто этот подход требует временного хранения данных, что снижает его производительность.

example/helper.php
<?php
class helper_plugin_example extends DokuWiki_Plugin {
    /**
     * Возвращает текст заголовка столбца для плагина списка страниц.
     *
     * @param string $column имя столбца, заданное в addColumn()
     * @param string $class по ссылке, класс установлен в td таблицы. Заменяет это значение по умолчанию, имя столбца установлено как класс.
     * Текст строки @return, экранированный плагином Pagelist
     */ 
    public function th($column=null, &$class = null) {
        if($column == 'yourcolumn') {
            $content = 'Your Column';
        } else {
            $content = $this->getLang('othercolumn');
        }
    }
    //в конечном итоге это также возможно, если у вас есть только один столбец, а не класс CSS для каждой ячейки:
    public function th() {
        return $this->getLang('yourcolumn');
    }
 
    /**
     * Возвращает данные ячейки для плагина списка страниц.
     *
     * @param string $id идентификатор страницы
     * @param string $column имя столбца, заданное в addColumn()
     * @param string $class по ссылке, класс установлен в td таблицы. Заменяет это значение по умолчанию, имя столбца установлено как класс.
     * @return строка экранирует HTML-содержимое ячейки таблицы
     */ 
    public function td($id, $column=null, &$class = null) {
        $class .= 'special';
        if($column == 'yourcolumn') {
            $content = '...';
        } else {
            $content = '...';
        }
        return hsc($content);
    }
     //в конечном итоге это также возможно, если у вас есть только один столбец, а не класс на ячейку:: 
    public function td($id) {
        $content = '...';
        return hsc($content);
    }
}

Описание доступных функций списка страниц

Если вы добавляете собственный столбец для своего плагина, рекомендуется добавлять через addPage()HTML для каждой ячейки столбца. В качестве альтернативы вы должны реализовать helper.phpwith th()и td().

Дополнительную документацию по аргументам см. в PHPDocs исходного кода.

Список зависимостей для каждого плагина

Некоторые примечания, использованные для очистки плагина Pagelist (сентябрь 2022 г.).

authorstats
uses: loadHelper
setFlags
startList
addPage
finishList
cloud
depends on tag and searchstats plugins
⇒ unclear if it depends (indirectly) on pagelist
dir
copied css styles, seems independent further
pageimage
integrated with pagelist
provides: td($id)
th()
tagsections
depends on tag (so on pagelist?)
task
provides: th()
td($id)
uses: plugin_load('helper','pagelist')
header array
column array
addCOlumn
setFlags
startList
addPage
finishList
tiledblog
depends on blog
editor
uses: plugin_isdisabled use loadHelper
plugin_load use loadHelper
column array
setFlags
startList
addPage
finishList
tag
provides: td($id)
th()
uses: loadhelper
- topic
setFlags
startList
addPage
finishList
-searchtags loadHelper
setFlags
startList
addPage
finishList
-action loadHelper
setFlags
startList
addPage
finishList
tagfilter
provides: td($id,$col)
th($tag='')
uses: plugin_isdisabled use loadHelper
-syntax plugin_load use loadHelper
addColumn
setFlags
startList
addPage
finishList
-action addColumn
setFlags
startList
addPage
finishList
blog
uses: plugin_isdisabled use loadHelper
-archive plugin_load use loadHelper
setFlags
startList
addPage
finishList
-autoarchive plugin_isdisabled use loadHelper
plugin_load use loadHelper
setFlags
startList
addPage
finishList
discussion
provides: th()
-helper td($id, $col = null, &$class = null, $num = null) $num is used interally in discussion plugin
uses:
-threads loadHelper
addColumn
setFlags
startList
addPage
finishList
linkback
provides: th()
td($id, $number=null)
changes
optionally: pagelist plugin used by setting a flag
uses: plugin_load
setFlags
startList
addPage
finishList
VERY OLD - 2008:
pageseditees –not supported anymore–
uses: plugin_load
page array
_meta array better use get_metadata directly
_getMeta
listeabo –not supported anymore–
uses: plugin_load
page array
_meta array better use get_metadata directly
_getMeta
snap –not supported anymore–
uses: plugin_load
-syntax.php.ori page
_meta better use get_metadata directly
_getMeta
-helper plugin_load
page
_meta better use get_metadata directly
_getMeta
favoris –not supported anymore–
uses: plugin_load
page better use get_metadata directly
_meta
_getMeta
COMMENTED OUT:
pageindex –not supported–
uses: plugin_load
startList not dependent
addPage
finishList