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