From: Raphaël Barrois Date: Thu, 4 Feb 2010 22:45:27 +0000 (+0100) Subject: Add folding, PFO_Random X-Git-Tag: core/1.1.0~89 X-Git-Url: http://git.polytechnique.org/?a=commitdiff_plain;h=0d78a96bb5914bcbe0dd08a6a237134daebbaffe;p=platal.git Add folding, PFO_Random Signed-off-by: Raphaël Barrois --- 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 } } +// }}} ?>