]> git.sur5r.net Git - contagged/blobdiff - template.php
more redesign and code cleanup
[contagged] / template.php
index 06fe3d0cebdeacbc4482d4e47cfda46c5dfeb3e4..c5e850e68e945fb8cee1f672b65a9d365e7542c3 100644 (file)
@@ -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 '<pre>';
+  // join marker field to markers
+  if(is_array($out['marker'])) $out['markers'] = join(', ',$out['marker']);
+
+/*
+print '<pre>';
 print_r($out);
-print '</pre>';*/
+print '</pre>';
+*/
 
   $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);
 }