コード例 #1
0
 /**
  * Search nodes sources by using Solr search engine
  * and a specific translation.
  *
  * @param string      $query       Solr query string (for example: `text:Lorem Ipsum`)
  * @param Translation $translation Current translation
  *
  * @return ArrayCollection | null
  */
 public function findBySearchQueryAndTranslation($query, Translation $translation)
 {
     // Update Solr Serach engine if setup
     if (true === Kernel::getService('solr.ready')) {
         $service = Kernel::getService('solr');
         $queryObj = $service->createSelect();
         $queryObj->setQuery('collection_txt:' . $query);
         // create a filterquery
         $queryObj->createFilterQuery('translation')->setQuery('locale_s:' . $translation->getLocale());
         $queryObj->addSort('score', $queryObj::SORT_DESC);
         // this executes the query and returns the result
         $resultset = $service->select($queryObj);
         if (0 === $resultset->getNumFound()) {
             return null;
         } else {
             $sources = new ArrayCollection();
             foreach ($resultset as $document) {
                 $sources->add($this->_em->find('RZ\\Roadiz\\Core\\Entities\\NodesSources', $document['node_source_id_i']));
             }
             return $sources;
         }
     }
     return null;
 }
コード例 #2
0
ファイル: Fixtures.php プロジェクト: QuangDang212/roadiz
 /**
  * @return void
  */
 protected function installDefaultTranslation()
 {
     $existing = $this->entityManager->getRepository('RZ\\Roadiz\\Core\\Entities\\Translation')->findOneBy(['defaultTranslation' => true, 'available' => true]);
     if (null === $existing) {
         $translation = new Translation();
         /*
          * Create a translation according to
          * current language
          */
         if (null !== $this->request) {
             $translation->setLocale($this->request->getLocale());
         } else {
             $translation->setLocale('en');
         }
         $translation->setDefaultTranslation(true);
         $translation->setName(Translation::$availableLocales[$translation->getLocale()]);
         $translation->setAvailable(true);
         $this->entityManager->persist($translation);
     }
 }