示例#1
0
 /**
  * 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);
 }
示例#2
0
 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;
 }
示例#3
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);
 }
示例#4
0
 /**
  * _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;
 }
示例#5
0
 /**
  * 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());
 }
示例#6
0
 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;
 }