ef006783117490cd4bb65fd6a4a3760ee0d3245e
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 }
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;
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 }
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 ?>