Code

ae31f4498d1a996fa9f5eb774bae72b4421f3c76
[gosa.git] / include / class_divlist.inc
1 <?php
3 class divlist {
5         private $a_entries;
6         private $a_header;
7         private $b_displayPageNums;     
8         private $summary;
9         private $cols;
11         // Members for page managment
12         private $i_currentPage;
13         private $i_entriesPerPage;
14         
15         
16         public function __construct(){
17                 $this->i_currentPage    =0;
18                 $this->i_entriesPerPage =10;
19                 $this->s_summary                ="";
20                 $this->a_entries                =array();
21                 $this->a_header                 =array();
22                 $this->b_displayPageNums                =true;
23                 $this->cols = 0;
24         }
25         
27         public function __destruct(){
28         
29         }
31         public function AddEntry($a_entriedata) {
32                 $this->a_entries[] = $a_entriedata;
33         }
35         public function DisablePageNums() {
36                 $this->b_displayPageNums =false;
37         }
39         public function SetHeader($a_headerdata) {
40                 $this->a_header[] = $a_headerdata ;
41         }
43         public function SetEntriesPerPage($i_num){
44                 $this->i_entriesPerPage=$i_num;
45         }
46         
47         public function DrawList(){
48                 
49                 $s_return = "";
50                 
51                 $s_return.= "<table summary='".$this->s_summary."' width='600' cellspacing='0'>";
52                 
53                 $s_return.= $this->_generateHeader();
54                 
55                 $s_return.= $this->_generatePage();
56                 //$s_return.= nl2br(htmlentities($this->_generatePage()));
57                 
58                 $s_return.= "</table>";
59                 
60                 return ($s_return);
61         }
62         
63         private function _numpages(){
64                 $cnt = count($this->a_entries);
65                 
66                 $tmp    = $cnt % $this->i_entriesPerPage;
67                 $pages  = (int) ($cnt / $this->i_entriesPerPage);
68                 if($tmp) $pages ++;
69                 
70                 return $pages;
71         }
72         
73         private function _numentries(){
74                 $cnt = count($this->a_entries);
75                 return $cnt;
76         }
77         
78         private function _generateHeader(){
79                 
80                 $s_return = "";
81                 
82                 $s_value        = "";
83                 $s_key          = "";
84                                 
85                 $s_return .= "\n<tr>";
86                 foreach($this->a_header[0] as $s_key => $s_value ){
87                         if(!isset($s_value['attach'])){
88                                 $s_value['attach'] = "";
89                         }
90                         
91                         $s_return .= "\n<td class='listheader' ".$s_value['attach'].">".$s_value['string']."</td>";
92                 }
93                 
94                 $s_return .= "\n</tr>";
95                 return $s_return;
96         }
97         
98         public function  SetSummary($msg){
99                 $this->s_summary = $msg;
100         }
102         private function  _generatePage(){
103                 
104                 $s_value        = "";
105                 $s_key          = "";
106                 $s_return       = "";
107                 
108                 $i_alternate=0;
109         
110                 if(isset($_GET['start'])){
111                         $start = $_GET['start'];
112                 }else{
113                         $start=0;
114                 }
115                 $stop  = $start + $this->i_entriesPerPage;
116                 
118                 $appendempty = ($this->_numentries() -$start);
122                 for($i = $start ; $i <= $stop;$i++){
123                         
124                         if(isset($this->a_entries[$i])){
125                                                         
126                                 $s_value = $this->a_entries[$i];
127                                 
128                                 
129                                 if($i_alternate) $i_alternate=0; else $i_alternate=1;
130                                 
131                                 $s_return .= "\n<tr>";
132                                 
133                                 $cnt = 0;                                       
134                                         
135                                 foreach($s_value as $s_key2 => $s_value2 ){                             
137                                         $this->cols = count($s_value) ;                                         
138                                         $cnt++;                                 
140                                         if(!isset($s_value2['class'])){
141                                                 $class = "list".$i_alternate; 
142                                         }else{
143                                                 $class = $s_value2['class'];
144                                         }
146                                         if(!isset($s_value2['attach'])){
147                                                 $style = "";
148                                         }else{
149                                                 $style = " ".$s_value2['attach']." "    ;
150                                         }
152                                         $s_return .= "\n<td ".$style." class='".$class."'>";
153                                         $s_return .= $s_value2['string'];
154                                         $s_return .= "\n</td>";
155                                 }
156                                 if($cnt == 0 ){
157                                         $s_return.="<td>&nbsp;</td>";
158                                 }
159                                 $s_return .= "\n</tr>";
160                         }       
161                 }
163                 if(!(($stop)<$this->_numentries())){
164                         $nums = $stop - $this->_numentries();// - $stop;
165                         for($i = 0 ; $i < $nums ; $i ++ ){
166                                 $s_return.="<tr>";
167                                 $cnt=0;
168                                 for($a = 0 ; $a < (count($this->a_header[0])) ; $a ++ ) {
169                                         if($a ==(count($this->a_header[0])-1)){
170                                                 $s_return.="<td class='list1' style='border:0px;' height='26'>&nbsp; </td>";
171                                         }else{
172                                                 $s_return.="<td class='list1' height='26'>&nbsp; </td>";
173                                         }
174                                 }
175                                 $s_return.="</tr>";
176                         }       
177                 }
179                 if($this->b_displayPageNums){
180                         $s_return .= "<tr><td colspan='".$this->cols."' align='center'>".range_selector($this->_numentries(),$start,$this->i_entriesPerPage)."</td></tr>";
181                 }
183                 return $s_return;
184         }
185         
186         
188 ?>