public function deliverQueryObject() { $query = parent::deliverQueryObject(); $u = new User(); if ($u->isLoggedIn()) { $uID = $u->getUserID(); } else { $uID = -1; } if ($uID != -1) { // $query->leftJoin('p', 'UserPageFavorites', 'fav', 'p.cID = fav.cID'); // $query->addSelect('fav.uID IS NOT NULL as favorite'); // $query->leftJoin('p', 'UserPageFavorites', 'fav', 'p.pID = fav.pID and fav.uID = '.(int)$u->getUserID()); $relation = Database::get()->createQueryBuilder(); $relation->select('mpRelationID')->from('MultilingualPageRelations', 'mppr')->leftJoin('mppr', 'UserPageFavorites', 'fav', 'mppr.CID = fav.cID WHERE fav.uID = :uID')->setParameter('uID', (int) $uID); // // -> // andWhere('fav.uID = :uID'); $query->leftJoin('p', 'MultilingualPageRelations', 'mmpr2', 'p.cID = mmpr2.cID'); $query->addSelect('mmpr2.mpRelationID'); // $query->andWhere("mmpr2.mpRelationID in (" . $relation . ")"); $query->addSelect(' mmpr2.mpRelationID in (' . $relation . ') as favorite'); $query->andWhere("mmpr2.mpLocale = :loc"); $query->setParameter('uID', (int) $uID); $query->setParameter('loc', \Localization::activeLocale()); if ($this->onlyFavorites) { // Does this slow the query or what $query->andWhere('mmpr2.mpRelationID in (' . $relation . ')'); } // var_dump(\Localization::activeLocale()); // echo $query->getSql(); } return $query; }
public function deliverQueryObject() { $query = parent::deliverQueryObject(); $u = new User(); if ($u->getUserID()) { $query->addSelect('fav.uID IS NOT NULL as favorite'); $query->leftJoin('p', 'UserPageFavorites', 'fav', 'p.pID = fav.pID and fav.uID = ' . (int) $u->getUserID()); } if ($this->favorites == true && $u->getUserID()) { $query->andWhere('fav.uID IS NOT NULL'); } return $query; }
public function view() { $pl = new PageList(); if ($this->ptID) { $pl->filterByPageTypeID($this->ptID); } if ($this->cParentID) { $pl->filterByParentID($this->cParentID); } $query = $pl->deliverQueryObject(); $query->select('date_format(cv.cvDatePublic, "%Y") as navYear, date_format(cv.cvDatePublic, "%m") as navMonth'); $query->groupBy('navYear, navMonth'); $query->orderBy('navYear', 'desc')->addOrderBy('navMonth', 'desc'); $r = $query->execute(); $dates = []; while ($row = $r->fetch()) { $dates[] = ['year' => $row['navYear'], 'month' => $row['navMonth']]; } $this->set('dates', $dates); }
public function deliverQueryObject() { return parent::deliverQueryObject(); }