classes/XLite/Model/Product/GlobalTabProvider.php line 19

Open in your IDE?
  1. <?php
  2. /**
  3.  * Copyright (c) 2011-present Qualiteam software Ltd. All rights reserved.
  4.  * See https://www.x-cart.com/license-agreement.html for license details.
  5.  */
  6. namespace XLite\Model\Product;
  7. use Doctrine\ORM\Mapping as ORM;
  8. use XCart\Domain\ModuleManagerDomain;
  9. /**
  10.  * The "tab" model class
  11.  *
  12.  * @ORM\Entity
  13.  * @ORM\Table  (name="global_product_tab_provider")
  14.  */
  15. class GlobalTabProvider extends \XLite\Model\AEntity
  16. {
  17.     public const PROVIDER_CORE 'Core';
  18.     /**
  19.      * Tab unique ID
  20.      *
  21.      * @var integer
  22.      *
  23.      * @ORM\Id
  24.      * @ORM\GeneratedValue (strategy="AUTO")
  25.      * @ORM\Column         (type="integer", options={ "unsigned": true })
  26.      */
  27.     protected $id;
  28.     /**
  29.      * Global tab
  30.      *
  31.      * @var \XLite\Model\Product\GlobalTab
  32.      * @ORM\ManyToOne  (targetEntity="XLite\Model\Product\GlobalTab", inversedBy="providers")
  33.      * @ORM\JoinColumn (name="tab_id", referencedColumnName="id", onDelete="CASCADE")
  34.      */
  35.     protected $tab;
  36.     /**
  37.      * Tab name
  38.      *
  39.      * @var string
  40.      *
  41.      * @ORM\Column (type="string", nullable=true)
  42.      */
  43.     protected $code;
  44.     /**
  45.      * Return Id
  46.      *
  47.      * @return int
  48.      */
  49.     public function getId()
  50.     {
  51.         return $this->id;
  52.     }
  53.     /**
  54.      * Return Tab
  55.      *
  56.      * @return GlobalTab
  57.      */
  58.     public function getTab()
  59.     {
  60.         return $this->tab;
  61.     }
  62.     /**
  63.      * Set Tab
  64.      *
  65.      * @param GlobalTab $tab
  66.      *
  67.      * @return $this
  68.      */
  69.     public function setTab($tab)
  70.     {
  71.         $this->tab $tab;
  72.         return $this;
  73.     }
  74.     /**
  75.      * Return Provider
  76.      *
  77.      * @return string
  78.      */
  79.     public function getCode()
  80.     {
  81.         return $this->code;
  82.     }
  83.     /**
  84.      * Set Provider
  85.      *
  86.      * @param string $code
  87.      *
  88.      * @return $this
  89.      */
  90.     public function setCode($code)
  91.     {
  92.         $this->code $code;
  93.         return $this;
  94.     }
  95.     /**
  96.      * Check if tab provider available
  97.      *
  98.      * @return bool
  99.      */
  100.     public function checkProvider()
  101.     {
  102.         /** @var ModuleManagerDomain $moduleManagerDomain */
  103.         $moduleManagerDomain \XCart\Container::getContainer()?->get(ModuleManagerDomain::class);
  104.         return $this->getCode() === static::PROVIDER_CORE
  105.             || $moduleManagerDomain->isEnabled($this->getCode());
  106.     }
  107. }