<= [[wiki:plugin:pagelist|Pagelist plugin]] ====== Как использовать список страниц в вашем плагине ====== Вы используете список страниц для вывода списка страниц. Вам нужен массив, в котором есть строки, по крайней мере, с ''%%'id'%%'' набором записей. Вы также можете добавить свои собственные столбцы. Ниже описаны два способа. ===== addColumn() с данными через addPage()/setHeader() ===== (//Предпочтительный подход//) Вы можете использовать плагин списка страниц в своем плагине. Вы также ''addColumn()'' можете (необязательно) добавить свой собственный столбец. Данные для этого столбца предоставляются с помощью ''addPage()'' и ''setHeader()''. ... $flags = ['header']; //показать заголовок таблицы $header = [ 'yourcolumn' => 'Your Column' ]; $pages = [ ['id' => 'первая страница' , 'ваша колонка' => 'Text 1'], ['id' => 'вторая страница' , 'ваша колонка' => 'Text 2'], ['id' => '3rd', 'yourcolumn' => '3&4 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'' Часто этот подход требует временного хранения данных, что снижает его производительность. 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); } } ===== Описание доступных функций списка страниц ===== * (необязательно) addColumn($plugin, $column)добавьте в таблицу $column. * Получает данные через addPage()/setHeader() или использует хелпер из имени плагина $plugin для отображения: * ячейки строки страницы сtd($id, $column=null, &$class = null) * ячейки строки заголовка с th($column=null, &$class = null). * (необязательно) modifyColumn($column, $value)перезаписывает значение $column, для отключения которого установлено значение false. * (необязательно) setFlags($flags)с $flags — массив с флагами в виде строк. Вызовите эту функцию после addColumn(). * Рядом с флагами по умолчанию можно использовать дополнительный флаг defaultsortby=для установки предпочтения сортировки без включения сортировки. * (необязательно) setHeader($header)с $header, содержащим записи html для каждого столбца, если не указаны значения списка страниц по умолчанию или используются плагин->th(). Вам нужно избежать пользовательского ввода с помощью hsc() . * (обязательно) startList($class = null)запускает список или таблицу, если включено, печатается также заголовок. $class может добавить класс таблицы. * (обязательно), для каждой строки addPage($page)со связанным массивом $page с записью для каждого столбца. Для ваших собственных столбцов вы должны предоставить HTML, вам нужно избежать пользовательского ввода . * 'id' ⇒ строковый идентификатор страницы (обязательно). * 'title' ⇒ строка Первый заголовок, иначе идентификатор страницы; исключение: если используется titleimage, это используется для атрибута title&alt изображения. * 'titleimage' ⇒ строковый идентификатор носителя * 'date' ⇒ int временная метка даты создания, в противном случае дата изменения (например, иногда требуется для плагина) * 'пользователь' ⇒ строка $meta['создатель'] * 'desc' ⇒ строка $meta['description']['abstract'] * 'описание' ⇒ строковое описание, заданное с помощью синтаксиса списка страниц. * 'symmary' ⇒ строковая сводка последнего изменения страницы $meta['last_change']['sum'] * 'существует' ⇒ bool page_exists($id) * 'разрешение' ⇒ int auth_quickaclcheck($id) * 'черновик' ⇒ строка $meta['type'], заданная плагином блога. * «приоритет» ⇒ строковый приоритет задачи: «низкий», «средний», «высокий», «критический». * 'class' ⇒ класс строки, установленный для каждой строки. * 'файл' ⇒ строка wikiFN($id) * 'section' ⇒ строковый идентификатор раздела, добавленный как #ancher к URL-адресу страницы. * (обязательно) finishList()закрывает список или таблицу, возвращает html Если вы добавляете собственный столбец для своего плагина, рекомендуется добавлять через addPage()HTML для каждой ячейки столбца. В качестве альтернативы вы должны реализовать helper.phpwith th()и td(). * для каждой строки столбец $ заполняется td($id, $column=null, &$class = null)(экранируйте пользовательский ввод с помощью hsc()) * в заголовке заполняется столбец $ th($column=null, &$class = null)(экранирование осуществляется с помощью списка страниц). Дополнительную документацию по аргументам см. в PHPDocs исходного [[https://github.com/dokufreaks/plugin-pagelist/blob/master/helper.php|кода]]. ===== Список зависимостей для каждого плагина ===== Некоторые примечания, использованные для очистки плагина 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 | |