Example #1
0
 /**
  * fetch
  * 
  * @param   string    $dirname
  * 
  * @return  void
  **/
 public function fetch($dirname)
 {
     $this->mNavi->fetch();
     $this->fetchSort();
     $this->mHandler = Legacy_Utils::getModuleHandler('definition', $dirname);
     $request = XCube_Root::getSingleton()->mContext->mRequest;
     if (($catId = $request->getRequest('category_id')) !== null) {
         $this->mNavi->addExtra('category_id', (int) $catId);
     }
     //get child category's data ?
     $child = false;
     if ($request->getRequest('child') === "all") {
         $child = true;
     } elseif ($request->getRequest('child') === "single") {
         $child = false;
     }
     $this->_mCriteria = Xcck_Utils::getListCriteria($dirname, (int) $catId, $child, $this->mSort, Lenum_Status::PUBLISHED);
     //Search previously defined fields
     $definedFields = array('name' => array('page_id', 'title', 'uid', 'maintable_id', 'posttime', 'updatetime'), 'type' => array(Xcck_FieldType::INT, Xcck_FieldType::STRING, Xcck_FieldType::INT, Xcck_FieldType::INT, Xcck_FieldType::DATE, Xcck_FieldType::DATE));
     foreach (array_keys($definedFields['name']) as $key) {
         if ($value = $request->getRequest($definedFields['name'][$key]) !== null) {
             $this->_setDefinedFieldRequest($definedFields['name'][$key], $definedFields['type'][$key], $value);
         }
     }
     //Search User defined fields
     foreach ($this->mDefinitions as $definition) {
         if ($value = $request->getRequest($definition->get('field_name')) !== null) {
             $value = $request->getRequest($definition->get('field_name'));
             $this->_setRequest($definition, $value);
         }
     }
     //Search by keyword: search all string and text field
     if (($value = $request->getRequest('keyword')) !== null) {
         $this->mNavi->addExtra('keywords', $value);
         Xcck_SearchUtils::makeKeywordCriteria($this->_mCriteria, $dirname, $value);
     }
     if (($value = $request->getRequest('child')) !== null) {
         $this->mNavi->addExtra('child', $value);
     }
     //filter by tag
     if (($tags = $request->getRequest('tag')) !== null) {
         $this->_setTagRequest($tags, $dirname);
     }
     XCube_DelegateUtils::call('Module.' . $dirname . '.FetchSearchFilter', $this);
 }