bundles/VehicleMarketBundle/Document/Areabrick/vehicleDetail.php line 34

Open in your IDE?
  1. <?php
  2. namespace VehicleMarketBundle\Document\Areabrick;
  3. use Pimcore\Extension\Document\Areabrick\AbstractTemplateAreabrick;
  4. use Pimcore\Extension\Document\Areabrick\EditableDialogBoxConfiguration;
  5. use Pimcore\Extension\Document\Areabrick\EditableDialogBoxInterface;
  6. use Pimcore\Http\Request\Resolver\EditmodeResolver;
  7. use Pimcore\Model\DataObject\Vehicle;
  8. use Pimcore\Model\Document\Editable;
  9. use Pimcore\Model\Document\Editable\Area\Info;
  10. use Pimcore\Translation\Translator;
  11. use Symfony\Component\HttpFoundation\RedirectResponse;
  12. class vehicleDetail extends AbstractTemplateAreabrick implements EditableDialogBoxInterface
  13. {
  14.     /**
  15.      * @var EditmodeResolver
  16.      */
  17.     protected $editmodeResolver;
  18.     public function __construct(EditmodeResolver $editmodeResolverTranslator $translator)
  19.     {
  20.         $this->editmodeResolver $editmodeResolver;
  21.         $this->translator $translator;
  22.     }
  23.     public function action(Info $info)
  24.     {
  25.         if ($this->editmodeResolver->isEditmode($info->getRequest())) {
  26.             $vehicle Vehicle::getList()->current();
  27.         } else {
  28.             $vehicle Vehicle::getList()->filterByInternalVehicleId($info->getRequest()->get('i'))->current();
  29.             if (! $vehicle instanceof Vehicle) {
  30.                 return new RedirectResponse('/fahrzeugboerse'302);
  31.             }
  32.         }
  33.         $info->setParam('vehicle'$vehicle);
  34.     }
  35.     public function getHtmlTagOpen(Info $info)
  36.     {
  37.         return '';
  38.     }
  39.     public function getHtmlTagClose(Info $info)
  40.     {
  41.         return '';
  42.     }
  43.     public function getName()
  44.     {
  45.         return 'Vehicle Detail';
  46.     }
  47.     public function getDescription()
  48.     {
  49.         return 'A component for rendering the detail page of a car';
  50.     }
  51.     public function getTemplateLocation()
  52.     {
  53.         return static::TEMPLATE_LOCATION_BUNDLE;
  54.     }
  55.     public function getEditableDialogBoxConfiguration(Editable $area, ?Info $info): EditableDialogBoxConfiguration
  56.     {
  57.         $cars Vehicle::getList();
  58.         return (new EditableDialogBoxConfiguration())
  59.             ->setItems([
  60.                 'type' => 'tabpanel',
  61.                 'items' => [
  62.                     [
  63.                         'type' => 'panel',
  64.                         'title' => $this->translator->trans('Legal Notice', [], 'admin'),
  65.                         'items' => [
  66.                             [
  67.                                 'type' => 'textarea',
  68.                                 'name' => 'car-detail-financing-legal-notice',
  69.                                 'label' => $this->translator->trans('Legal information for financing?', [], 'admin'),
  70.                             ],
  71.                             [
  72.                                 'type' => 'textarea',
  73.                                 'name' => 'car-detail-leasing-legal-notice',
  74.                                 'label' => $this->translator->trans('Legal information for leasing?', [], 'admin'),
  75.                             ],
  76.                             [
  77.                                 'type' => 'textarea',
  78.                                 'name' => 'car-detail-address-financing-leasing',
  79.                                 'label' => $this->translator->trans('Address Information?', [], 'admin'),
  80.                             ],
  81.                         ]
  82.                     ],
  83.                     [
  84.                         'type' => 'panel',
  85.                         'title' => $this->translator->trans('Settings', [], 'admin'),
  86.                         'items' => [
  87.                             [
  88.                                 'type' => 'select',
  89.                                 'name' => 'car-detail-available-from',
  90.                                 'label' => $this->translator->trans('Show Car available from?', [], 'admin'),
  91.                                 'config' => [
  92.                                     'store' => [
  93.                                         [true$this->translator->trans('Yes', [], 'admin'),],
  94.                                         [false$this->translator->trans('No', [], 'admin'),],
  95.                                     ],
  96.                                     'defaultValue' => true
  97.                                 ]
  98.                             ]
  99.                         ]
  100.                     ],
  101.                 ]
  102.             ])
  103.             ->setReloadOnClose(true);
  104.     }
  105. }