wiki:xref:dokuwiki:inc:actions.php
- 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
Только авторизованные участники могут оставлять комментарии.
wiki/xref/dokuwiki/inc/actions.php.txt · Последнее изменение: — vladpolskiy
