Make PlSet PHP-compatible...
[platal.git] / classes / plfilterorder.php
CommitLineData
285fb262
RB
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
22abstract class PlFilterOrder
23{
24 protected $desc = false;
25 public function __construct($desc = false)
26 {
27 $this->desc = $desc;
28 }
29
bd9b36fe
RB
30 public function toggleDesc()
31 {
32 $this->desc = !$desc;
33 }
34
35 public function setDescending($desc = true)
36 {
37 $this->desc = $desc;
38 }
39
285fb262
RB
40 public function buildSort(PlFilter &$pf)
41 {
42 $sel = $this->getSortTokens($pf);
43 if (!is_array($sel)) {
44 $sel = array($sel);
45 }
46 if ($this->desc) {
47 foreach ($sel as $k => $s) {
48 $sel[$k] = $s . ' DESC';
49 }
50 }
51 return $sel;
52 }
53
54 abstract protected function getSortTokens(PlFilter &$pf);
55}
56
57?>