DokuWiki: Плагин Bureaucracy

Бюрократия

Источник фото: 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

Введение в DowuWiki

Чек-лист для администратора «Установка DokuWiki на раз-два-три»:

© 2018-2023 MaxReform.ru. Все права защищены.