LSldapObject : fix foreach error in getObjectKeyValueInRelation() if attribute is...
[ldapsaisie.git] / public_html / select.php
1 <?php
2 /*******************************************************************************
3  * Copyright (C) 2007 Easter-eggs
4  * http://ldapsaisie.labs.libre-entreprise.org
5  *
6  * Author: See AUTHORS file in top-level directory.
7  *
8  * This program is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU General Public License version 2
10  * as published by the Free Software Foundation.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, write to the Free Software
19  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
20
21 ******************************************************************************/
22
23 require_once 'core.php';
24
25 if(LSsession :: startLSsession()) {
26   if (isset($_REQUEST['LSobject'])) {
27     $LSobject = $_REQUEST['LSobject'];
28     
29     if ( LSsession ::loadLSobject($LSobject) ) {
30       if (LSsession :: loadLSclass('LSsearch')) {
31         $object = new $LSobject();
32         LStemplate :: assign('pagetitle',$object -> getLabel());
33         
34         $LSsearch = new LSsearch($LSobject,'LSselect');
35         $LSsearch -> setParamsFormPostData();
36         $LSsearch -> setParam('nbObjectsByPage',NB_LSOBJECT_LIST_SELECT);
37         
38         $selectablly=((isset($_REQUEST['selectablly']))?$_REQUEST['selectablly']:0);
39         
40         if (is_string($_REQUEST['editableAttr'])) {
41           $LSsearch -> setParam(
42             'customInfos',
43             array (
44               'selectablly' => array (
45                 'function' => array('LSselect','selectablly'),
46                 'args' => $_REQUEST['editableAttr']
47               )
48             )
49           );
50           $selectablly=1;
51         }
52
53         if (!empty($_REQUEST['filter64'])) {
54                 $filter=base64_decode($_REQUEST['filter64'],1);
55                 if ($filter) {
56                         $LSsearch -> setParam('filter',$filter);
57                 }
58         }
59         $multiple = ((isset($_REQUEST['multiple']))?1:0);
60         
61         $searchForm = array (
62           'action' => $_SERVER['PHP_SELF'],
63           'recursive' => (! LSsession :: isSubDnLSobject($LSobject) && LSsession :: subDnIsEnabled() ),
64           'multiple' => $multiple,
65           'selectablly' => $selectablly,
66           'labels' => array (
67             'submit' => _('Search'),
68             'approx' => _('Approximative search'),
69             'recursive' => _('Recursive search'),
70             'level' => _('Level')
71           ),
72           'values' => array (
73             'pattern' => $LSsearch->getParam('pattern'),
74             'approx' => $LSsearch->getParam('approx'),
75             'recursive' => $LSsearch->getParam('recursive'),
76             'basedn' => $LSsearch->getParam('basedn')
77           ),
78           'names' => array (
79             'submit' => 'LSsearch_submit'
80           ),
81           'hiddenFields' => array_merge(
82             $LSsearch -> getHiddenFieldForm(),
83             array(
84               'ajax' => 1,
85               'filter64' => $_REQUEST['filter64'],
86               'selectablly' => $selectablly,
87               'multiple' => $multiple
88             )
89           )
90         );
91         LStemplate :: assign('searchForm',$searchForm);
92         
93         $LSview_actions=array(
94           array (
95             'label' => 'Refresh',
96             'url' => 'view.php?LSobject='.$LSobject.'&amp;refresh',
97             'action' => 'refresh'
98           )
99         );
100         LStemplate :: assign('LSview_actions',$LSview_actions);
101         
102         $LSsearch -> run();
103         $page=(isset($_REQUEST['page'])?(int)$_REQUEST['page']:0);
104         $page = $LSsearch -> getPage($page);
105         LStemplate :: assign('page',$page);
106         LStemplate :: assign('LSsearch',$LSsearch);
107
108         LStemplate :: assign('LSobject_list_objectname',$object -> getLabel());
109         
110         if (isset($_REQUEST['ajax'])) {
111           LSsession :: setTemplate('select_table.tpl');
112         }
113         else {
114           LSsession :: setTemplate('select.tpl');
115         }
116         
117         LSsession :: setAjaxDisplay();
118       }
119       else {
120         LSsession :: addErrorCode('LSsession_05','LSsearch');
121       }
122     }
123   }
124   else {
125     LSerror :: addErrorCode('LSsession_12');
126   }
127 }
128 else {
129   LSsession :: setTemplate('login.tpl');
130 }
131
132 // Affichage des retours d'erreurs
133 LSsession :: displayTemplate();
134
135 if (isset($LSsearch)) {
136   $LSsearch->afterUsingResult();
137 }
138 ?>