vendor/pimcore/pimcore/lib/Extension/Document/Areabrick/AbstractAreabrick.php line 120

Open in your IDE?
  1. <?php
  2. /**
  3.  * Pimcore
  4.  *
  5.  * This source file is available under two different licenses:
  6.  * - GNU General Public License version 3 (GPLv3)
  7.  * - Pimcore Enterprise License (PEL)
  8.  * Full copyright and license information is available in
  9.  * LICENSE.md which is distributed with this source code.
  10.  *
  11.  * @copyright  Copyright (c) Pimcore GmbH (http://www.pimcore.org)
  12.  * @license    http://www.pimcore.org/license     GPLv3 and PEL
  13.  */
  14. namespace Pimcore\Extension\Document\Areabrick;
  15. use Pimcore\Extension\Document\Areabrick\Exception\ConfigurationException;
  16. use Pimcore\Model\Document\Editable;
  17. use Pimcore\Model\Document\PageSnippet;
  18. use Pimcore\Model\Document\Tag\Area\Info;
  19. use Pimcore\Templating\Renderer\EditableRenderer;
  20. use Symfony\Component\DependencyInjection\ContainerAwareInterface;
  21. use Symfony\Component\DependencyInjection\ContainerAwareTrait;
  22. abstract class AbstractAreabrick implements AreabrickInterfaceTemplateAreabrickInterfaceContainerAwareInterface
  23. {
  24.     use ContainerAwareTrait;
  25.     /**
  26.      * @var EditableRenderer
  27.      */
  28.     protected $editableRenderer;
  29.     /**
  30.      * @deprecated will be removed in Pimcore 7
  31.      * Called in AreabrickPass
  32.      *
  33.      * @param EditableRenderer $editableRenderer
  34.      */
  35.     public function setEditableRenderer(EditableRenderer $editableRenderer)
  36.     {
  37.         $this->editableRenderer $editableRenderer;
  38.     }
  39.     /**
  40.      * @var string
  41.      */
  42.     protected $id;
  43.     /**
  44.      * @inheritDoc
  45.      */
  46.     public function setId($id)
  47.     {
  48.         // make sure ID is only set once
  49.         if (null !== $this->id) {
  50.             throw new ConfigurationException(sprintf(
  51.                 'Brick ID is immutable (trying to set ID %s for brick %s)',
  52.                 $id,
  53.                 $this->id
  54.             ));
  55.         }
  56.         $this->id $id;
  57.     }
  58.     /**
  59.      * @inheritDoc
  60.      */
  61.     public function getId()
  62.     {
  63.         return $this->id;
  64.     }
  65.     /**
  66.      * {@inheritdoc}
  67.      */
  68.     public function getName()
  69.     {
  70.         return $this->id ucfirst($this->id) : '';
  71.     }
  72.     /**
  73.      * {@inheritdoc}
  74.      */
  75.     public function getDescription()
  76.     {
  77.         return '';
  78.     }
  79.     /**
  80.      * @inheritDoc
  81.      */
  82.     public function getVersion()
  83.     {
  84.         return '';
  85.     }
  86.     /**
  87.      * {@inheritdoc}
  88.      */
  89.     public function getIcon()
  90.     {
  91.         return null;
  92.     }
  93.     /**
  94.      * @inheritDoc
  95.      */
  96.     public function hasTemplate()
  97.     {
  98.         return true;
  99.     }
  100.     /**
  101.      * @inheritDoc
  102.      */
  103.     public function hasViewTemplate()
  104.     {
  105.         @trigger_error(sprintf('%s is deprecated, use hasTemplate() instead'__METHOD__), E_USER_DEPRECATED);
  106.         return $this->hasTemplate();
  107.     }
  108.     /**
  109.      * @inheritDoc
  110.      */
  111.     public function hasEditTemplate()
  112.     {
  113.         return false;
  114.     }
  115.     /**
  116.      * {@inheritdoc}
  117.      */
  118.     public function getEditTemplate()
  119.     {
  120.         return null;
  121.     }
  122.     /**
  123.      * {@inheritdoc}
  124.      */
  125.     public function action(Info $info)
  126.     {
  127.         // noop - implement as needed
  128.         return null;
  129.     }
  130.     /**
  131.      * {@inheritdoc}
  132.      */
  133.     public function postRenderAction(Info $info)
  134.     {
  135.         // noop - implement as needed
  136.         return null;
  137.     }
  138.     /**
  139.      * {@inheritdoc}
  140.      */
  141.     public function getHtmlTagOpen(Info $info)
  142.     {
  143.         return '<div class="pimcore_area_' $info->getId() . ' pimcore_area_content '$this->getOpenTagCssClass($info) .'">';
  144.     }
  145.     /**
  146.      * @param Info $info
  147.      *
  148.      * @return string|null
  149.      */
  150.     protected function getOpenTagCssClass(Info $info)
  151.     {
  152.         return null;
  153.     }
  154.     /**
  155.      * {@inheritdoc}
  156.      */
  157.     public function getHtmlTagClose(Info $info)
  158.     {
  159.         return '</div>';
  160.     }
  161.     /**
  162.      * @param PageSnippet $document
  163.      * @param string $type
  164.      * @param string $inputName
  165.      * @param array $options
  166.      *
  167.      * @return Editable|null
  168.      *
  169.      * @deprecated since v6.8 and will be removed in 7. Use getDocumentEditable() instead.
  170.      */
  171.     protected function getDocumentTag(PageSnippet $document$type$inputName, array $options = [])
  172.     {
  173.         return $this->getDocumentEditable($document$type$inputName$options);
  174.     }
  175.     /**
  176.      * @param PageSnippet $document
  177.      * @param string $type
  178.      * @param string $inputName
  179.      * @param array $options
  180.      *
  181.      * @return Editable|null
  182.      */
  183.     protected function getDocumentEditable(PageSnippet $document$type$inputName, array $options = [])
  184.     {
  185.         return $this->editableRenderer->getEditable($document$type$inputName$options);
  186.     }
  187. }