From 0d78a96bb5914bcbe0dd08a6a237134daebbaffe Mon Sep 17 00:00:00 2001 From: =?utf8?q?Rapha=C3=ABl=20Barrois?= Date: Thu, 4 Feb 2010 23:45:27 +0100 Subject: [PATCH] Add folding, PFO_Random MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Raphaël Barrois --- classes/plfilter.php | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/classes/plfilter.php b/classes/plfilter.php index 15bcaf5..8c65ae7 100644 --- a/classes/plfilter.php +++ b/classes/plfilter.php @@ -19,6 +19,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ***************************************************************************/ +// {{{ class PlLimit class PlLimit { private $count = null; @@ -42,7 +43,9 @@ class PlLimit return ''; } } +// }}} +// {{{ class PlSqlJoin class PlSqlJoin { private $mode; @@ -112,7 +115,9 @@ class PlSqlJoin return $str; } } +// }}} +// {{{ class PlFilterOrder abstract class PlFilterOrder { protected $desc = false; @@ -145,8 +150,31 @@ abstract class PlFilterOrder return $sel; } - abstract protected function getSortTokens(&$pf); + abstract protected function getSortTokens(PlFilter &$pf); } +// }}} + +// {{{ class PFO_Random +class PFO_Random extends PlFilterOrder +{ + private $seed = null; + + public function __construct($seed = null, $desc = false) + { + parent::__construct($desc); + $this->seed = $seed; + } + + protected function getSortTokens(PlFilter &$pf) + { + if ($this->seed == null) { + return 'RAND()'; + } else { + return XDB::format('RAND({?})', $this->seed); + } + } +} +// }}} // {{{ interface PlFilterCondition interface PlFilterCondition @@ -299,7 +327,7 @@ class PFC_Or extends PFC_NChildren } // }}} - +// {{{ class PlFilter abstract class PlFilter { /** Filters objects matching the PlFilter @@ -345,5 +373,6 @@ abstract class PlFilter } } +// }}} ?> -- 2.1.4