Code

Updated plugin class
[gosa.git] / gosa-core / include / class_listing.inc
index 2accbf8f293cd43101d1de01ebc3d38f9a9520a6..7ec88be52a422b8b9b0f6de6c030477f7489c826 100644 (file)
@@ -164,7 +164,7 @@ class listing {
     // Fill objectTypes from departments and xml definition
     $types = departmentManagement::get_support_departments();
     foreach ($types as $class => $data) {
-      $this->objectTypes[]= array("label" => $data['TITLE'],
+      $this->objectTypes[$data['OC']]= array("label" => $data['TITLE'],
                                   "objectClass" => $data['OC'],
                                   "image" => $data['IMG']);
     }
@@ -174,12 +174,14 @@ class listing {
         $this->xmlData['definition']['objectType']= array($this->xmlData['definition']['objectType']);
       }
       foreach ($this->xmlData['definition']['objectType'] as $index => $otype) {
-        $this->objectTypes[]= $this->xmlData['definition']['objectType'][$index];
+        $tmp = $this->xmlData['definition']['objectType'][$index];
+        $this->objectTypes[$tmp['objectClass']]= $tmp;
         if (isset($this->xmlData['definition']['objectType'][$index]['category'])){
           $this->categories[]= $otype['category'];
         }
       }
     }
+    $this->objectTypes = array_values($this->objectTypes);
 
     // Parse layout per column
     $this->colprops= $this->parseLayout($this->xmlData['table']['layout']);
@@ -380,10 +382,10 @@ class listing {
     // Complete list by sorting entries for _sort$index and appending them to the output
     $entryIterator= new listingSortIterator($this->entries, $this->sortDirection[$this->sortColumn], "_sort".$this->sortColumn, $this->sortType);
     foreach ($entryIterator as $row => $entry){
-      $alt++;
       $result.="<tr class='rowxp".($alt&1)."'>\n";
       $result.= $entry['_rendered'];
       $result.="</tr>\n";
+      $alt++;
     }
 
     // Need to fill the list if it's not full (nobody knows why this is 22 ;-))
@@ -1250,7 +1252,7 @@ class listing {
           $checkAcl= "";
 
           // Category or detailed permission?
-          if (strpos('/', $module) === false) {
+          if (strpos($module, '/') !== false) {
             if (preg_match('/([a-zA-Z0-9]+):([rwcdm]+)/', $sAcl, $m) ) {
               $checkAcl= $ui->get_permissions($dn, $module, $m[1]);
               $sAcl= $m[2];
@@ -1298,6 +1300,7 @@ class listing {
     // Populate base selector if already present
     if ($this->baseSelector && $this->baseMode) {
       $this->baseSelector->setBases($this->bases);
+      $this->baseSelector->update(TRUE);
     }
   }