/** * @param type $contentHandlerId * @param type $state * @param \NyroDev\NyroCmsBundle\Repository\Orm\Content $specificContent * @param array $where * @param array $order * * @return \Doctrine\ORM\QueryBuilder */ public function getQbForHandler($contentHandlerId, $state = ContentSpec::STATE_ACTIVE, Content $specificContent = null, array $where = array(), array $order = array()) { $qb = $this->createQueryBuilder('cs')->andWhere('cs.contentHandler = :chid')->setParameter('chid', $contentHandlerId); if ($specificContent && $specificContent->getId()) { $qb->andWhere('(:cid MEMBER OF cs.contents OR SIZE(cs.contents) = 0)')->setParameter('cid', $specificContent->getId()); } $qb->andWhere('(cs.validStart IS NULL OR cs.validStart <= :now)')->andWhere('(cs.validEnd IS NULL OR cs.validEnd >= :now)')->setParameter('now', new \DateTime()); if ($state) { $qb->andWhere('cs.state = :state')->setParameter('state', $state); } if (count($where)) { foreach ($where as $k => $v) { $operator = '='; if ($k[0] == '!') { $operator = '<>'; $k = substr($k, 1); } $qb->andWhere('cs.' . $k . ' ' . $operator . ' :' . $k . '_wh')->setParameter($k . '_wh', $v); } } if (count($order)) { foreach ($order as $k => $v) { $qb->addOrderBy('cs.' . $k, $v); } } return $qb; }
public function canAdminContent(Content $content) { if ($this->isSuperAdmin()) { return true; } $contentIds = $this->getAdministrableContentIds(); return isset($contentIds[$content->getId()]) ? $contentIds[$content->getId()] : false; }
protected function getQueryMenuOption($menuOption, \NyroDev\NyroCmsBundle\Model\Content $root = null) { $qb = $this->createQueryBuilder('c')->andWhere('c.menuOption LIKE :menuOption')->setParameter('menuOption', $menuOption); if ($root) { $qb->andWhere('c.root = :root')->setParameter('root', $root->getId()); } $q = $qb->getQuery(); $q->setHint(\Doctrine\ORM\Query::HINT_CUSTOM_OUTPUT_WALKER, 'Gedmo\\Translatable\\Query\\TreeWalker\\TranslationWalker'); return $q; }