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);
}
/**
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 starred 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 ($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';
+ }
}
- //decode array
- utf8_decode_array($out);
+ // join marker field to markers
+ if(is_array($out['marker'])) $out['markers'] = join(', ',$out['marker']);
-/*print '<pre>';
+/*
+print '<pre>';
print_r($out);
-print '</pre>';*/
+print '</pre>';
+*/
$smarty->assign('entry',$out);
}
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);
}
}
$markers = array_unique($markers);
sort($markers,SORT_STRING);
-
- utf8_decode_array($markers);
+
$smarty->assign('markers',$markers);
}
global $conf;
global $LDAP_CON;
global $smarty;
+ global $FIELDS;
$orgs = array();
- $sr = ldap_list($LDAP_CON,$conf[publicbook],"ObjectClass=inetOrgPerson",array("o"));
+ $sr = ldap_list($LDAP_CON,$conf['publicbook'],"ObjectClass=inetOrgPerson",array($FIELDS['organization']));
$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],
- "ObjectClass=inetOrgPerson",array("o"));
+ $conf['privatebook'].','.$_SESSION['ldapab']['binddn'],
+ "ObjectClass=inetOrgPerson",array($FIELDS['organization']));
$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){
- 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);
- utf8_decode_array($orgs);
+ natcasesort($orgs);
$smarty->assign('orgs',$orgs);
}
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){
}
$categories = array_unique($categories);
sort($categories,SORT_STRING);
-
- utf8_decode_array($categories);
+
$smarty->assign('categories',$categories);
}
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){
}
$timezone = array_unique($timezone);
sort($timezone,SORT_STRING);
-
- utf8_decode_array($timezone);
+
$smarty->assign('timezone',$timezone);
}
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){
}
$country = array_unique($country);
sort($country,SORT_STRING);
-
- utf8_decode_array($country);
+
$smarty->assign('country',$country);
}