/** * _setTextRequest * * @param string $key * @param string $request * * @return void **/ protected function _setTextRequest($key, $request) { $this->mNavi->addExtra($key, $request); //multiple keywords is requested by dividing space $reqArr = Xcck_SearchUtils::splitKeywords($request); if (count($reqArr) === 0) { return; } $cri = new CriteriaCompo(); foreach ($reqArr as $value) { $cri->add(new Criteria($key, Xcck_SearchUtils::makeKeyword($value), 'LIKE')); } $this->_mCriteria->add($cri); }
/** * _setRequest * * @param Xcck_DefinitionObject $definition * @param mixed[] $request * * @return void **/ protected function _setRequest(Xcck_DefinitionObject $definition, $request) { if (!isset($request)) { return; } foreach (array_keys($request) as $key) { if (count($request[$key]) !== 2) { continue; } $value = $request[$key][0]; $cond = (int) $request[$key][1]; //Xcck_Cond search condition //set criteria switch ($definition->get('field_type')) { case Xcck_FieldType::STRING: case Xcck_FieldType::TEXT: case Xcck_FieldType::URI: if ($cond === Xcck_Cond::LIKE || $cond === Xcck_Cond::NOTLIKE) { $reqArr = Xcck_SearchUtils::splitKeywords($value); if (count($reqArr) === 0) { continue 2; } $cri = new CriteriaCompo(); foreach ($reqArr as $value) { $cri->add(new Criteria($definition->get('field_name'), Xcck_SearchUtils::makeKeyword($value), Xcck_Cond::getString($cond))); } $this->_mCriteria->add($cri); } else { $this->_mCriteria->add(new Criteria($definition->get('field_name'), $value, Xcck_Cond::getString($cond))); } break; case Xcck_FieldType::DATE: if ($cond === Xcck_Cond::LIKE) { $this->_mCriteria->add(new Criteria($definition->get('field_name'), $this->_makeUnixtime($value, 'start'), Xcck_Cond::getString(Xcck_Cond::GE))); $this->_mCriteria->add(new Criteria($definition->get('field_name'), $this->_makeUnixtime($value, 'end'), Xcck_Cond::getString(Xcck_Cond::LT))); } elseif ($cond === Xcck_Cond::LE) { $this->_mCriteria->add(new Criteria($definition->get('field_name'), $this->_makeUnixtime($value, 'end'), Xcck_Cond::getString(Xcck_Cond::LT))); } else { $this->_mCriteria->add(new Criteria($definition->get('field_name'), $this->_makeUnixtime($value, 'start'), Xcck_Cond::getString($cond))); } break; default: $this->_mCriteria->add(new Criteria($definition->get('field_name'), $value, Xcck_Cond::getString($cond))); break; } //set page navi $this->mNavi->addExtra($definition->get('field_name'), $request); // $this->mNavi->addExtra(sprintf('%s[%d][%d]', $definition->get('field_name'), $key, 1), $request[$key][1]); } }