vendor/pimcore/pimcore/models/Document/Printcontainer.php line 23

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 Commercial License (PCL)
  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 PCL
  13.  */
  14. namespace Pimcore\Model\Document;
  15. use Pimcore\Model\Document;
  16. /**
  17.  * @method \Pimcore\Model\Document\Printcontainer\Dao getDao()
  18.  */
  19. class Printcontainer extends Document\PrintAbstract
  20. {
  21.     /**
  22.      * {@inheritdoc}
  23.      */
  24.     protected string $type 'printcontainer';
  25.     /**
  26.      * @internal
  27.      *
  28.      * @var string
  29.      */
  30.     protected $action 'container';
  31.     /**
  32.      * @internal
  33.      *
  34.      * @var array
  35.      */
  36.     private $allChildren = [];
  37.     /**
  38.      * @return array
  39.      *
  40.      * @internal
  41.      */
  42.     public function getTreeNodeConfig()
  43.     {
  44.         $tmpDocument = [];
  45.         $tmpDocument['leaf'] = false;
  46.         $tmpDocument['expanded'] = !$this->hasChildren();
  47.         $tmpDocument['iconCls'] = 'pimcore_icon_printcontainer';
  48.         $tmpDocument['permissions'] = [
  49.             'view' => $this->isAllowed('view'),
  50.             'remove' => $this->isAllowed('delete'),
  51.             'settings' => $this->isAllowed('settings'),
  52.             'rename' => $this->isAllowed('rename'),
  53.             'publish' => $this->isAllowed('publish'),
  54.             'create' => $this->isAllowed('create'),
  55.         ];
  56.         return $tmpDocument;
  57.     }
  58.     /**
  59.      * @return array
  60.      */
  61.     public function getAllChildren()
  62.     {
  63.         $this->allChildren = [];
  64.         $this->doGetChildren($this);
  65.         return $this->allChildren;
  66.     }
  67.     /**
  68.      * @param Document $document
  69.      */
  70.     private function doGetChildren(Document $document)
  71.     {
  72.         $children $document->getChildren();
  73.         foreach ($children as $child) {
  74.             if ($child instanceof Document\Printpage) {
  75.                 $this->allChildren[] = $child;
  76.             }
  77.             if ($child instanceof Document\Folder || $child instanceof Document\Printcontainer) {
  78.                 $this->doGetChildren($child);
  79.             }
  80.             if ($child instanceof Document\Hardlink) {
  81.                 if ($child->getSourceDocument() instanceof Document\Printpage) {
  82.                     $this->allChildren[] = $child;
  83.                 }
  84.                 $this->doGetChildren($child);
  85.             }
  86.         }
  87.     }
  88.     /**
  89.      * @return bool
  90.      */
  91.     public function pdfIsDirty()
  92.     {
  93.         $dirty parent::pdfIsDirty();
  94.         if (!$dirty) {
  95.             $dirty = ($this->getLastGenerated() < $this->getDao()->getLastedChildModificationDate());
  96.         }
  97.         return $dirty;
  98.     }
  99. }