1
irmtfan
Xoops26 bug: Class Criteria render where() when nothing is added
  • 2013/4/17 8:41

  • irmtfan

  • Module Developer

  • Posts: 3419

  • Since: 2003/12/7


It is not in XOOPS255 and XOOPS256.

In XOOPS26/class/criteria.php line 219:
le="color: #000000"><?php public function render() { $ret = ''; foreach ($this->criteriaElements as $i => $element) { /* @var $element CriteriaElement */ if ($i == 0) { $ret = $element->render(); } else { if (!$render = $element->render()) { continue; } $ret .= ' ' . $this->conditions[$i] . ' ' . $render; } $ret = "({$ret})"; } return $ret; }


It will return () when $ret is empty.
so finally we have a query error:
le="color: #000000"><?php SELECT * FROM `TABLE` WHERE () ORDER BY id DESC LIMIT 0, 10


solution:
le="color: #000000"><?php public function render() { $ret = ''; foreach ($this->criteriaElements as $i => $element) { /* @var $element CriteriaElement */ if ($i == 0) { $ret = $element->render(); } else { if (!$render = $element->render()) { continue; } $ret .= ' ' . $this->conditions[$i] . ' ' . $render; } $ret = empty($ret) ? '' : "({$ret})"; // irmtfan change this } return $ret; }


PS: please somebody add this to sf.net bug tracker

2
Cesagonchu
Re: Xoops26 bug: Class Criteria render where() when nothing is added