/** * get page data * * @param Xcck_PageObject &$page * @param string $dirname * @param int $id page id * * @return void */ public static function getPageList(&$pageObjs, $dirname, $cri = null) { if (!$cri instanceof CriteriaCompo) { $cri = Xcck_Utils::getListCriteria($dirname); } $handler = Legacy_Utils::getModuleHandler('page', dirname); $pageObjs = $handler->getObjects($cri); }
public static function searchKeyword($dirname, $keywords, $andor = 'AND', $limit = null, $offset = null, $uid = null) { $cri = Xcck_Utils::getListCriteria($dirname); $cri = self::makeKeywordCriteria($cri, $dirname, $keywords, $andor); if ((int) $uid > 0) { $cri->add(new Criteria('uid', $uid)); } $handler = Legacy_Utils::getModuleHandler('page', $dirname); $pageObjs = $handler->getObjects($cri, $limit, $offset); foreach ($pageObjs as $page) { $ret[] = array('link' => "index.php?page_id=" . $page->getShow('page_id'), 'title' => $page->getShow('title'), 'time' => $page->get('posttime'), 'uid' => $uid, "context" => ''); } return $ret; }
/** * 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); }
/** * _setupObject * * @param void * * @return bool * * @private **/ function _setupObject() { $categoryIds = null; $objects = array(); $catIdArr = array(); //get block options $limit = $this->getBlockOption('limit'); //get module asset for handlers $asset = null; XCube_DelegateUtils::call('Module.xcck.Global.Event.GetAssetManager', new XCube_Ref($asset), $this->_mBlock->get('dirname')); $this->_mHandler =& $asset->getObject('handler', 'page'); $criteria = Xcck_Utils::getListCriteria($this->_mBlock->get('dirname'), null, false, $this->getBlockOption('order')); XCube_DelegateUtils::call('Module.' . $this->_mBlock->get('dirname') . '.SetupBlockCriteria', $criteria, $this->_mBlock->get('bid')); if ($this->getBlockOption('catIds')) { $categoryIds = explode(',', $this->getBlockOption('catIds')); if (count($categoryIds) > 0) { $criteria->add(new Criteria('category_id', $categoryIds, 'IN')); } } $criteria->setLimit($limit); $this->_mObject = $this->_mHandler->getObjects($criteria); return true; }
/** * fetch * * @param string $dirname * * @return void **/ public function fetch($dirname) { parent::fetch(); $request = XCube_Root::getSingleton()->mContext->mRequest; if (($catId = $request->getRequest('category_id')) !== null) { $this->mNavi->addExtra('category_id', (int) $catId); } //show all term or show only from start to end date $show = $request->getRequest('show') === 'all' ? false : true; $status = $request->getRequest('status'); $status = $show ? 10 : (isset($status) ? (int) $status : Lenum_Status::PUBLISHED); //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, $status, $show); if (($value = $request->getRequest('page_id')) !== null) { $this->mNavi->addExtra('page_id', $value); $this->_mCriteria->add(new Criteria('page_id', $value)); } if (($value = $request->getRequest('title')) !== null) { $this->_setTextRequest('title', $value); } if (($value = $request->getRequest('p_id')) !== null) { $this->mNavi->addExtra('p_id', $value); $this->_mCriteria->add(new Criteria('p_id', $value)); } if (($value = $request->getRequest('descendant')) !== null) { $this->mNavi->addExtra('descendant', $value); $this->_mCriteria->add(new Criteria('descendant', $value)); } if (($value = $request->getRequest('uid')) !== null) { $this->mNavi->addExtra('uid', $value); $this->_mCriteria->add(new Criteria('uid', $value)); } if (($value = $request->getRequest('maintable_id')) !== null) { $this->mNavi->addExtra('maintable_id', $value); $this->_mCriteria->add(new Criteria('maintable_id', $value)); } if (($value = $request->getRequest('status')) !== null) { $this->mNavi->addExtra('status', $value); //$this->_mCriteria->add(new Criteria('status', $value)); } if (($value = $request->getRequest('posttime')) !== null) { $this->mNavi->addExtra('posttime', $value); $this->_mCriteria->add(new Criteria('posttime', $value)); } if (($value = $request->getRequest('updatetime')) !== null) { $this->mNavi->addExtra('updatetime', $value); $this->_mCriteria->add(new Criteria('updatetime', $value)); } //Search by keyword: search all string and text field if (($value = $request->getRequest('keyword')) !== null) { $this->mNavi->addExtra('keywords', $value); Xcck_SearchUtils::makeSearchCriteria($this->_mCriteria, $dirname, $value); } foreach ($this->mDefinitions as $definition) { $value = $request->getRequest($definition->get('field_name')); if (isset($value) && $value !== "") { if ($definition->get('field_type') == Xcck_FieldType::STRING || $definition->get('field_type') == Xcck_FieldType::TEXT) { $this->_setTextRequest($definition->get('field_name'), $value); } else { $this->mNavi->addExtra($definition->get('field_name'), $value); $this->_mCriteria->add(new Criteria($definition->get('field_name'), $value)); } } } if (($value = $request->getRequest('show')) !== null) { $this->mNavi->addExtra('show', $value); } if (($value = $request->getRequest('child')) !== null) { $this->mNavi->addExtra('child', $value); } if (($tags = $request->getRequest('tag')) !== null) { $this->_setTagRequest($tags, $dirname); } //$this->_mCriteria->addSort($this->getSort(), $this->getOrder()); }
public function getCategorizedTree($categories = null) { $tree = array(); if (!isset($categories)) { $categories[0] = array(); } $criteria = Xcck_Utils::getListCriteria($this->getDirname()); $criteria->add(new Criteria('p_id', 0)); foreach (array_keys($categories) as $key) { $tree[$key] = array(); $cri = clone $criteria; $cri->add(new Criteria('category_id', $categories[$key]->getShow('cat_id'))); $topPageIds = $this->getIdList($cri); foreach ($topPageIds as $topPageId) { $tree[$key] = array_merge($tree[$key], $this->getTree($topPageId)); } } return $tree; }