1 <?php
3 class faiPackageEntry 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();
14 var $pkgs = array();
16 var $buffer = array();
17 var $categories = array();
18 var $searchStrPKG = "Please enter your search string here";
19 var $selected = array();
21 /* Array with available class names */
22 var $FAIAllclasses = array();
24 function faiPackageEntry ($config, $dn= NULL,$pkgs,$selected=array())
25 {
26 plugin::plugin ($config, $dn);
28 $this->pkgs=$pkgs;
30 if(isset($_SESSION['searchStrPKG'])){
31 $this->searchStrPKG=$_SESSION['searchStrPKG'];
32 }
33 $this->selected=$selected;
34 }
36 function execute()
37 {
38 /* Fill templating stuff */
39 $smarty = get_smarty();
40 $display = "";
42 $divlist = new divlist("PackageEntry");
43 $divlist->SetSummary(_("This list displays all assigned package names for this repository settings."));
44 $divlist->SetEntriesPerPage(20);
45 $divlist->SetHeader(array(array("string"=>" "),
46 array("string"=>"Name"),
47 array("string"=>"Version"),
48 array("string"=>"Description","attach"=>"style='border-right:0px;'")));
50 if(isset($_GET['search'])){
51 $this->searchStrPKG= $_GET['search']."*";
52 }
54 $pkgs= $this->pkgs;
56 unset($this->categories);
57 foreach($pkgs as $name => $entry){
58 $cat = $entry[2];
59 if(!empty($cat)){
60 if(!isset($this->categories[$cat])){
61 $this->categories[$cat] = true;
62 }
63 if(isset($_POST['chkchange'])){
64 $this->searchStrPKG = $_POST['searchStrPKG'];
65 if(isset($_POST['CAT'.$cat])){
66 $this->categories[$cat]=true;
67 }else{
68 $this->categories[$cat]=false;
69 }
70 }
71 }
72 }
74 ksort($this->categories);
76 $CHKS = "<table><tr><input type='hidden' value='chkchange' name='chkchange'>";
77 $i = 0;
78 foreach($this->categories as $cat => $selected){
79 if($i == 3){
80 $CHKS .="</tr><tr>";
81 $i = 0;
82 }
83 $i ++ ;
84 if($selected){
85 $CHKS .="<td><input type='checkbox' value='1' name='CAT".$cat."' checked onclick='document.mainform.submit()'> ".$cat." </td>";
86 }else{
87 $CHKS .="<td><input type='checkbox' value='1' name='CAT".$cat."' onclick='document.mainform.submit()'> ".$cat." </td>";
88 }
89 }
90 $CHKS .= "</td></tr></table>";
93 foreach($_POST as $name => $value){
94 if(preg_match("/^wasonpage_/i",$name)){
95 $name = preg_replace("/^wasonpage_/","",$name);
96 $n =base64_decode($name);
98 if(isset($_POST['use_'.$name])){
99 $this->selected[$n] = $n;
100 }else{
101 if(isset($this->selected[$n])){
102 unset($this->selected[$n]);
103 }
104 }
106 }
107 }
109 foreach($pkgs as $pkg){
110 if((preg_match("/^".str_replace("*",".*",$this->searchStrPKG)."/i",$pkg[0]))||
111 (preg_match("/^".str_replace("*",".*",$this->searchStrPKG)."/i",$pkg[3]))){
112 if($this->categories[$pkg[2]]){
113 if(in_array($pkg[0],$this->selected)){
114 $check = " checked ";
115 }else{
116 $check = "";
117 }
118 $chkbox = "<input type='checkbox' value='1' name='use_".base64_encode($pkg[0])."' ".$check." onclick='document.mainform.submit()'>
119 <input type='hidden' value='1' name='wasonpage_".base64_encode($pkg[0])."'>";
120 $divlist->AddEntry(array(array("string"=>$chkbox),
121 array("string"=>$pkg[0]),
122 array("string"=>$pkg[1]),
123 array("string"=>$pkg[3],"attach"=>"style='border-right:0px'")));
124 }
125 }
126 }
128 $_SESSION['searchStrPKG'] = $this->searchStrPKG;
129 $smarty->assign("CHKS" , $CHKS);
130 $smarty->assign("searchStrPKG" , $this->searchStrPKG);
131 $smarty->assign("faihead" , "");
132 $smarty->assign("failist" , $divlist->DrawList());
133 $smarty->assign("infoimage" , get_template_path('images/info.png'));
134 $smarty->assign("launchimage" , get_template_path('images/launch.png'));
135 $smarty->assign("alphabet" , generate_alphabet());
136 $smarty->assign("apply" , apply_filter(TRUE));
137 $smarty->assign("search_image" , get_template_path('images/search.png'));
139 $display.= $smarty->fetch(get_template_path('faiPackageEntry.tpl', TRUE));
140 return($display);
141 }
143 /* Save data to object */
144 function save_object()
145 {
146 foreach($_POST as $name => $value){
147 if(preg_match("/^wasonpage_/i",$name)){
148 $name = preg_replace("/^wasonpage_/","",$name);
149 $n =base64_decode($name);
150 if(isset($_POST['use_'.$name])){
151 $this->selected[$n] = $n;
152 }else{
153 if(isset($this->selected[$n])){
154 unset($this->selected[$n]);
155 }
156 }
158 }
159 }
161 }
163 /* Check supplied data */
164 function check()
165 {
166 $message= array();
167 return ($message);
168 }
170 function save()
171 {
172 return($this->selected);
173 }
174 }
175 // vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
176 ?>