/** * Fetch next row into variable * @return bool if next row exists */ public function nextRow() { while (true) { if (!$this->onFirstRow) { $this->row = $this->fetchRow(); } $this->onFirstRow = false; if (!$this->row) { $this->freeResult(); return false; } // Format the date if (!isset($this->row['submit_time']) && isset($this->row['Submitted']) && is_numeric($this->row['Submitted'])) { $submitTime = $this->row['Submitted']; $this->row['submit_time'] = $submitTime; $this->row['Submitted'] = $this->plugin->formatDate($submitTime); } // Determine if row is filtered if ($this->rowFilter) { $match = $this->rowFilter->evaluate($this->row); if (!$match) { continue; } } $this->idx += 1; if ($this->limitStart && $this->idx < $this->limitStart) { continue; } if ($this->limitEnd && $this->idx >= $this->limitEnd) { while ($this->row = $this->fetchRow()) { } $this->freeResult(); $this->row = null; return false; } // Keep the unformatted submitTime if needed if (isset($submitTime) && $this->submitTimeKeyName) { $this->row[$this->submitTimeKeyName] = $submitTime; } break; } if (!$this->row) { $this->freeResult(); } return $this->row ? true : false; }
public function test_filterFalseEqualFalse2() { $p = new CFDBFilterParser(); $p->parse('false=filterFalse()'); print_r($p->tree); $data = array('field' => 'hello'); $this->assertTrue($p->evaluate($data)); }