Code

ef006783117490cd4bb65fd6a4a3760ee0d3245e
[gosa.git] / plugins / personal / environment / class_kioskManagementDialog.inc
1 <?php
3 class kioskManagementDialog extends plugin
4 {
5   /* CLI vars */
6   var $cli_summary          = "Manage server basic objects";
7   var $cli_description      = "Some longer text\nfor help";
8   var $cli_parameters       = array("eins" => "Eins ist toll", "zwei" => "Zwei ist noch besser");
10   /* attribute list for save action */
11   var $ignore_account       = TRUE;
12   var $attributes           = array();
13   var $objectclasses        = array("whatever");
14   var $use_existing         = false;  
16   var $baseDir              = "../kioskProfiles/";
17   var $filePrefix           = ".kioskProfile";
19   function kioskManagementDialog ($config, $dn= NULL,$use_existing=false )
20   {
21     $this->use_existing = $use_existing;
22     plugin::plugin ($config, $dn);
23   }
25   function execute()
26   {
27     /* Fill templating stuff */
28     $smarty= get_smarty();
29     $display= "";
31     /* Add new kiosk profile 
32      * Save the new Profile with filePrefix ($this->filePrefix)
33      * in profile directory ($this->baseDir); 
34      */
35     if((isset($_POST['profileAdd']))&&(isset($_FILES['newProfile']))){
36       $file = $_FILES['newProfile'];
37       if(!file_exists($this->baseDir.$file['name'])){
38         $name = preg_replace("/\..*$/","",$file['name']).$this->filePrefix;
39         $str = file_get_contents($file['tmp_name']);
40         $fp = fopen($this->baseDir.$name,"w+");
41         fwrite($fp,$str,strlen($str));
42         fclose($fp);
43       }
44     }
45       
46     /* Delete profile
47      * Delete selected file form $this->baseDir
48      */
49     if((isset($_POST['profileDel']))&&(isset($_POST['gotoKioskProfile']))){
50       $filename = $this->baseDir.$_POST['gotoKioskProfile'].$this->filePrefix;
51   
52       $res = @unlink($filename);
53       if(!$res){
54         if(!is_writeable($filename)){
55           print_red(_("Can't delete '".$filename."' permission denied."));
56         }
57         if(!file_exists($filename)){
58           print_red(_("Can't delete '".$filename."' file don't exists."));
59         }
60       
61       }
62     }
64     /*Assign all existing profiles to smarty*/
65     $smarty->assign("gotoKioskProfiles",$this->getKioskProfiles());
66     $smarty->assign("gotoKioskProfileKeys",array_flip($this->getKioskProfiles()));
68     $display.= $smarty->fetch(get_template_path('kioskManagement.tpl', TRUE,dirname(__FILE__)));
69     return($display);
70   }
72   function getKioskProfiles()
73   {
74     $dir = opendir($this->baseDir);
75     $a_return = array();
76     while($file = readdir($dir)){
77       if(preg_match("/".$this->filePrefix."$/i",$file)){
78         $name = preg_replace("/".$this->filePrefix."$/i","",$file);;
79         $a_return[$name] = $name;
80       }
81     }
82     return($a_return);
83   }
85 }
86 // vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
87 ?>