1f62ea8a1Sandi<?php 2f62ea8a1Sandi/** 3f62ea8a1Sandi * DokuWiki AJAX call handler 4f62ea8a1Sandi * 5f62ea8a1Sandi * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) 6f62ea8a1Sandi * @author Andreas Gohr <andi@splitbrain.org> 7f62ea8a1Sandi */ 8f62ea8a1Sandi 9d0a27cb0SAndreas Gohrif(!defined('DOKU_INC')) define('DOKU_INC',dirname(__FILE__).'/../../'); 10f62ea8a1Sandirequire_once(DOKU_INC.'inc/init.php'); 11*814e20b8SYurii Krequire_once(DOKU_INC.'inc/ajax_functions.php'); 12*814e20b8SYurii K 1324b3cb1aSAndreas Gohr//close session 148746e727Sandisession_write_close(); 15f62ea8a1Sandi 1695657bc6Sandiheader('Content-Type: text/html; charset=utf-8'); 1795657bc6Sandi 18f62ea8a1Sandi//call the requested function 19e0ded59cSAndreas Gohrif($INPUT->has('call')) { 20e0ded59cSAndreas Gohr $call = $INPUT->filter('utf8_stripspecials')->str('call'); 21850c2e7cSAndreas Gohr $callfn = 'ajax_'.$call; 22850c2e7cSAndreas Gohr 23850c2e7cSAndreas Gohr if(function_exists($callfn)) { 24850c2e7cSAndreas Gohr $callfn(); 25f62ea8a1Sandi } else { 263cb4b39fSBen Coburn $evt = new Doku_Event('AJAX_CALL_UNKNOWN', $call); 273cb4b39fSBen Coburn if ($evt->advise_before()) { 28850c2e7cSAndreas Gohr print "AJAX call '".htmlspecialchars($call)."' unknown!\n"; 29*814e20b8SYurii K } else { 303cb4b39fSBen Coburn $evt->advise_after(); 313cb4b39fSBen Coburn unset($evt); 32f62ea8a1Sandi } 33bd2f6c2fSAndreas Gohr } 3480423ab6SAdrian Lang}