Code

caaa3a0c137d2be62b6ad30767a358f232e6a62a
[gosa.git] / gosa-core / html / autocomplete.php
1 <?php
2 /*
3  * This code is part of GOsa (http://www.gosa-project.org)
4  * Copyright (C) 2003-2008 GONICUS GmbH
5  *
6  * ID: $$Id: getbin.php 9255 2008-03-03 16:04:30Z cajus $$
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; either version 2 of the License, or
11  * (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, write to the Free Software
20  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
21  */
23 /* Basic setup, remove eventually registered sessions */
24 @require_once ("../include/php_setup.inc");
25 @require_once ("functions.inc");
27 session::start();
28 session::global_set('errorsAlreadyPosted',array());
30 /* Logged in? Simple security check */
31 if (!session::global_is_set('ui')){
32   new log("security","unknown","",array(),"Error: autocomplete.php called without session") ;
33   header ("Location: index.php");
34   exit;
35 }
37 /* Base completition or filter completition? */
38 if (isset($_GET['type']) && $_GET['type'] == "base") {
40   // Find dn based on name and description
41   if (session::is_set("pathMapping") && count($_POST) == 1) {
42     $res= "";
43     $pathMapping= session::get("pathMapping");
44     $search= preg_replace('/&quot;/', '"', current($_POST));
46     $config = session::global_get('config');
47     foreach ($config->department_info as $dn => $info) {
48       if (!isset($pathMapping[$dn])) {
49         continue;
50       }
51       if (mb_stristr($info['name'], $search) !== false) {
52         $res.= "<li>".$pathMapping[$dn].($info['description']==''?"":"<span class='informal'> [".$info['description']."]</span>")."</li>";
53         continue;
54       }
55       if (mb_stristr($info['description'], $search) !== false) {
56         $res.= "<li>".$pathMapping[$dn].($info['description']==''?"":"<span class='informal'> [".$info['description']."]</span>")."</li>";
57         continue;
58       }
59       if (mb_stristr($pathMapping[$dn], $search) !== false) {
60         $res.= "<li>".$pathMapping[$dn].($info['description']==''?"":"<span class='informal'> [".$info['description']."]</span>")."</li>";
61         continue;
62       }
63     }
65     /* Return results */
66     if (!empty($res)) {
67       echo "<ul>$res</ul>";
68     }
69   }
71 } else {
73   $ui = session::global_get('ui');
75   /* Is there a filter object arround? */
76   if (session::is_set("autocomplete")){
77     $filter= session::get("autocomplete");
78     $filter->processAutocomplete();
79   }
80 }
82 ?>