]> git.sur5r.net Git - bacula/bacula/blob - gui/baculum/protected/Portlets/Portlets.php
56723bd7e84429974bfec15a148a3ceb5ec059ff
[bacula/bacula] / gui / baculum / protected / Portlets / Portlets.php
1 <?php
2 /**
3  * Bacula® - The Network Backup Solution
4  * Baculum - Bacula web interface
5  *
6  * Copyright (C) 2013-2014 Marcin Haba
7  *
8  * The main author of Baculum is Marcin Haba.
9  * The main author of Bacula is Kern Sibbald, with contributions from many
10  * others, a complete list can be found in the file AUTHORS.
11  *
12  * You may use this file and others of this release according to the
13  * license defined in the LICENSE file, which includes the Affero General
14  * Public License, v3.0 ("AGPLv3") and some additional permissions and
15  * terms pursuant to its AGPLv3 Section 7.
16  *
17  * Bacula® is a registered trademark of Kern Sibbald.
18  */
19  
20 class Portlets extends TTemplateControl {
21
22         const SORT_ASC = 'asc';
23         const SORT_DESC = 'desc';
24
25         protected function getUrlParams($section, $id) {
26                 $limit = $_SESSION['limit' . $id];
27                 if(is_numeric($limit)) {
28                         if(is_array($section)) {
29                                 array_push($section, 'limit', $limit);
30                                 $params = $section;
31                         } else {
32                                 $params = array($section, 'limit', $limit);
33                         }
34                 } else {
35                         $params = (is_array($section)) ? $section : array($section);
36                 }
37                 return $params;
38         }
39
40         protected function getSortOrder($id) {
41                 $order = self::SORT_ASC;
42                 if(@$this->Request->Cookies['sort']->Value == $id) {
43                         $this->Response->Cookies[] = new THttpCookie('sort', null);
44                         $order = self::SORT_DESC;
45                 } else {
46                         $this->Response->Cookies[] = new THttpCookie('sort', $id);
47                         $order = self::SORT_ASC;
48                 }
49                 return $order;
50         }
51         
52         protected function sortData($data, $key, $id) {
53                 if($this->getSortOrder($id) == self::SORT_DESC) {
54                         $compare = create_function('$a,$b','if ($a["'.$key.'"] == $b["'.$key.'"]) {return 0;}else {return ($a["'.$key.'"] < $b["'.$key.'"]) ? 1 : -1;}');
55                 } else {
56                         $compare = create_function('$a,$b','if ($a["'.$key.'"] == $b["'.$key.'"]) {return 0;}else {return ($a["'.$key.'"] > $b["'.$key.'"]) ? 1 : -1;}');
57                 }
58                 usort($data,$compare);
59                 return $data;
60         }
61 }
62 ?>