public function hasChildren() { $mapper = new SxCms_Page_TreeMapper(); $mapper->loadSource(APPLICATION_PATH . '/var/navigation.xml'); $order = $mapper->getChildOrder($this->getId()); if (count($order) > 0) { return true; } return false; }
public function getPagesByParentId($parentId, $skip = null, $language = 'nl', $sort = true, $activeOnly = false) { $cacheId = 'getPagesByParentId_' . (int) $parentId . (int) $skip . $language . (int) $sort . (int) $activeOnly; $cache = Zend_Registry::get('cache'); if (true == ($result = $cache->load($cacheId))) { return $result; } $db = Zend_Registry::get('db'); $select = $db->select()->from(array('p' => 'Page'), array('*'))->join(array('t' => 'PageTsl'), 'p.page_id = t.page_id')->where('p.parent_id = ?', $parentId)->where('p.page_id != 0')->order('p.parent_id ASC')->where('p.type != ' . SxCms_Page::ARTICLE); if ($skip && $skip->getId()) { $select->where('p.page_id != ?', $skip->getId()); } if ($language) { $select->where('t.language = ?', $language); } if ($activeOnly) { $select->where('date_published <= NOW() OR date_published IS NULL'); $select->where('date_expired >= NOW() OR date_expired IS NULL'); $select->where('t.invisible = 0'); } $stmt = $db->query($select); $result = $stmt->fetchAll(); $pages = $this->_getCollection($result); if ($sort) { $mapper = new SxCms_Page_TreeMapper(); $mapper->loadSource(APPLICATION_PATH . '/var/navigation.xml'); $order = $mapper->getChildOrder($parentId); $sorted = array(); foreach ($order as $id) { if (isset($pages[$id])) { $sorted[$id] = $pages[$id]; } } $pages = $sorted; } $cache->save($pages, $cacheId, array('SxCms_Page')); return $pages; }