X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=include%2Fclass_ppdManager.inc;h=7e416556d036bcf13f8aa23af19f69c783d3b019;hb=a587a3d7106e6636279f232eb5d2b3f25bb64a41;hp=86f6c538567661e1317366b6ce201bc244fed88c;hpb=c2b9a2d0cac84bed4a26bd25b808b96401dc8b43;p=gosa.git diff --git a/include/class_ppdManager.inc b/include/class_ppdManager.inc index 86f6c5385..7e416556d 100644 --- a/include/class_ppdManager.inc +++ b/include/class_ppdManager.inc @@ -54,8 +54,10 @@ class ppdManager $section= preg_replace('/^\*/', '', $section); $attribute= preg_replace('/^\*/', '', $attribute); - $rp= fopen($file, "r"); - $wp= fopen("$file.tmp", "w"); + $rp= @fopen($file, "r"); + $wp= @fopen("$file.tmp", "w"); + + while (!feof($rp)){ $lines[]= fgets($rp, 1024); @@ -71,6 +73,12 @@ class ppdManager continue; } + /* Change model name .. */ + if ((preg_match("/^\*".$attribute.":*\s+/",$line)) && ($attribute == "ModelName")){ + $line= "*$attribute: \"$value\"\n"; + $done =true; + } + if (($fsection) && ($section != "NO_SECTION")){ if (preg_match("/^\*CloseGroup:*\s+\**$section\/*/", $line)){ $fsection= false; @@ -132,10 +140,16 @@ class ppdManager function saveProperties($ppdFile, $properties) { - foreach ($properties as $name => $section){ - foreach ($section as $attribute => $value){ - if (is_array($value)){ - $this->updateAttribute($ppdFile, $name, $attribute, $value['_default']); + if(!is_readable($ppdFile)){ + print_red(sprintf(_("Specified ppd file '%s' can't be opened for reading."),$ppdFile)); + }elseif(!is_writeable(preg_replace("#(^.*/).*$#","\\1",$ppdFile.".tmp"))){ + print_red(sprintf(_("The required tmp file file '%s' can't be opened for writing."),$ppdFile.".tmp")); + }else{ + foreach ($properties as $name => $section){ + foreach ($section as $attribute => $value){ + if (is_array($value)){ + $this->updateAttribute($ppdFile, $name, $attribute, $value['_default']); + } } } }