/** * Carrega todas as págians a partir de uma categoria * @param int|Categoria $categoria * @return array */ public function getPaginasLista($limit = "") { if (empty($this->pags)) { $cat = new PaginaCategoria(); $cat->getDao()->setAtributes("pagina"); $pags = array(); $p = new Pagina(); $p->getDao()->setAtributes("id", "cleanTitulo", "titulo", "subTitulo"); $whereStr = "categoria=" . $this->getId(); foreach ($this->getCatFilhas() as $catItem) { $whereStr .= " OR categoria=" . $catItem; } foreach ($cat->getDao()->loadArrayList($whereStr, '', $limit) as $c) { if ($c->getPagina() instanceof Pagina) { if ($c->getPagina()->getStatus() == Pagina::STATUS_PUBLICADO) { $pags[] = $c->getPagina(); } } } if (!empty($order)) { DAO::orderBy($pags, $orderPropertyName, $desc); } $p->getDao()->clearAtributes(); $this->pags = $pags; } return $this->pags; }
/** * Obtem a categoria de mais baixo ID vinculado à peça * @return Categoria */ public function getCategoria() { if (empty($this->getObject()->_categoria)) { $pc = new PaginaCategoria(); $pc->getDao()->setAtributes("id", "categoria"); $pc->getDao()->load("pagina=" . $this->getObject()->getId()); $this->getObject()->_categoria = $pc->getCategoria(); if ($this->getObject()->_categoria instanceof Categoria) { CRUD::$useObjCache = false; $cat = new Categoria($this->getObject()->_categoria->getId()); if ($cat->getCategoriaPai() instanceof Categoria) { $this->getObject()->_categoria = $cat->getCategoriaPai(); } CRUD::$useObjCache = true; } } return $this->getObject()->_categoria; }