/**
  * {@inheritdoc}
  */
 public function loadSnapshots(SiteInterface $site)
 {
     $now = new \Datetime();
     $query = $this->getEntityManager()->createQuery(sprintf('
           SELECT s,p
           FROM %s s
           INNER JOIN s.page p
           WHERE
             s.enabled = 1
               AND
             s.site = %d
               AND
             s.publicationDateStart <= \'%s\'
               AND
             ( s.publicationDateEnd IS NULL OR s.publicationDateEnd >= \'%s\' )
           ORDER BY s.position ASC
           ', $this->class, $site->getId(), $now->format('Y-m-d H:i:s'), $now->format('Y-m-d H:i:s')));
     $query->setHint(\Gedmo\Translatable\TranslatableListener::HINT_INNER_JOIN, true);
     $query->setHint(\Doctrine\ORM\Query::HINT_CUSTOM_OUTPUT_WALKER, 'Gedmo\\Translatable\\Query\\TreeWalker\\TranslationWalker');
     $query->setHint(\Gedmo\Translatable\TranslatableListener::HINT_TRANSLATABLE_LOCALE, $site->getLocale());
     $snapshots = array();
     foreach ($query->execute() as $snap) {
         $snapshots[$snap->getPage()->getId()] = $snap;
     }
     $this->snapshots = $snapshots;
 }
 /**
  * {@inheritdoc}
  */
 public function loadPages(SiteInterface $site)
 {
     $query = $this->getEntityManager()->createQuery(sprintf('SELECT p FROM %s p INDEX BY p.id WHERE p.site = %d ORDER BY p.position ASC', $this->class, $site->getId()));
     $query->setHint(\Doctrine\ORM\Query::HINT_CUSTOM_OUTPUT_WALKER, 'Gedmo\\Translatable\\Query\\TreeWalker\\TranslationWalker');
     $query->setHint(\Gedmo\Translatable\TranslatableListener::HINT_TRANSLATABLE_LOCALE, $site->getLocale());
     $pages = $query->execute();
     foreach ($pages as $page) {
         $parent = $page->getParent();
         $page->disableChildrenLazyLoading();
         if (!$parent) {
             continue;
         }
         $pages[$parent->getId()]->disableChildrenLazyLoading();
         //$pages[$parent->getId()]->addChildren($page);
     }
     return $pages;
 }