xref: /dokuwiki/lib/exe/ajax.php (revision f62ea8a1d1cf10eddeae777b11420624e111b7ea)
1*f62ea8a1Sandi<?php
2*f62ea8a1Sandi/**
3*f62ea8a1Sandi * DokuWiki AJAX call handler
4*f62ea8a1Sandi *
5*f62ea8a1Sandi * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
6*f62ea8a1Sandi * @author     Andreas Gohr <andi@splitbrain.org>
7*f62ea8a1Sandi */
8*f62ea8a1Sandi
9*f62ea8a1Sandi//fix for Opera XMLHttpRequests
10*f62ea8a1Sandiif(!count($_POST) && $HTTP_RAW_POST_DATA){
11*f62ea8a1Sandi  parse_str($HTTP_RAW_POST_DATA, $_POST);
12*f62ea8a1Sandi}
13*f62ea8a1Sandi
14*f62ea8a1Sandiif(!defined('DOKU_INC')) define('DOKU_INC',realpath(dirname(__FILE__).'/../../').'/');
15*f62ea8a1Sandirequire_once(DOKU_INC.'inc/init.php');
16*f62ea8a1Sandirequire_once(DOKU_INC.'inc/common.php');
17*f62ea8a1Sandirequire_once(DOKU_INC.'inc/pageutils.php');
18*f62ea8a1Sandirequire_once(DOKU_INC.'inc/auth.php');
19*f62ea8a1Sandi
20*f62ea8a1Sandi//call the requested function
21*f62ea8a1Sandi$call = 'ajax_'.$_POST['call'];
22*f62ea8a1Sandiif(function_exists($call)){
23*f62ea8a1Sandi	$call();
24*f62ea8a1Sandi}else{
25*f62ea8a1Sandi  print "The called function does not exist!";
26*f62ea8a1Sandi}
27*f62ea8a1Sandi
28*f62ea8a1Sandi/**
29*f62ea8a1Sandi * Searches for matching pagenames
30*f62ea8a1Sandi *
31*f62ea8a1Sandi * @author Andreas Gohr <andi@splitbrain.org>
32*f62ea8a1Sandi */
33*f62ea8a1Sandifunction ajax_qsearch(){
34*f62ea8a1Sandi  global $conf;
35*f62ea8a1Sandi  global $lang;
36*f62ea8a1Sandi
37*f62ea8a1Sandi	$query = cleanID($_POST['q']);
38*f62ea8a1Sandi	if(empty($query)) return;
39*f62ea8a1Sandi
40*f62ea8a1Sandi	$nsdir = str_replace(':','/',getNS($query));
41*f62ea8a1Sandi	require_once(DOKU_INC.'inc/search.php');
42*f62ea8a1Sandi	require_once(DOKU_INC.'inc/html.php');
43*f62ea8a1Sandi
44*f62ea8a1Sandi  $data = array();
45*f62ea8a1Sandi  search($data,$conf['datadir'],'search_qsearch',array(query => $query),$nsdir);
46*f62ea8a1Sandi
47*f62ea8a1Sandi	if(!count($data)) return;
48*f62ea8a1Sandi
49*f62ea8a1Sandi	print '<b>'.$lang['quickhits'].'</b>';
50*f62ea8a1Sandi  print html_buildlist($data,'qsearch','html_list_index');
51*f62ea8a1Sandi}
52*f62ea8a1Sandi
53*f62ea8a1Sandi?>
54