/** * @param EventArgs $args */ public function prePersist(EventArgs $args) { $em = $args->getEntityManager(); $entity = $args->getEntity(); if ($entity instanceof InstanceInterface && !$entity->getInstance() && ($tenant = $em->getTenant())) { $entity->setTenant($tenant); } }
/** * @param \Doctrine\ORM\Event\LifecycleEventArgs $args * * @return \Sonata\MediaBundle\Provider\MediaProviderInterface */ protected function getProvider(EventArgs $args) { $media = $args->getEntity(); if (!$media instanceof MediaInterface) { return null; } return $this->getPool()->getProvider($media->getProviderName()); }
/** * @param EventArgs $args * @param string $method * @return mixed|void */ public function getLoggingInfo(EventArgs $args, $method = '') { $entity = $args->getEntity(); if ($this->getSecurityContext()->getToken() && $this->getSecurityContext()->getToken()->getUser() != 'anon.') { $username = $this->getSecurityContext()->getToken()->getUser()->getUsername(); } else { $username = '******'; } $this->logger->info(sprintf('entity %s', $method), array('username' => $username, 'class' => get_class($entity), 'id' => $entity->getId())); }
/** * @param EventArgs $args * @param string $method * @return mixed|void */ public function getLoggingInfo(EventArgs $args, $method = '') { $entity = $args->getEntity(); if ($this->getTokenStorage()->getToken() && $this->getTokenStorage()->getToken()->getUser() != 'anon.') { $username = $this->getTokenStorage()->getToken()->getUser()->getUsername(); } else { $username = '******'; } $id = method_exists($entity, 'getId') ? $entity->getId() : null; $this->logger->info(sprintf('entity %s', $method), array('username' => $username, 'class' => get_class($entity), 'id' => $id)); }
/** * @inheritdoc */ protected function getMedia(EventArgs $args) { $media = $args->getEntity(); if (!$media instanceof MediaInterface) { return $media; } if (!$media->getCategory()) { $media->setCategory($this->getRootCategory($media)); } return $media; }
/** * @param EventArgs $args * @return mixed|void */ public function postPersist(EventArgs $args) { $entity = $args->getEntity(); $em = $args->getEntityManager(); if ($entity instanceof PageInterface) { if ($contentRoute = $entity->getContentRoute()) { $contentRoute->setObjectId($entity->getId()); $contentRoute->setPath(PageHelper::getPageRoutePath($entity->getPath())); $em->persist($contentRoute); $em->getUnitOfWork()->computeChangeSet($em->getClassMetadata(get_class($contentRoute)), $contentRoute); } } }
/** * @param EventArgs $args * @return mixed|void */ public function preUpdate(EventArgs $args) { $entity = $args->getEntity(); $em = $args->getEntityManager(); $uow = $em->getUnitOfWork(); if ($entity instanceof ContentRoute) { $template = $this->templates[$entity->getTemplateName()]; $changeset = $uow->getEntityChangeSet($entity); if (isset($changeset['templateName']) && $args->hasChangedField('templateName')) { $entity->setTemplate($template['template']); $entity->setController($template['controller']); $uow->recomputeSingleEntityChangeSet($em->getClassMetadata("NetworkingInitCmsBundle:ContentRoute"), $entity); } } }
/** * @inheritdoc */ protected function getMedia(EventArgs $args) { return $args->getEntity(); }
public function postLoad(EventArgs $event) { $entity = $event->getEntity(); $this->initializer->initialize($entity, $this->serviceLocator); }
/** * {@inheritDoc} */ public function getObject(EventArgs $e) { return $e->getEntity(); }
/** * @param \Doctrine\Common\EventArgs $args * @return void */ protected function recomputeSingleEntityChangeSet(EventArgs $args) { $em = $args->getEntityManager(); $em->getUnitOfWork()->recomputeSingleEntityChangeSet($em->getClassMetadata(get_class($args->getEntity())), $args->getEntity()); }
/** * Sets the specific sortOrders. * * @param EventArgs $eventArgs * * @access private * @return array * @author Etienne de Longeaux <*****@*****.**> */ private function getSortableOrders($eventArgs) { $entity = $eventArgs->getEntity(); $entityManager = $eventArgs->getEntityManager(); $entity_name = get_class($entity); $metadata = $entityManager->getClassMetadata($entity_name); $reflectionClass = new ReflectionClass($entity); $properties = $reflectionClass->getProperties(); // initialize sort values; $results['sort_position_by_and'] = " "; $results['sort_position_by_where'] = " "; // foreach ($properties as $refProperty) { if ($this->annReader->getPropertyAnnotation($refProperty, $this->annotationclass)) { // we have annotation and if it decrypt operation, we must avoid duble decryption $propName = $refProperty->getName(); $methodName = \Sfynx\ToolBundle\Util\PiStringManager::capitalize($propName); if ($reflectionClass->hasMethod($getter = 'get' . $methodName) && $reflectionClass->hasMethod($setter = 'set' . $methodName)) { $properties = $this->annReader->getPropertyAnnotation($refProperty, $this->annotationclass); if (is_array($properties->SortableOrders) && isset($properties->SortableOrders['field']) && isset($properties->SortableOrders['type'])) { $field = $properties->SortableOrders['field']; $columnName = $properties->SortableOrders['columnName']; $methode = 'get' . \Sfynx\ToolBundle\Util\PiStringManager::capitalize($field); $type = $properties->SortableOrders['type']; if (method_exists($entity, $methode) && $type == 'relationship' && !is_null($entity->{$methode}())) { $results['sort_position_by_and'] = " AND (mytable.{$columnName} = '{$entity->{$methode}()->getId()}')"; $results['sort_position_by_where'] = " WHERE (mytable.{$columnName} = '{$entity->{$methode}()->getId()}')"; } elseif (method_exists($entity, $methode)) { $results['sort_position_by_and'] = " AND (mytable.{$columnName} = '{$entity->{$methode}()}')"; $results['sort_position_by_where'] = " WHERE (mytable.{$columnName} = '{$entity->{$methode}()}')"; } } } } } // Exemple : // @PI\Positioned(SortableOrders = {"type":"relationship","field":"page","columnName":"page_id"}) // is like this : // if (($entity instanceof \MyEnity && method_exists($entity, 'getObject')){ // $obj = $entity->getObject(); // if ($obj instanceof \MyObject){ // $results['sort_position_by_and'] = " AND (mytable.page_id = '{$obj->getId()}')"; // $results['sort_position_by_where'] = " WHERE (mytable.page_id = '{$obj->getId()}')"; // } // } return $results; }
/** * Description. * * @param EventArgs $event * @param string $name * @param boolean $onTerminate */ private function process($event, $name, $onTerminate) { $entity = $event->getEntity(); if (false === $this->supportsEntity($entity)) { return; } $metadata = $this->getMetadata($entity, $event); $newEvent = new DoctrineEvent($entity, $event); $classes = array_merge([$metadata->getName()], $metadata->parentClasses); if (true === $onTerminate) { $this->registerTerminate($entity, $newEvent, $name); } foreach (array_reverse($classes) as $class) { $this->notify($class, $name, $newEvent); } }
private function articleFlux(EventArgs $eventArgs) { $entity = $eventArgs->getEntity(); $entityManager = $eventArgs->getEntityManager(); $locale = $this->container->get('request')->getLocale(); // if ($entity instanceof \Cmf\ContentBundle\Entity\Article || $entity instanceof \Cmf\ContentBundle\Entity\BlocGeneral) { $flux = $this->container->get('doctrine')->getRepository('PluginsContentBundle:Article')->findFlux(); $tab = array(); $tab['references'] = array(); // foreach ($flux as $key => $zone) { // we refrseh in the locale language $zone->setTranslatableLocale($locale); $entityManager->refresh($zone); // if ($key == 0) { $item = array(); $item['type'] = "logo"; $item['name'] = "Marie de Broissia Header"; $item['date'] = ""; $item['dimension'] = "simple"; $item['classname'] = array(); $item['content'] = "<h1><a href='http://www.mariedebroissia.fr/' target='_blank' alt='mariedebroissia.fr'><img src='/ressources/photos/img_logo_mariedebroissia.jpg' alt='Marie de Broissia' /><span class='tnoir'>L'observatoire</span><span class='tblanc'>Communication Managériale</span></a></h1>"; array_push($item['classname'], "main-header"); array_push($tab['references'], $item); } $key = $key + 1; // $item = array(); $title = $zone->getBlocgeneral()->getTitle(); if ($zone->getType() == 'image' || $zone->getType() == 'grande_image') { $item['type'] = "photo"; } elseif ($zone->getType() == 'large_image') { $item['type'] = "infography"; } elseif ($zone->getType() == 'video') { $item['type'] = "video"; } elseif ($zone->getType() == 'article') { $item['type'] = "info"; $item['title'] = $title; } $item['name'] = $title; $item['caption'] = $title; if ($zone->getType() == 'grande_image') { $item['dimension'] = "doublesize"; } elseif ($zone->getType() == 'large_image') { $item['dimension'] = "doublewidth"; } else { $item['dimension'] = "simple"; } // $item['date'] = date("d/m/Y", $zone->getBlocgeneral()->getPublishedAt()->getTimestamp()); if (!is_null($zone->getBlocgeneral()->getArchiveAt())) { $item['date_expiration'] = date("d/m/Y", $zone->getBlocgeneral()->getArchiveAt()->getTimestamp()); } else { $item['date_expiration'] = ''; } if ($zone->getType() != 'article') { $obj_media = $zone->getBlocgeneral()->getMedia(); if ($obj_media) { try { // //$mediaPath = $this->container->get('pi_app_admin.twig.extension.route')->getMediaUrlFunction($obj_media->getImage(), 'reference', true, $obj_media->getUpdatedAt(), 'plugin_content_article_media_reference'); //$src = $this->container->get('kernel')->getRootDir() . '/../web/' . $mediaPath; // $item['imageUri'] = $this->container->get('pi_app_admin.twig.extension.route')->getMediaUrlFunction($obj_media->getImage(), 'default_mosaique', true, $obj_media->getUpdatedAt(), 'plugin_content_article_media_default_mosaique'); // $item['imageBigUri'] = $this->container->get('pi_app_admin.twig.extension.route')->getMediaUrlFunction($obj_media->getImage(), 'default_big', true, $obj_media->getUpdatedAt(), 'plugin_content_article_media_default_big'); // } catch (\Exception $e) { $item['imageUri'] = ''; $item['imageBigUri'] = ''; } } else { $item['imageUri'] = ''; $item['imageBigUri'] = ''; } } $item['description'] = $zone->getBlocgeneral()->getDescriptif() . '<br/><br/>' . $zone->getContent(); if ($zone->getType() == 'image' || $zone->getType() == 'grande_image' || $zone->getType() == 'article') { if ($zone->getUrl() == null) { $item['externalUrl'] = ""; $item['aliasUrl'] = ""; } else { $item['externalUrl'] = $zone->getUrl(); $item['aliasUrl'] = $zone->getAlias(); } } if ($zone->getType() == 'video') { $item['videoUri'] = $zone->getUrl(); } if ($zone->getPopin() == true) { $item['visite'] = true; } else { $item['visite'] = false; } array_push($tab['references'], $item); } // $file = $this->container->get('kernel')->getRootDir() . "/../web/ressources/references_{$locale}.json"; \PiApp\AdminBundle\Util\PiFileManager::save($file, json_encode($tab), 0777, LOCK_EX); } }
/** * Sets the specific sortOrders. * * @return void * @access private * @author etienne de Longeaux <*****@*****.**> */ private function deleteCacheTranslationFiles(EventArgs $eventArgs) { $entity = $eventArgs->getEntity(); if ($entity instanceof Word) { $this->container->get("sfynx.translator.wordsloader")->deleteCacheTranslationFiles(); } }