Code

Updated post event handling
[gosa.git] / gosa-core / include / class_config.inc
index daad80f35cdb78633093374f283f65346964460e..64995adaccc80e487f2f38ca4820d03437a501b2 100644 (file)
@@ -60,6 +60,7 @@ class config  {
   var $idepartments= array();
   var $adepartments= array();
   var $tdepartments= array();
+  var $department_info= array();
   var $filename = "";
   var $last_modified = 0;
 
@@ -246,6 +247,10 @@ class config  {
                   }
                   break;
 
+      case 'PATHMENU':
+                  $this->data['PATHMENU']= array(); ;
+                  break;
+
                   /* Inser plugins */
       case 'PLUGIN':
                   if ($this->tags[$this->level-3] == 'MENU' &&
@@ -253,6 +258,9 @@ class config  {
 
                     $this->data['MENU'][$this->section][$this->gpc++]= $attrs;
                   }
+                  if ($this->tags[$this->level-2] == 'PATHMENU'){
+                    $this->data['PATHMENU'][$this->gpc++]= $attrs;
+                  }
                   if ($this->tags[$this->level-2] == 'SERVICEMENU'){
                     $this->data['SERVICE'][$attrs['CLASS']]= $attrs;
                   }
@@ -390,8 +398,8 @@ class config  {
       $bases= array();
       $servers= array();
       foreach ($this->current['REFERRAL'] as $ref){
-        $server= preg_replace('%^(.*)/[^/]+$%', '\\1', $ref['URI']);
-        $base= preg_replace('%^.*/([^/]+)$%', '\\1', $ref['URI']);
+        $server= preg_replace('%^(.*://[^/]+)/.*$%', '\\1', $ref['URI']);
+        $base= preg_replace('%^.*://[^/]+/(.*)$%', '\\1', $ref['URI']);
         $bases[$base]= strlen($base);
         $servers[$base]= $server;
       }
@@ -720,7 +728,7 @@ class config  {
     $types = departmentManagement::get_support_departments();
     
     /* Create a list of attributes to fetch */
-    $ldap_values = array("objectClass","gosaUnitTag");
+    $ldap_values = array("objectClass","gosaUnitTag", "description");
     $filter = "";
     foreach($types as $type){
       $ldap_values[] = $type['ATTR'];
@@ -739,16 +747,18 @@ class config  {
       foreach($types as $t => $data){
         if(in_array($data['OC'],$attrs['objectClass'])){
           $type_data = $data;
-          break;    
+          break;
         }
       }
 
-      /* Unknown department type -> skip 
-       */
+      /* Unknown department type -> skip */
       if(!count($type_data)) continue;
 
       $dn= $ldap->getDN();
       $this->tdepartments[$dn]= "";
+      $this->department_info[$dn]= array("img" => $type_data['IMG'],
+                                         "description" => isset($attrs['description'][0])?$attrs['description'][0]:"",
+                                         "name" => $attrs[$type_data['ATTR']][0]);
 
       /* Save administrative departments */
       if (in_array_ics("gosaAdministrativeUnit", $attrs['objectClass']) &&
@@ -765,7 +775,6 @@ class config  {
       if ($dn == $ignore_dn){
         continue;
       }
-
       $c_dn = convert_department_dn($dn)." (".$type_data['ATTR'].")";
 
       /* Only assign non-root departments */
@@ -805,7 +814,7 @@ class config  {
       }
 
       /* Split dn into single department pieces */
-      $elements = array_reverse(split(',',preg_replace("/$qbase$/",'',$val)));                 
+      $elements = array_reverse(explode(',',preg_replace("/$qbase$/",'',$val)));               
 
       /* Add last ou element of current dn to our array */
       $last = &$arr;
@@ -903,7 +912,7 @@ class config  {
       }
       if(isset($entry['goExportEntry'])){
         foreach($entry['goExportEntry'] as $export){
-          $shareAttrs = split("\|",$export);
+          $shareAttrs = explode("|",$export);
           if($listboxEntry) {
             $return[$shareAttrs[0]."|".$entry['cn'][0]] = $shareAttrs[0]." - ".$entry['cn'][0];
           }else{
@@ -944,7 +953,7 @@ class config  {
           unset($entry['goExportEntry']['count']);
         }
         foreach($entry['goExportEntry'] as $share){
-          $a_share = split("\|",$share);
+          $a_share = explode("|",$share);
           $sharename = $a_share[0];
           $data= array();
           $data['NAME']   = $sharename;