Code

Transparent backgrounds for error msgs in ie
[gosa.git] / plugins / generic / references / class_reference.inc
index 5b97749d70f6cc8d92d87cb3d088ea33708bb797..4b17529dbbbf318a30ffc91b5e3ebb99f40418d4 100644 (file)
@@ -55,6 +55,9 @@ class reference extends plugin
 
   function execute()
   {
+       /* Call parent execute */
+       plugin::execute();
+
        /* Set government mode */
        $smarty= get_smarty();
 
@@ -79,7 +82,7 @@ class reference extends plugin
   {
        $ldap= $this->config->get_ldap_link();
        $ldap->cd($this->config->current['BASE']);
-       $ldap->search("(|(member=".$this->dn.")(memberUid=".$this->uid."))");
+       $ldap->search("(|(member=".$this->dn.")(memberUid=".$this->uid."))",array("memberUid","member","cn","description","objectClass"));
        
        $cycle= array("F5F5F5", "ECECEC");
        $id= 0;
@@ -103,6 +106,9 @@ class reference extends plugin
                        }
                        foreach ($attrs[$memberattr] as $uid){
                                $content= $this->getCacheObject($uid);
+                               if ($content == NULL){
+                                       continue;
+                               }
                                $addon.= '<tr style="background-color:'.$cycle[$id&1].';"><td title="'.$attrs['cn'][0].'">&nbsp;&nbsp;&nbsp;'.$content['name'].'</td><td>'.$content['description'].'</td><td>'.$content['type'].'</td> </tr>';
                        }
                }
@@ -119,7 +125,7 @@ class reference extends plugin
                } else {
                        $img= "images/sort_down.png";
                }
-               $this->objectlist.= '<tr style="background-color:'.$cycle[$id&1].';"><td class="phonelist" title="'.$attrs['cn'][0].'"><a href=main.php?plug='.$_GET['plug'].'&amp;start=&amp;show='.base64_encode($attrs['dn']).'><img alt=\"\" src="'.$img.'" border=0>&nbsp;'.$attrs['cn'][0].'</a></td><td>'.$description.'</td><td>'.$content.'</td> </tr>'.$addon;
+               $this->objectlist.= '<tr style="background-color:'.$cycle[$id&1].';"><td class="phonelist" title="'.$attrs['cn'][0].'"><a href="main.php?plug='.$_GET['plug'].'&amp;start=&amp;show='.base64_encode($attrs['dn']).'"><img alt="" src="'.$img.'" border=0>&nbsp;'.$attrs['cn'][0].'</a></td><td>'.$description.'</td><td>'.$content.'</td> </tr>'.$addon;
 
                $id++;
        }
@@ -135,15 +141,19 @@ class reference extends plugin
                } else {
                        $ldap->search("(uid=$dn)", array("cn", "objectClass", "description"));
                }
-               $attrs= $ldap->fetch();
-               if (isset($attrs['description'])){
-                       $description= $attrs['description'][0];
+               if ($ldap->count()){
+                       $attrs= $ldap->fetch();
+                       if (isset($attrs['description'])){
+                               $description= $attrs['description'][0];
+                       } else {
+                               $description= "-";
+                       }
+                       $this->objectCache[$dn]= array( 'name' => $attrs['cn'][0],
+                                       'description' => "$description",
+                                       'type' => $this->createContentString($attrs['objectClass']));
                } else {
-                       $description= "-";
+                       return NULL;
                }
-               $this->objectCache[$dn]= array( 'name' => $attrs['cn'][0],
-                                               'description' => "$description",
-                                               'type' => $this->createContentString($attrs['objectClass']));
        }
        return ($this->objectCache[$dn]);
   }
@@ -151,11 +161,13 @@ class reference extends plugin
   function createContentString($classes)
   {
        $result= "";
-       foreach ($classes as $class){
-               if (isset($this->obtypes[$class])){
-                       $result.= "<a><img alt=\"\" border=0 src='images/".$this->obtypes[$class]['image']."'>&nbsp;".$this->obtypes[$class]['text']."</a> ";
+       if(!is_null($classes)) {
+               foreach ($classes as $class){
+                       if (isset($this->obtypes[$class])){
+                               $result.= "<a><img alt=\"\" border=0 src='images/".$this->obtypes[$class]['image']."'>&nbsp;".$this->obtypes[$class]['text']."</a> ";
+                       }
                }
-       }       
+       }
        return (preg_replace('/ $/', '', $result));
   }