function testValidateOperator() { $c = new Condition(); $c->add('foo', 'bar', 'SQL injection!'); $this->setExpectedException('InvalidArgumentException'); $stmnt = $c->getQueryStatement(); $stmnt->setConnection(DBManager::getConnection()); }
public function testToArray() { $con = new Condition(); $con->add('id', '=', '1'); $this->assertEquals(array(array(Condition::COLUMN => 'id', Condition::OPERATOR => '=', Condition::VALUE => '1', Condition::CONJUNCTION => 'AND', Condition::TYPE => Condition::TYPE_SCALAR)), $con->toArray()); }
public function processImportConditions($conditions, $id_lang) { foreach ($conditions as $condition) { try { if (Condition::getIdByIdPs($condition->id_ps_condition)) { continue; } //only add new condition, if already exist we continue $cond = new Condition(); $cond->hydrate((array) $condition, (int) $id_lang); $time = 86400; if ($cond->calculation_type == 'time') { $time = 86400 * (int) $cond->calculation_detail; } $cond->date_upd = date('Y-m-d H:i:s', time() - $time); $cond->date_add = date('Y-m-d H:i:s'); $condition->calculation_detail = trim($condition->calculation_detail); $cond->add(false); if ($condition->calculation_type == 'hook' && !$this->isRegisteredInHook($condition->calculation_detail) && Validate::isHookName($condition->calculation_detail)) { $this->registerHook($condition->calculation_detail); } unset($cond); } catch (Exception $e) { continue; } } }
public function find_events(&$Model, $event_type, $user, $from, $to, $options) { if (is_numeric($from)) { $from = date('Y-m-d H:i:s', $from); } if (is_numeric($to)) { $to = date('Y-m-d H:i:s', $to); } $provider_options = $this->settings[$event_type][$Model->alias]; if (empty($provider_options)) { return $this->cakeError('error', array('message' => "Can not provide {$event_type} events.")); } $scope_options = array(); $cond = new Condition(); if ($from && $to) { $cond->add(array($provider_options['timestamp'] . " BETWEEN ? AND ?" => array($from, $to))); } if (isset($options['author'])) { if (empty($provider_options['author_key'])) { return array(); } $cond->add(array($provider_options['author_key'] => $options['author']['id'])); } if (isset($provider_options['permission'])) { $project =& ClassRegistry::init('Project'); $cond->add($project->allowed_to_condition($user, $provider_options['permission'], $options)); } $scope_options['conditions'] = $cond->conditions; $scope_options['order'] = $Model->alias . ".id DESC"; if (isset($options['limit']) && $options['limit'] > 1) { // id and creation time should be in same order in most cases $scope_options['limit'] = $options['limit']; } if (isset($provider_options['include']) && !(array_key_exists('CustomField', $provider_options['include']) || in_array('CustomField', $provider_options['include']))) { $Model->_customFieldAfterFindDisable = false; } $values = $Model->find('all', array_merge_recursive($provider_options['find_options'], $scope_options)); $ret = array(); list($mname, $cname) = explode('.', $provider_options['timestamp']); $_ids = array(); foreach ($values as $value) { if (in_array($value[$mname][$Model->primaryKey], $_ids)) { continue; } $_ids[] = $value[$mname][$Model->primaryKey]; $time = strtotime($value[$mname][$cname]); $day = strtotime(date('Y-m-d 00:00:00', strtotime($value[$mname][$cname]))); if (!isset($ret[$day])) { $ret[$day] = array(); } if (!isset($ret[$day][$time])) { $ret[$day][$time] = array(); } $ret[$day][$time][] = $value; } return $ret; }