/** @override */
 public static function init($em, $reader)
 {
     // http://www.w3schools.com/tags/ref_language_codes.asp
     static::$listener = $listener = new \Gedmo\Translatable\TranslatableListener();
     // Current translation locale should be set from session or hook later into the listener
     // Most importantly, before the entity manager is flushed
     $lang = \Config::get('language', 'en');
     $default = \Config::get('language_fallback', $lang);
     if (is_array($default)) {
         $default = $default[0];
     }
     $listener->setTranslatableLocale($lang);
     $listener->setDefaultLocale($default);
     $listener->setAnnotationReader($reader);
     $listener->setTranslationFallback(true);
     $em->getEventManager()->addEventSubscriber($listener);
 }
Beispiel #2
0
 public function onBootstrap(Event $e)
 {
     $application = $e->getApplication();
     $eventManager = $application->getEventManager();
     $eventManager->attach(MvcEvent::EVENT_DISPATCH, array($this, 'setApplicationSection'));
     $eventManager->attach(MvcEvent::EVENT_DISPATCH, array($this, 'setLayout'), 31);
     $eventManager->attach(MvcEvent::EVENT_DISPATCH_ERROR, array($this, 'setLayout'), 31);
     $app = $e->getParam('application');
     $sm = $app->getServiceManager();
     $evm = $sm->get('doctrine.eventmanager.orm_default');
     $config = $sm->get('Config');
     $tablePrefix = isset($config['doctrine']['connection']['orm_default']['params']['table_prefix']) ? $config['doctrine']['connection']['orm_default']['params']['table_prefix'] : FALSE;
     if ($tablePrefix) {
         $tablePrefix = new \Dxapp\Doctrine\Extension\TablePrefix($tablePrefix);
         $evm->addEventListener(\Doctrine\ORM\Events::loadClassMetadata, $tablePrefix);
     }
     $cache = $sm->get('doctrine.cache.memcache');
     $annotationReader = new \Doctrine\Common\Annotations\AnnotationReader();
     $cachedAnnotationReader = new \Doctrine\Common\Annotations\CachedReader($annotationReader, $cache);
     $em = $sm->get('doctrine.entitymanager.orm_default');
     \Doctrine\DBAL\Types\Type::overrideType('datetime', 'Dxapp\\Doctrine\\Types\\UTCDatetimeType');
     //		$em->getConnection()->getDatabasePlatform()->registerDoctrineTypeMapping('Datetime', 'datetime');
     $sluggableListener = new \Gedmo\Sluggable\SluggableListener();
     $sluggableListener->setAnnotationReader($cachedAnnotationReader);
     $evm->addEventSubscriber($sluggableListener);
     $treeListener = new \Gedmo\Tree\TreeListener();
     $treeListener->setAnnotationReader($cachedAnnotationReader);
     $evm->addEventSubscriber($treeListener);
     $timestampableListener = new \Gedmo\Timestampable\TimestampableListener();
     $timestampableListener->setAnnotationReader($cachedAnnotationReader);
     $evm->addEventSubscriber($timestampableListener);
     $translatableListener = new \Gedmo\Translatable\TranslatableListener();
     $translatableListener->setAnnotationReader($cachedAnnotationReader);
     $translatableListener->setTranslatableLocale('en');
     $translatableListener->setDefaultLocale('en');
     $evm->addEventSubscriber($translatableListener);
 }
Beispiel #3
0
// loggable, not used in example
//$loggableListener = new Gedmo\Loggable\LoggableListener;
//$loggableListener->setAnnotationReader($cachedAnnotationReader);
//$loggableListener->setUsername('admin');
//$evm->addEventSubscriber($loggableListener);
// timestampable
$timestampableListener = new Gedmo\Timestampable\TimestampableListener();
$timestampableListener->setAnnotationReader($cachedAnnotationReader);
$evm->addEventSubscriber($timestampableListener);
// blameable
$blameableListener = new \Gedmo\Blameable\BlameableListener();
$blameableListener->setAnnotationReader($cachedAnnotationReader);
$blameableListener->setUserValue('MyUsername');
// determine from your environment
$evm->addEventSubscriber($blameableListener);
// translatable
$translatableListener = new Gedmo\Translatable\TranslatableListener();
// current translation locale should be set from session or hook later into the listener
// most important, before entity manager is flushed
$translatableListener->setTranslatableLocale('en');
$translatableListener->setDefaultLocale('en');
$translatableListener->setAnnotationReader($cachedAnnotationReader);
$evm->addEventSubscriber($translatableListener);
// sortable, not used in example
//$sortableListener = new Gedmo\Sortable\SortableListener;
//$sortableListener->setAnnotationReader($cachedAnnotationReader);
//$evm->addEventSubscriber($sortableListener);
// mysql set names UTF-8 if required
$evm->addEventSubscriber(new Doctrine\DBAL\Event\Listeners\MysqlSessionInit());
// Finally, create entity manager
return Doctrine\ORM\EntityManager::create($connection, $config, $evm);
 /**
  * Gets the 'stof_doctrine_extensions.listener.translatable' service.
  *
  * This service is shared.
  * This method always returns the same instance of the service.
  *
  * This service is private.
  * If you want to be able to request this service from the container directly,
  * make it public, otherwise you might end up with broken code.
  *
  * @return \Gedmo\Translatable\TranslatableListener A Gedmo\Translatable\TranslatableListener instance
  */
 protected function getStofDoctrineExtensions_Listener_TranslatableService()
 {
     $this->services['stof_doctrine_extensions.listener.translatable'] = $instance = new \Gedmo\Translatable\TranslatableListener();
     $instance->setAnnotationReader($this->get('annotation_reader'));
     $instance->setDefaultLocale('en');
     $instance->setTranslatableLocale('en');
     $instance->setTranslationFallback(false);
     $instance->setPersistDefaultLocaleTranslation(false);
     $instance->setSkipOnLoad(false);
     return $instance;
 }
Beispiel #5
0
 /**
  * @return $this
  * @throws \Exception
  */
 public function setUpTranslateable()
 {
     $defaultLocale = $this->locale->getDefaultLocale();
     if ($defaultLocale === null) {
         throw new \Exception('Default locale not found! Fraym is not correctly installed, please reinstall Fraym.');
     }
     $translatableListener = new \Gedmo\Translatable\TranslatableListener();
     $translatableListener->setDefaultLocale($defaultLocale->locale);
     $translatableListener->setAnnotationReader($this->cachedAnnotationReader);
     $translatableListener->setTranslationFallback(true);
     $translatableListener->setPersistDefaultLocaleTranslation(true);
     $this->eventManager->addEventSubscriber($translatableListener);
     return $this;
 }
Beispiel #6
0
 protected function registerI18n()
 {
     $translatableListener = new \Gedmo\Translatable\TranslatableListener();
     $translatableListener->setDefaultLocale($this->config['general.default_language']);
     $translatableListener->setAnnotationReader($this->cachedAnnotationReader);
     $this->eventManager->addEventSubscriber($translatableListener);
 }