"Eins ist toll", "zwei" => "Zwei ist noch besser"); /* attribute list for save action */ var $ignore_account= TRUE; var $attributes= array(); var $objectclasses= array("whatever"); var $users = array(); var $departments = array(); var $ui; var $PostVarName = ""; function glpiSelectUser ($config, $dn= NULL,$postvar) { plugin::plugin ($config, $dn); $this->PostVarName = $postvar; if(!isset($_SESSION['glpi_user_filter'])){ $tmp['users_regex'] = "*"; $tmp['base'] = $this->config->current['BASE']; $_SESSION['glpi_user_filter'] = $tmp; } $this->ui = get_userinfo(); } function execute() { /* Call parent execute */ plugin::execute(); $filter = $_SESSION['glpi_user_filter']; /* Filter settings, remove double* */ if(isset($_GET['search'])){ $filter['users_regex'] = preg_replace("/\*\**/","*",$_GET['search']."*"); }elseif(isset($_POST['regex'])){ $filter['users_regex'] = preg_replace("/\*\**/","*",$_POST['regex']); } if(empty($filter['users_regex'])) { $filter = "*"; } $s_action=""; /* Test Posts */ foreach($_POST as $key => $val){ // Post for delete if(preg_match("/dep_back.*/i",$key)){ $s_action="back"; }elseif(preg_match("/user_new.*/",$key)){ $s_action="new"; }elseif(preg_match("/dep_home.*/i",$key)){ $s_action="home"; } } /* Homebutton is posted */ if($s_action=="home"){ $filter['base']=(preg_replace("/^[^,]+,/","",$this->ui->dn)); $filter['base']=(preg_replace("/^[^,]+,/","",$filter['base'])); } if($s_action=="root"){ $filter['base']=($this->config->current['BASE']); } /* If Backbutton is Posted */ if($s_action=="back"){ $base_back = preg_replace("/^[^,]+,/","",$filter['base']); $base_back = convert_department_dn($base_back); if(isset($this->config->departments[trim($base_back)])){ $filter['base']= $this->config->departments[trim($base_back)]; }else{ $filter['base']= $this->config->departments["/"]; } } if((isset($_GET['act']))&&($_GET['act']=="dep_open")){ $entry = base64_decode($_GET['dep_id']); $filter['base']= ($this->config->departments[$entry]); } $_SESSION['glpi_user_filter'] = $filter; $this->reload(); /* Fill templating stuff */ $smarty= get_smarty(); $display= ""; $divlist = new divlist("glpi users"); $divlist->SetEntriesPerPage(0); $divlist->SetHeader(array( array("string" => " ", "attach" => "style='text-align:center;width:20px;'"), array("string" => _("Users")." / "._("Departments"), "attach" => "style=''"), array("string" => _("Use"), "attach" => "style='width:60px;border-right:0px;text-align:right;'" ))); $linkopen = "%s"; foreach($this->departments as $key=> $val){ if(!isset($this->config->departments[trim($key)])){ $this->config->departments[trim($key)]=""; } $non_empty=""; $keys= str_replace("/","\/",$key); foreach($this->config->departments as $keyd=>$vald ){ if(preg_match("/".$keys."\/.*/",$keyd)){ $non_empty="full"; } } $field1 = array("string" => "", "attach" => "style='text-align:center;width:20px;'"); $field2 = array("string" => sprintf($linkopen,base64_encode($key),$val), "attach" => "style=''"); $field3 = array("string" => " ", "attach" => "style='width:60px;border-right:0px;text-align:right;'"); $divlist->AddEntry(array($field1,$field2,$field3)); } $useruse = "PostVarName."&id=%s'>%s"; foreach($this->users as $key=>$user){ $field1 = array("string" => "", "attach" => "style='text-align:center;width:20px;'"); $field2 = array("string" => sprintf($useruse,base64_encode($key),$user), "attach" => "style=''"); $field3 = array("string" => sprintf($useruse,base64_encode($key),""), "attach" => "style='width:60px;border-right:0px;text-align:right;'"); $divlist->AddEntry(array($field1,$field2,$field3)); } $listhead = "