X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=template.php;h=c5e850e68e945fb8cee1f672b65a9d365e7542c3;hb=cb2adba7030b7a2eba73afa7e4ec1f48b57a6073;hp=06fe3d0cebdeacbc4482d4e47cfda46c5dfeb3e4;hpb=af1231e99642fed914a1f307e43515d402e4e0ca;p=contagged diff --git a/template.php b/template.php index 06fe3d0..c5e850e 100644 --- a/template.php +++ b/template.php @@ -7,17 +7,25 @@ function tpl_std(){ global $smarty; global $lang; global $conf; + global $FIELDS; - $smarty->assign('user',$_SESSION[ldapab][username]); - $smarty->assign('binddn',$_SESSION[ldapab][binddn]); - if(!empty($_SESSION[ldapab][lastlocation])){ - $smarty->assign('home',$_SESSION[ldapab][lastlocation]); + if(empty($_SESSION['ldapab']['username'])){ + $_SESSION['ldapab']['username'] = ''; + } + if(empty($_SESSION['ldapab']['binddn'])){ + $_SESSION['ldapab']['binddn'] = ''; + } + + $smarty->assign('user',$_SESSION['ldapab']['username']); + $smarty->assign('binddn',$_SESSION['ldapab']['binddn']); + if(!empty($_SESSION['ldapab']['lastlocation'])){ + $smarty->assign('home',$_SESSION['ldapab']['lastlocation']); }else{ $smarty->assign('home','index.php'); } $smarty->assign('conf',$conf); $smarty->assign('lang',$lang); - $smarty->assign('dfexample',$dfexample); + $smarty->assign('fields',$FIELDS); } /** @@ -27,46 +35,51 @@ function tpl_std(){ function tpl_entry($in){ global $smarty; global $conf; - $entries = namedentries(); + global $RFIELDS; + $out=array(); - //handle named entries - foreach(array_keys($entries) as $key){ - if($in[$key]){ - if(is_array($in[$key])){ - $out[$entries[$key]] = $in[$key][0]; - }else{ - $out[$entries[$key]] = $in[$key]; - } - } - } + // handle named entries + foreach($RFIELDS as $key => $name){ + if(empty($in[$key])) continue; - //set the type - $out['dn'] = normalize_dn($out['dn']); - $conf[publicbook] = normalize_dn($conf[publicbook]); - if($out['dn']){ - if(strstr($out['dn'],$conf[publicbook])){ - $out[type] = 'public'; + // keep arrays for multi fields + if($name{0} == '_'){ + $name = substr($name,1); + if(is_array($in[$key])){ + $out[$name] = $in[$key]; + }else{ + $out[$name] = array($in[$key]); + } }else{ - $out[type] = 'private'; + if(is_array($in[$key])){ + $out[$name] = $in[$key][0]; + }else{ + $out[$name] = $in[$key]; + } } } - //mail entries are handled special - $out['mail'] = $in['mail']; - if ($conf[extended]){ - //handle marker special in extended mode - $out['marker'] = $in['marker']; - if(is_array($in['marker'])) $out['markers'] = join(', ',$in['marker']); - } - if ($conf[openxchange]){ - //handle categories special in openxchange mode - $out['categories'] = $in['OXUserCategories']; + // set the type + if (empty($out['dn'])) { $out['dn']=''; } + $out['dn'] = normalize_dn($out['dn']); + $conf['publicbook'] = normalize_dn($conf['publicbook']); + if($out['dn']){ + if(strstr($out['dn'],$conf['publicbook'])){ + $out['type'] = 'public'; + }else{ + $out['type'] = 'private'; + } } -/*print '
';
+  // join marker field to markers
+  if(is_array($out['marker'])) $out['markers'] = join(', ',$out['marker']);
+
+/*
+print '
';
 print_r($out);
-print '
';*/ +print '
'; +*/ $smarty->assign('entry',$out); } @@ -97,24 +110,26 @@ function tpl_markers(){ global $LDAP_CON; global $smarty; - if(!$conf[extended]) return; + if(!$conf['extended']) return; $markers = array(); - $sr = ldap_list($LDAP_CON,$conf[publicbook],"ObjectClass=inetOrgPerson",array("marker")); + $sr = ldap_list($LDAP_CON,$conf['publicbook'],"ObjectClass=inetOrgPerson",array("marker")); $result1 = ldap_get_binentries($LDAP_CON, $sr); //check users private addressbook - if(!empty($_SESSION[ldapab][binddn])){ + if(!empty($_SESSION['ldapab']['binddn'])){ $sr = @ldap_list($LDAP_CON, - $conf[privatebook].','.$_SESSION[ldapab][binddn], + $conf['privatebook'].','.$_SESSION['ldapab']['binddn'], "ObjectClass=inetOrgPerson",array("marker")); $result2 = ldap_get_binentries($LDAP_CON, $sr); + }else{ + $result2 = ''; } - $result = array_merge($result1,$result2); + $result = array_merge((array)$result1,(array)$result2); if(count($result)){ foreach ($result as $entry){ - if(count($entry['marker'])){ + if(!empty($entry['marker']) && count($entry['marker'])){ foreach($entry['marker'] as $marker){ array_push($markers, $marker); } @@ -123,7 +138,7 @@ function tpl_markers(){ } $markers = array_unique($markers); sort($markers,SORT_STRING); - + $smarty->assign('markers',$markers); } @@ -134,29 +149,20 @@ function tpl_orgs(){ global $conf; global $LDAP_CON; global $smarty; + global $FIELDS; $orgs = array(); - - $sr = ldap_list($LDAP_CON,$conf[publicbook],"ObjectClass=inetOrgPerson",array("o")); - $result1 = ldap_get_binentries($LDAP_CON, $sr); - //check users private addressbook - if(!empty($_SESSION[ldapab][binddn])){ - $sr = @ldap_list($LDAP_CON, - $conf[privatebook].','.$_SESSION[ldapab][binddn], - "ObjectClass=inetOrgPerson",array("o")); - $result2 = ldap_get_binentries($LDAP_CON, $sr); - } - $result = array_merge($result1,$result2); + $result = ldap_queryabooks("ObjectClass=inetOrgPerson",array($FIELDS['organization'])); if(count($result)){ foreach ($result as $entry){ - if(!empty($entry[o][0])){ - array_push($orgs, $entry[o][0]); + if(!empty($entry[$FIELDS['organization']][0])){ + array_push($orgs, $entry[$FIELDS['organization']][0]); } } } $orgs = array_unique($orgs); - sort($orgs,SORT_STRING); + natcasesort($orgs); $smarty->assign('orgs',$orgs); } @@ -168,20 +174,20 @@ function tpl_categories(){ global $LDAP_CON; global $smarty; - if(!$conf[openxchange]) return; + if(!$conf['openxchange']) return; $categories = array(); - $sr = ldap_list($LDAP_CON,$conf[publicbook],"ObjectClass=OXUserObject",array("OXUserCategories")); + $sr = ldap_list($LDAP_CON,$conf['publicbook'],"ObjectClass=OXUserObject",array("OXUserCategories")); $result1 = ldap_get_binentries($LDAP_CON, $sr); //check users private addressbook - if(!empty($_SESSION[ldapab][binddn])){ + if(!empty($_SESSION['ldapab']['binddn'])){ $sr = @ldap_list($LDAP_CON, - $conf[privatebook].','.$_SESSION[ldapab][binddn], + $conf['privatebook'].','.$_SESSION['ldapab']['binddn'], "ObjectClass=OXUserObject",array("OXUserCategories")); $result2 = ldap_get_binentries($LDAP_CON, $sr); } - $result = array_merge($result1,$result2); + $result = array_merge((array)$result1,(array)$result2); if(count($result)){ foreach ($result as $entry){ @@ -194,7 +200,7 @@ function tpl_categories(){ } $categories = array_unique($categories); sort($categories,SORT_STRING); - + $smarty->assign('categories',$categories); } @@ -206,20 +212,20 @@ function tpl_timezone(){ global $LDAP_CON; global $smarty; - if(!$conf[openxchange]) return; + if(!$conf['openxchange']) return; $timezone = array(); - $sr = ldap_list($LDAP_CON,$conf[publicbook],"ObjectClass=OXUserObject",array("OXTimeZone")); + $sr = ldap_list($LDAP_CON,$conf['publicbook'],"ObjectClass=OXUserObject",array("OXTimeZone")); $result1 = ldap_get_binentries($LDAP_CON, $sr); //check users private addressbook - if(!empty($_SESSION[ldapab][binddn])){ + if(!empty($_SESSION['ldapab']['binddn'])){ $sr = @ldap_list($LDAP_CON, - $conf[privatebook].','.$_SESSION[ldapab][binddn], + $conf['privatebook'].','.$_SESSION['ldapab']['binddn'], "ObjectClass=OXUserObject",array("OXTimeZone")); $result2 = ldap_get_binentries($LDAP_CON, $sr); } - $result = array_merge($result1,$result2); + $result = array_merge((array)$result1,(array)$result2); if(count($result)){ foreach ($result as $entry){ @@ -232,7 +238,7 @@ function tpl_timezone(){ } $timezone = array_unique($timezone); sort($timezone,SORT_STRING); - + $smarty->assign('timezone',$timezone); } @@ -244,20 +250,20 @@ function tpl_country(){ global $LDAP_CON; global $smarty; - if(!$conf[openxchange]) return; + if(!$conf['openxchange']) return; $country = array(); - $sr = ldap_list($LDAP_CON,$conf[publicbook],"ObjectClass=OXUserObject",array("userCountry")); + $sr = ldap_list($LDAP_CON,$conf['publicbook'],"ObjectClass=OXUserObject",array("userCountry")); $result1 = ldap_get_binentries($LDAP_CON, $sr); //check users private addressbook - if(!empty($_SESSION[ldapab][binddn])){ + if(!empty($_SESSION['ldapab']['binddn'])){ $sr = @ldap_list($LDAP_CON, - $conf[privatebook].','.$_SESSION[ldapab][binddn], + $conf['privatebook'].','.$_SESSION['ldapab']['binddn'], "ObjectClass=OXUserObject",array("userCountry")); $result2 = ldap_get_binentries($LDAP_CON, $sr); } - $result = array_merge($result1,$result2); + $result = array_merge((array)$result1,(array)$result2); if(count($result)){ foreach ($result as $entry){ @@ -270,7 +276,7 @@ function tpl_country(){ } $country = array_unique($country); sort($country,SORT_STRING); - + $smarty->assign('country',$country); }