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("filesToAttach");
13 var $objectclasses = array("whatever");
14 var $use_existing = false;
15 var $filesToAttach = array();
17 var $baseDir = "../kioskProfiles/";
19 function kioskManagementDialog ($config, $dn= NULL,$attach=false )
20 {
21 plugin::plugin ($config, $dn);
22 if($attach){
23 $this->filesToAttach = $attach;
24 }
25 $this->baseDir = search_config($this->config->data['MENU'],"environment", "KIOSKPATH");
26 }
28 function execute()
29 {
30 /* Fill templating stuff */
31 $smarty= get_smarty();
32 $display= "";
34 /* Add new kiosk profile
35 * in profile directory ($this->baseDir);
36 */
37 if((isset($_POST['profileAdd']))&&(isset($_FILES['newProfile']))){
38 $file = $_FILES['newProfile'];
39 if(!file_exists($this->baseDir.$file['name'])){
40 $this->filesToAttach[$file['name']]=$file;
41 $this->filesToAttach[$file['name']]['contents'] = file_get_contents($file['tmp_name']);
42 }
43 }
45 /* Delete profile
46 * Delete selected file form $this->baseDir
47 */
48 if((isset($_POST['profileDel']))&&(isset($_POST['gotoKioskProfile']))){
49 $filename = $this->baseDir."/".$_POST['gotoKioskProfile'];
51 $res = @unlink($filename);
52 if(!$res){
53 if(!is_writeable($filename)){
54 print_red(_("Can't delete '".$filename."' permission denied."));
55 }
56 if(!file_exists($filename)){
57 print_red(_("Can't delete '".$filename."' file don't exists."));
58 }
60 }
61 }
63 /*Assign all existing profiles to smarty*/
64 $smarty->assign("gotoKioskProfiles",$this->getKioskProfiles());
65 $smarty->assign("gotoKioskProfileKeys",array_flip($this->getKioskProfiles()));
67 $display.= $smarty->fetch(get_template_path('kioskManagement.tpl', TRUE,dirname(__FILE__)));
68 return($display);
69 }
71 function save(){
72 return($this->filesToAttach);
73 }
75 function getKioskProfiles($attach = false)
76 {
77 $a_return = array();
78 $dir = @opendir($this->baseDir);
79 if(!$dir){
80 print_red(sprintf(_("Can't open %s permission denied."),$this->baseDir));
81 }else{
82 $a_return = array();
83 while($file = readdir($dir)){
84 if(!(($file==".")||($file==".."))){
85 $name = $file;
86 $a_return[$name] = $name;
87 }
88 }
89 }
91 foreach($this->filesToAttach as $file){
92 $a_return[$file['name']] = $file['name'];
93 }
95 if($attach){
96 foreach($attach as $file){
97 $a_return[$file['name']] = $file['name'];
98 }
99 }
101 return($a_return);
102 }
104 }
105 // vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
106 ?>