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('/"/', '"', 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>".mark($search, $pathMapping[$dn]).($info['description']==''?"":"<span class='informal'> [".mark($search, $info['description'])."]</span>")."</li>";
53 continue;
54 }
55 if (mb_stristr($info['description'], $search) !== false) {
56 $res.= "<li>".mark($search, $pathMapping[$dn]).($info['description']==''?"":"<span class='informal'> [".mark($search, $info['description'])."]</span>")."</li>";
57 continue;
58 }
59 if (mb_stristr($pathMapping[$dn], $search) !== false) {
60 $res.= "<li>".mark($search, $pathMapping[$dn]).($info['description']==''?"":"<span class='informal'> [".mark($search, $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 ?>