Code

Updated manufacturer handling
[gosa.git] / plugins / admin / systems / class_printerPPDDialog.inc
index 8515a1b49b89f990fb3d044991af793485b4689f..f9f3ed2717412c8d9a8567df3639c8885488f3c4 100644 (file)
@@ -30,7 +30,10 @@ class printerPPDDialog extends plugin
 
     if(isset($_SESSION['config']->data['MAIN']['PPD_PATH'])){
       $this->pathToPPD = $_SESSION['config']->data['MAIN']['PPD_PATH'];
-       $this->pathToPPD= preg_replace("/\/*$/", "/", $this->pathToPPD);
+      $this->pathToPPD= preg_replace("/\/\//", "/", $this->pathToPPD);
+      if(!preg_match("/\/$/",$this->pathToPPD)){
+        $this->pathToPPD = $this->pathToPPD."/";
+      }
     }else{
       $this->pathToPPD = "";
     }
@@ -136,6 +139,7 @@ class printerPPDDialog extends plugin
                 }
               }// Foreach
               if(!$found){
+                $ppdname = $vendor."/".$vendor."-".preg_replace("/^[^ ]/","",str_replace("-","",$model)).".ppd";
                 $filename = $this->pathToPPD.$vendor."/".$vendor."-".preg_replace("/^[^ ]/","",str_replace("-","",$model)).".ppd";
                 $fp = @fopen($filename,"w+");
                 if(!$fp){
@@ -147,8 +151,9 @@ class printerPPDDialog extends plugin
 
                   $tmp2= split("\n", $res);
                   $tmp3['name']   =preg_replace("/^ -/","",$tmp2[1]);
-                  $tmp3['link']   =$filename;
+                  $tmp3['link']   =$ppdname;
                   $tmp3['ppd']    =$res;
+
                   $this->selectedPPD = $tmp3;
                   $this->getPrinterReload(); 
                 }
@@ -191,6 +196,25 @@ class printerPPDDialog extends plugin
         }
       }
 
+      /* Div Selection */ 
+      if((isset($_GET['act']))&&($_GET['act']=="use")){
+        $hit = false;
+        foreach($this->ppdList as $vendor => $ppds ){
+          foreach($ppds as $name => $ppd){
+            if($ppd['link']==$_GET['id']){
+              $hit = true;
+            }
+          }
+        }
+        if($hit == true){
+          $this->selectedPPD['link'] = str_replace($this->pathToPPD,"",$_GET['id']);
+          $this->ppdConfig   = false;
+        }
+        unset($this->dialog);
+        $this->dialog=NULL;
+        
+      }
+
       /* if a dialog is open, print the dialog instead of this class
        */
       if($this->dialog!=NULL){
@@ -237,7 +261,9 @@ class printerPPDDialog extends plugin
   }
 
   function save_ppd(){
-    $this->ppdManager->saveProperties($this->pathToPPD.$this->selectedPPD['link'],$this->ppdConfig);
+    if($this->ppdManager){
+      $this->ppdManager->saveProperties($this->pathToPPD.$this->selectedPPD['link'],$this->ppdConfig);
+    }
   }
 
   /* Save to LDAP */
@@ -254,7 +280,7 @@ class printerPPDDialog extends plugin
      */
     $str = "none";
     if(!empty($this->selectedPPD)){
-      $str = $this->ppdManager->loadDescription($this->pathToPPD.$this->selectedPPD['link']);
+      $str = $this->ppdManager->loadDescription($this->pathToPPD."/".$this->selectedPPD['link']);
     }
     return($str) ; 
   }