@@ -49,7 +49,42 @@ public function existsOneByChannelAndSlug(ChannelInterface $channel, ?string $lo
49
49
return $ count > 0 ;
50
50
}
51
51
52
- public function existsOneEnabledByChannelAndSlug (ChannelInterface $ channel , ?string $ locale , string $ slug , DateTimeInterface $ dateTime ): bool
52
+ public function existsOneEnabledByChannelAndSlug (ChannelInterface $ channel , ?string $ locale , string $ slug ): bool
53
+ {
54
+ $ queryBuilder = $ this ->createQueryBuilderExistOne ($ channel , $ locale , $ slug );
55
+ $ queryBuilder
56
+ ->andWhere ('p.enabled = true ' )
57
+ ;
58
+
59
+ $ count = (int ) $ queryBuilder
60
+ ->getQuery ()
61
+ ->getSingleScalarResult ()
62
+ ;
63
+
64
+ return $ count > 0 ;
65
+ }
66
+
67
+ /**
68
+ * @throws NonUniqueResultException
69
+ */
70
+ public function findOneEnabledBySlugAndChannelCode (string $ slug , string $ localeCode , string $ channelCode ): ?PageInterface
71
+ {
72
+ return $ this ->createQueryBuilder ('p ' )
73
+ ->leftJoin ('p.translations ' , 'translation ' )
74
+ ->innerJoin ('p.channels ' , 'channels ' )
75
+ ->where ('translation.locale = :localeCode ' )
76
+ ->andWhere ('translation.slug = :slug ' )
77
+ ->andWhere ('channels.code = :channelCode ' )
78
+ ->andWhere ('p.enabled = true ' )
79
+ ->setParameter ('localeCode ' , $ localeCode )
80
+ ->setParameter ('slug ' , $ slug )
81
+ ->setParameter ('channelCode ' , $ channelCode )
82
+ ->getQuery ()
83
+ ->getOneOrNullResult ()
84
+ ;
85
+ }
86
+
87
+ public function existsOneEnabledAndPublishedByChannelAndSlug (ChannelInterface $ channel , ?string $ locale , string $ slug , DateTimeInterface $ dateTime ): bool
53
88
{
54
89
$ queryBuilder = $ this ->createQueryBuilderExistOne ($ channel , $ locale , $ slug );
55
90
$ queryBuilder
@@ -70,7 +105,7 @@ public function existsOneEnabledByChannelAndSlug(ChannelInterface $channel, ?str
70
105
/**
71
106
* @throws NonUniqueResultException
72
107
*/
73
- public function findOneEnabledBySlugAndChannelCode (string $ slug , string $ localeCode , string $ channelCode , DateTimeInterface $ dateTime ): ?PageInterface
108
+ public function findOneEnabledAndPublishedBySlugAndChannelCode (string $ slug , string $ localeCode , string $ channelCode , DateTimeInterface $ dateTime ): ?PageInterface
74
109
{
75
110
return $ this ->createQueryBuilder ('p ' )
76
111
->leftJoin ('p.translations ' , 'translation ' )
0 commit comments