diff --git a/plugins/admin/systems/class_printerPPDDialog.inc b/plugins/admin/systems/class_printerPPDDialog.inc
index 8515a1b49b89f990fb3d044991af793485b4689f..2f0c18f9db0913411bafb808f641e76c9495ed3f 100644 (file)
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);
}else{
$this->pathToPPD = "";
}
}
}// 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){
$tmp2= split("\n", $res);
$tmp3['name'] =preg_replace("/^ -/","",$tmp2[1]);
- $tmp3['link'] =$filename;
+ $tmp3['link'] =$ppdname;
$tmp3['ppd'] =$res;
+
$this->selectedPPD = $tmp3;
$this->getPrinterReload();
}
}
}
+ /* 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){
}
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 */
*/
$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) ;
}