/
LangFavoritePageList.php
68 lines (49 loc) · 2.08 KB
/
LangFavoritePageList.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<?php
namespace Application\Src;
use Application\Src\FavoritedPageList;
use Concrete\Core\Multilingual\Page\PageList as MultilingualPageList;
use Concrete\Core\Page\PageList;
use User;
use Database;
class LangFavoritePageList extends PageList{
public function getResult($queryRow){
$c = parent::getResult($queryRow);
$c->favorite = $queryRow['favorite'];
return $c;
}
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;
}
}
?>