index.php
1 <?php
2 
3 /**
4  * Действия DokuWiki
5  *
6  * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
7  * @author     Andreas Gohr <andi@splitbrain.org>
8  */
9 
10 use dokuwiki\ActionRouter;
11 use dokuwiki\Extension\Event;
12 
13 /**
14  * Вся обработка действий начинается здесь
15  */
16 function act_dispatch()
17 {
18     // всегда инициализируется при первой отправке (тестовый запрос может отправляться несколько раз в одном запросе)
19     $router = ActionRouter::getInstance(true);
20 
21     $headers = ['Content-Type: text/html; charset=utf-8'];
22     Event::createAndTrigger('ACTION_HEADERS_SEND', $headers, 'act_sendheaders');
23 
24     // clear internal variables
25     unset($router);
26     unset($headers);
27     // сделать все глобальные переменные доступными для шаблона
28     extract($GLOBALS);
29 
30     include(template('main.php'));
31     // вывод для команд теперь обрабатывается в inc / templates.php
32     // в функции tpl_content()
33 }
34 
35 /**
36  * Отправка указанных заголовков с помощью header()
37  *
38  * @param  array $ headers Заголовки, которые должны быть отправлены
39  */
40 function act_sendheaders($headers)
41 {
42     foreach ($headers as $hdr) header($hdr);
43 }
44 
45 /**
46 * Очистите команду действия
47 *
48 * @автор Андреас Гор <andi@splitbrain.org>
49 *
50 * @param  массив | строка $ акт
51 * @возвращаемая  строка
52 */
53 function act_clean($act)
54 {
55     // проверяем, было ли действие задано как ключ массива
56     if (is_array($act)) {
57         [$act] = array_keys($act);
58     }
59 
60     // никаких действий не предпринято
61     if ($act === null) return 'show';
62 
63     //удалить все плохие символы
64     $act = strtolower($act);
65     $act = preg_replace('/[^1-9a-z_]+/', '', $act);
66 
67     if ($act == 'export_html') $act = 'export_xhtml';
68     if ($act == 'export_htmlbody') $act = 'export_xhtmlbody';
69 
70     if ($act === '') $act = 'show';
71     return $act;
72 }
73 
«Подробности»
1<?php
2
3/**
4* Действия DokuWiki
5*
6* @license     GPL 2 ( http://www.gnu.org/licenses/gpl.html)
7* @автор      Андреас Гор <andi@splitbrain.org>
8*/
9
10использовать  dokuwiki \ ActionRouter ;
11использовать  dokuwiki \ Extension \ Event ;
12
13/**
14* Вся обработка действий начинается здесь
15*/
16функция  act_dispatch ()
17{
18    // всегда инициализируется при первой отправке (тестовый запрос может отправляться несколько раз в одном запросе)
19    $ router = ActionRouter :: getInstance ( true );
20
21    $ headers = [ 'Тип содержимого: текст / html ; кодировка=utf-8' ];
22    Событие :: createAndTrigger ( 'ACTION_HEADERS_SEND' , $ headers , 'act_sendheaders' );
23
24    // очистить внутренние переменные
25    не установлен ($ router );
26    не установлено ($ headers );
27    // сделать все глобальные переменные доступными для шаблона
28    извлечь ($ GLOBALS );
29
30    включить ( шаблон ( ' main.php ' ));
31    // вывод для команд теперь обрабатывается в inc / templates.php
32    // в функции tpl_content()
33}
34
35/**
36* Отправка указанных заголовков с помощью header()
37*
38* @param  array $ headers Заголовки, которые должны быть отправлены
39*/
40функция  act_sendheaders ($ headers )
41{
42    foreach ($ headers  as $ hdr ) header ($ hdr );
43}
44
45/**
46* Очистите команду действия
47*
48* @автор Андреас Гор <andi@splitbrain.org>
49*
50* @param  массив | строка $ акт
51* @возвращаемая  строка
52*/
53функция  act_clean ($ act )
54{
55    // проверяем, было ли действие задано как ключ массива
56    если ( is_array ($ act )) {
57        [$ act ] = array_keys ($ act );
58    }
59
60    // никаких действий не предпринято
61    если ($ act === null ) вернуть  'show' ;
62
63    //удалить все плохие символы
64    $ act = strtolower ($ act );
65    $ act = preg_replace ( '/[^1-9a-z_]+/' , '' , $ act );
66
67    если ($ act == 'export_html' ) $ act = 'export_xhtml' ;
68    если ($ act == 'export_htmlbody' ) $ act = 'export_xhtmlbody' ;
69
70    если ($ act === '' ) $ act = 'показать' ;
71    возврат $ акт ;
72}
73