4 * assigns some standard variables to smarty templates
12 if(empty($_SESSION['ldapab']['username'])){
13 $_SESSION['ldapab']['username'] = '';
15 if(empty($_SESSION['ldapab']['binddn'])){
16 $_SESSION['ldapab']['binddn'] = '';
19 $smarty->assign('user',$_SESSION['ldapab']['username']);
20 $smarty->assign('binddn',$_SESSION['ldapab']['binddn']);
21 if(!empty($_SESSION['ldapab']['lastlocation'])){
22 $smarty->assign('home',$_SESSION['ldapab']['lastlocation']);
24 $smarty->assign('home','index.php');
26 $smarty->assign('conf',$conf);
27 $smarty->assign('lang',$lang);
28 $smarty->assign('fields',$FIELDS);
32 * assigns all the interesting data from an ldap result to
35 function tpl_entry($in){
42 // handle named entries
43 foreach($RFIELDS as $key => $name){
44 if(empty($in[$key])) continue;
46 // keep arrays for starred fields
48 $name = substr($name,1);
49 if(is_array($in[$key])){
50 $out[$name] = $in[$key];
52 $out[$name] = array($in[$key]);
55 if(is_array($in[$key])){
56 $out[$name] = $in[$key][0];
58 $out[$name] = $in[$key];
64 if (empty($out['dn'])) { $out['dn']=''; }
65 $out['dn'] = normalize_dn($out['dn']);
66 $conf['publicbook'] = normalize_dn($conf['publicbook']);
68 if(strstr($out['dn'],$conf['publicbook'])){
69 $out['type'] = 'public';
71 $out['type'] = 'private';
75 // join marker field to markers
76 if(is_array($out['marker'])) $out['markers'] = join(', ',$out['marker']);
84 $smarty->assign('entry',$out);
88 * assigns the last LDAP error to the template
90 function tpl_ldaperror($message=""){
92 global $__LDAPERROR__;
94 $errno = ldap_errno($LDAP_CON);
96 $__LDAPERROR__ .= ldap_err2str($errno);
98 $__LDAPERROR__ .= "($message)";
100 $__LDAPERROR__ .= '\n';
102 $smarty->assign("LDAPERRORS",$__LDAPERROR__);
106 * assigns all markers to the template
108 function tpl_markers(){
113 if(!$conf['extended']) return;
117 $sr = ldap_list($LDAP_CON,$conf['publicbook'],"ObjectClass=inetOrgPerson",array("marker"));
118 $result1 = ldap_get_binentries($LDAP_CON, $sr);
119 //check users private addressbook
120 if(!empty($_SESSION['ldapab']['binddn'])){
121 $sr = @ldap_list($LDAP_CON,
122 $conf['privatebook'].','.$_SESSION['ldapab']['binddn'],
123 "ObjectClass=inetOrgPerson",array("marker"));
124 $result2 = ldap_get_binentries($LDAP_CON, $sr);
128 $result = array_merge((array)$result1,(array)$result2);
131 foreach ($result as $entry){
132 if(!empty($entry['marker']) && count($entry['marker'])){
133 foreach($entry['marker'] as $marker){
134 array_push($markers, $marker);
139 $markers = array_unique($markers);
140 sort($markers,SORT_STRING);
142 $smarty->assign('markers',$markers);
146 * Assigns all distinct organization names to the template
156 $sr = ldap_list($LDAP_CON,$conf['publicbook'],"ObjectClass=inetOrgPerson",array($FIELDS['organization']));
157 $result1 = ldap_get_binentries($LDAP_CON, $sr);
158 //check users private addressbook
159 if(!empty($_SESSION['ldapab']['binddn'])){
160 $sr = @ldap_list($LDAP_CON,
161 $conf['privatebook'].','.$_SESSION['ldapab']['binddn'],
162 "ObjectClass=inetOrgPerson",array($FIELDS['organization']));
163 $result2 = ldap_get_binentries($LDAP_CON, $sr);
165 $result = array_merge((array)$result1,(array)$result2);
168 foreach ($result as $entry){
169 if(!empty($entry[$FIELDS['organization']][0])){
170 array_push($orgs, $entry[$FIELDS['organization']][0]);
174 $orgs = array_unique($orgs);
176 $smarty->assign('orgs',$orgs);
180 * assigns all categories to the template
182 function tpl_categories(){
187 if(!$conf['openxchange']) return;
189 $categories = array();
191 $sr = ldap_list($LDAP_CON,$conf['publicbook'],"ObjectClass=OXUserObject",array("OXUserCategories"));
192 $result1 = ldap_get_binentries($LDAP_CON, $sr);
193 //check users private addressbook
194 if(!empty($_SESSION['ldapab']['binddn'])){
195 $sr = @ldap_list($LDAP_CON,
196 $conf['privatebook'].','.$_SESSION['ldapab']['binddn'],
197 "ObjectClass=OXUserObject",array("OXUserCategories"));
198 $result2 = ldap_get_binentries($LDAP_CON, $sr);
200 $result = array_merge((array)$result1,(array)$result2);
203 foreach ($result as $entry){
204 if(count($entry['OXUserCategories'])){
205 foreach($entry['OXUserCategories'] as $category){
206 array_push($categories, $category);
211 $categories = array_unique($categories);
212 sort($categories,SORT_STRING);
214 $smarty->assign('categories',$categories);
218 * assigns all timezones to the template
220 function tpl_timezone(){
225 if(!$conf['openxchange']) return;
229 $sr = ldap_list($LDAP_CON,$conf['publicbook'],"ObjectClass=OXUserObject",array("OXTimeZone"));
230 $result1 = ldap_get_binentries($LDAP_CON, $sr);
231 //check users private addressbook
232 if(!empty($_SESSION['ldapab']['binddn'])){
233 $sr = @ldap_list($LDAP_CON,
234 $conf['privatebook'].','.$_SESSION['ldapab']['binddn'],
235 "ObjectClass=OXUserObject",array("OXTimeZone"));
236 $result2 = ldap_get_binentries($LDAP_CON, $sr);
238 $result = array_merge((array)$result1,(array)$result2);
241 foreach ($result as $entry){
242 if(count($entry['OXTimeZone'])){
243 foreach($entry['OXTimeZone'] as $tz){
244 array_push($timezone, $tz);
249 $timezone = array_unique($timezone);
250 sort($timezone,SORT_STRING);
252 $smarty->assign('timezone',$timezone);
256 * assigns all countries to the template
258 function tpl_country(){
263 if(!$conf['openxchange']) return;
267 $sr = ldap_list($LDAP_CON,$conf['publicbook'],"ObjectClass=OXUserObject",array("userCountry"));
268 $result1 = ldap_get_binentries($LDAP_CON, $sr);
269 //check users private addressbook
270 if(!empty($_SESSION['ldapab']['binddn'])){
271 $sr = @ldap_list($LDAP_CON,
272 $conf['privatebook'].','.$_SESSION['ldapab']['binddn'],
273 "ObjectClass=OXUserObject",array("userCountry"));
274 $result2 = ldap_get_binentries($LDAP_CON, $sr);
276 $result = array_merge((array)$result1,(array)$result2);
279 foreach ($result as $entry){
280 if(count($entry['userCountry'])){
281 foreach($entry['userCountry'] as $c){
282 array_push($country, $c);
287 $country = array_unique($country);
288 sort($country,SORT_STRING);
290 $smarty->assign('country',$country);