public function getPageCollection($where, $order, $limit) { global $dRep; $selectorSql = isset($where['published']) ? '' : "AND currentRevision = 1"; $where = $this->sqlBuilder->createWhere($where, ''); $limit = $limit !== null && is_int($limit) ? 'LIMIT ' . $limit : ''; $order = $limit !== null && is_string($order) ? $order : 'pageOrder'; $sql = "SELECT * FROM ink_pages WHERE \n\t\t\t\t{$where} {$selectorSql} ORDER BY '{$order}' ASC {$limit};"; $data = $this->runManyQuery($sql); $pages = array(); foreach ($data as $index => $row) { if (!empty($row['pageId'])) { $properties = array('id' => $row['pageId'], 'revisionId' => $row['revisionId'], 'parent' => $row['parentId'], 'order' => $row['pageOrder'], 'author' => $dRep->getUser($row['authorId']), 'template' => $dRep->getTemplate($row['templateId']), 'created' => $row['dateCreated'], 'published' => $row['published'], 'publishedDate' => $row['pubDate'], 'revisions' => $this->getPagerevisions($row['pageId']), 'siteId' => $row['siteId'], 'index' => $row['indexpage']); $page = new Page(); $page->setProperties($properties); $page = $this->getPageLanguage($page); $page = $this->getSpotvalues($page); $this->pageCache[$row['pageId']] = $page; $pages[] = $page; } } return $pages; }
private function getPage() { global $varChecker; try { $id = $varChecker->getValue('id'); if ($id == 'new') { throw new DataException('newpage'); } //return session page if we have it $page = $this->dRep->getPage($id, false); if ($page->getSiteId() == $this->INK_User->getCustomer()->getSite()->getId()) { $page = $page instanceof Page ? $page : $this->dRep->getPage($varChecker->getValue('id')); } } catch (DataException $e) { //we are visiting for first time, clear session, maybe to this in Repository? unset($_SESSION['Page']); $pages = $this->dRep->getPageCollection(array('parent' => 0, 'siteId' => $this->INK_User->getCustomer()->getSite()->getId())); if (count($pages) > 0) { return $pages[0]; } $page = new Page(); $page->setProperties(array('id' => 'new')); } return $page; }