Sulu\Bundle\WebsiteBundle\Entity\AnalyticsRepository::findByUrl PHP Method

findByUrl() public method

Returns analytics by url.
public findByUrl ( string $url, string $webspaceKey, string $environment ) : Analytics[]
$url string
$webspaceKey string
$environment string
return Analytics[]
    public function findByUrl($url, $webspaceKey, $environment)
    {
        $queryBuilder = $this->createQueryBuilder('a')->addSelect('domains')->leftJoin('a.domains', 'domains')->where('a.allDomains = TRUE OR (domains.url = :url AND domains.environment = :environment)')->andWhere('a.webspaceKey = :webspaceKey')->orderBy('a.id', 'ASC');
        $query = $queryBuilder->getQuery();
        $query->setParameter('url', $url);
        $query->setParameter('webspaceKey', $webspaceKey);
        $query->setParameter('environment', $environment);
        return $query->getResult();
    }

Usage Example

コード例 #1
0
ファイル: AppendAnalyticsListener.php プロジェクト: sulu/sulu
 /**
  * Appends analytics scripts into body.
  *
  * @param FilterResponseEvent $event
  */
 public function onResponse(FilterResponseEvent $event)
 {
     if (0 !== strpos($event->getResponse()->headers->get('Content-Type'), 'text/html') || $this->requestAnalyzer->getPortalInformation() === null) {
         return;
     }
     $portalUrl = $this->requestAnalyzer->getAttribute('urlExpression');
     $analytics = $this->analyticsRepository->findByUrl($portalUrl, $this->requestAnalyzer->getPortalInformation()->getWebspaceKey(), $this->environment);
     $content = $this->engine->render('SuluWebsiteBundle:Analytics:website.html.twig', ['analytics' => $analytics]);
     $response = $event->getResponse();
     $responseContent = $response->getContent();
     $response->setContent(str_replace('</body>', $content . '</body>', $responseContent));
 }