src/PortalEngine/EventListener/ExtractNameSubscriber.php line 31

Open in your IDE?
  1. <?php
  2. /**
  3.  * Dieser Quellcode ist geistiges Eigentum der Weblizards GmbH
  4.  * und darf ohne vorheriges schriftliches Einverständnis nicht
  5.  * vervielfältigt werden.
  6.  *
  7.  * @copyright  Copyright (c) Weblizards GmbH <https://www.weblizards.de>
  8.  * @license    https://www.gnu.org/licenses/gpl-3.0 GPLv3
  9.  */
  10. namespace App\PortalEngine\EventListener;
  11. use App\Model\DataObject\NiceNameTrait;
  12. use Pimcore\Bundle\PortalEngineBundle\Event\DataObject\ExtractNameEvent;
  13. use Pimcore\Model\DataObject;
  14. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  15. class ExtractNameSubscriber implements EventSubscriberInterface
  16. {
  17.     /**
  18.      * @inheritDoc
  19.      */
  20.     public static function getSubscribedEvents()
  21.     {
  22.         return [
  23.             ExtractNameEvent::class  => 'onExtractName',
  24.         ];
  25.     }
  26.     public function onExtractName(ExtractNameEvent $event)
  27.     {
  28.         $object $event->getObject();
  29.         if (array_key_exists(NiceNameTrait::class, class_uses($object)) && method_exists($object'getNiceName')) {
  30.             $language $event->getLocale();
  31.             $prevGetFallbackValues DataObject\Localizedfield::getGetFallbackValues();
  32.             try {
  33.                 DataObject\Localizedfield::setGetFallbackValues(true);
  34.                 /** @var NiceNameTrait $object */
  35.                 $name $object->getNiceName($language);    // @phpstan-ignore-line
  36.                 $event->setName($name);
  37.             } finally {
  38.                 DataObject\Localizedfield::setGetFallbackValues($prevGetFallbackValues);
  39.             }
  40.         }
  41.     }
  42. }