Add PlFilter, PFC, PFO
[platal.git] / classes / plfilterorder.php
1 <?php
2 /***************************************************************************
3 * Copyright (C) 2003-2010 Polytechnique.org *
4 * http://opensource.polytechnique.org/ *
5 * *
6 * This program is free software; you can redistribute it and/or modify *
7 * it under the terms of the GNU General Public License as published by *
8 * the Free Software Foundation; either version 2 of the License, or *
9 * (at your option) any later version. *
10 * *
11 * This program is distributed in the hope that it will be useful, *
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
14 * GNU General Public License for more details. *
15 * *
16 * You should have received a copy of the GNU General Public License *
17 * along with this program; if not, write to the Free Software *
18 * Foundation, Inc., *
19 * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
20 ***************************************************************************/
21
22 abstract class PlFilterOrder
23 {
24 protected $desc = false;
25 public function __construct($desc = false)
26 {
27 $this->desc = $desc;
28 }
29
30 public function buildSort(PlFilter &$pf)
31 {
32 $sel = $this->getSortTokens($pf);
33 if (!is_array($sel)) {
34 $sel = array($sel);
35 }
36 if ($this->desc) {
37 foreach ($sel as $k => $s) {
38 $sel[$k] = $s . ' DESC';
39 }
40 }
41 return $sel;
42 }
43
44 abstract protected function getSortTokens(PlFilter &$pf);
45 }
46
47 ?>