src/AppBundle/EventListener/AdminListener.php line 18

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace AppBundle\EventListener;
  4. use Exception;
  5. use Pimcore\Event\BundleManager\PathsEvent;
  6. use Pimcore\Model\DataObject\Folder;
  7. use Symfony\Component\EventDispatcher\GenericEvent;
  8. class AdminListener
  9. {
  10.     public const FOLDER_UPGRADE_TOOL 'UpgradeTool';
  11.     public const FOLDER_SERIAL_NUMBERS 'SerialNumbers';
  12.     public function onObjectListBeforeLoad(GenericEvent $e)
  13.     {
  14.         $this->createFolderStructure();
  15.     }
  16.     public function addJSFiles(PathsEvent $event)
  17.     {
  18.         $event->setPaths(
  19.             array_merge(
  20.                 $event->getPaths(),
  21.                 [
  22.                     '/bundles/app/js/postmessage.js'
  23.                 ]
  24.             )
  25.         );
  26.     }
  27.     /**
  28.      * @throws Exception
  29.      */
  30.     protected function createFolderStructure(): void
  31.     {
  32.         $upgradeToolFolder Folder::getByPath('/' self::FOLDER_UPGRADE_TOOL);
  33.         if ($upgradeToolFolder === null) {
  34.             $rootFolder Folder::getByPath('/');
  35.             if ($rootFolder === null) {
  36.                 throw new Exception('No Root DataObject Folder found!!');
  37.             }
  38.             $upgradeToolFolder = new Folder();
  39.             $upgradeToolFolder->setParentId($rootFolder->getId());
  40.             $upgradeToolFolder->setKey(self::FOLDER_UPGRADE_TOOL);
  41.             $upgradeToolFolder->setLocked('self');
  42.             try {
  43.                 $upgradeToolFolder->save();
  44.             } catch (Exception $e) {
  45.             }
  46.             $upgradeToolFolder->setLocked('self');
  47.         }
  48.         if ($upgradeToolFolder === null || !$upgradeToolFolder instanceof Folder) {
  49.             throw new Exception('No Root DataObject Folder found!!');
  50.         }
  51.         $serialNumberFolder Folder::getByPath('/' self::FOLDER_UPGRADE_TOOL '/' self::FOLDER_SERIAL_NUMBERS);
  52.         if ($serialNumberFolder === null) {
  53.             $serialNumberFolder = new Folder();
  54.             $serialNumberFolder->setParentId($upgradeToolFolder->getId());
  55.             $serialNumberFolder->setKey(self::FOLDER_SERIAL_NUMBERS);
  56.             $serialNumberFolder->setLocked('propagate');
  57.             try {
  58.                 $serialNumberFolder->save();
  59.             } catch (Exception $e) {
  60.             }
  61.         }
  62.         $serialNumberFolder->setLocked('propagate')->save();
  63.         if ($serialNumberFolder === null || !$serialNumberFolder instanceof Folder) {
  64.             throw new Exception('No SerialNumber DataObject Folder found!!');
  65.         }
  66.     }
  67. }