Источник фото: rbth.com
Плагин Bureaucracy умеет отправлять содержимое формы на собственный php-скрипт.
Обработка формы с помощью собственного скрипта, DokuWiki.org
Связка формы и скрипта
На странице с формой Bureaucracy разместите содержимое:
<form>
action script example.php
textbox "Type something"
submit "Write to log"
</form>
Расположите по адресу /conf/plugin/bureaucracy/example.php скрипт:
use dokuwiki\plugin\bureaucracy\interfaces\bureaucracy_handler_interface;
class bureaucracy_handler_example implements bureaucracy_handler_interface {
public function handleData($fields, $thanks)
{
dbglog($fields, __FILE__ . ': ' . __LINE__);
dbglog($thanks, __FILE__ . ': ' . __LINE__);
return $thanks;
}
}
Проследите, чтобы в php-коде название класса class bureaucracy_handler_example заканчивалось именем файла скрипта example (но без расширения .php). Это поможет плагину Bureaucracy передать данные нужному скрипту expamle.php.
Вывод результатов скрипта
После выполнения скрипта страница будет перегружена и посетитель снова окажется на той же самой странице, где была размещена форма:
- сохранится тот же самый URL
- весь сопутствующий wiki-текст будет сохранен
- но вместо формы будет показано содержимое переменной $thanks.
В скрипте обработки выше строчки «return $thanks;» можно разместить операторы echo. Результаты их срабатывания будут выведены выше содержимого wiki-страницы, между шапкой сайта и заголовком страницы.
Доступ к параметрам скрипта
Значения параметров формы передаются в скрипт в параметре $fields. Это массив, который состоит из элементов формы. Последним в массиве идет элемент, передающий данные кнопки.
Например, значение текстового поля, которое находится в форме первым, доступно в:
$fields [0]->opt
Это массив из 4 элементов:
- $fields [0]→opt ['cmd'] содержит вид элемента формы, например «textbox»
- $fields [0]→opt ['label'] содержит невидимое имя элемента формы, на практике аналогичен ['display']
- $fields [0]→opt ['display'] содержит показываемое имя элемента формы
- $fields [0]→opt ['value'] содержит введенное пользователем значение формы
Для элементов форм, которые допускают выбор из нескольких вариантов, в fields [0]→opt добавится еще дополнительный элемент ['args']. Это массив, содержащий видимые пользователем названия строчек в выпадающем меню. Значение в opt ['value'] совпадает с одним из элементов, перечисленных в opt ['args'].
Для обнаружения таких элементов можно анализировать opt ['cmd']. Он равен:
- select для выпадающего меню в форме элемент opt ['cmd']
- «radio» для радиокнопок.
Ссылки по DokuWiki
Чек-лист для администратора «Установка DokuWiki на раз-два-три»:
- 1. Инсталляция
- 2. Управление дополнениями
- 3. Настройка вики
- Пользователи
- Страницы
- Обновление
- Плагин Bureaucracy для DocuWiki <- Вы находитесь здесь