vendor/score/cms/src/Entity/Page/Page.php line 17

Open in your IDE?
  1. <?php
  2. namespace Score\CmsBundle\Entity\Page;
  3. use Doctrine\ORM\Mapping as ORM;
  4. use Doctrine\Common\Collections\Collection;
  5. use Doctrine\Common\Collections\ArrayCollection;
  6. use Score\BaseBundle\Entity\BaseEntity;
  7. use Score\CmsBundle\Entity\Page\PageBlock;
  8. /**
  9.  * @ORM\Entity(repositoryClass="Score\CmsBundle\Entity\Page\PageRepository")
  10.  * @ORM\Table(name="cms_page")
  11.  * @ORM\HasLifecycleCallbacks()
  12.  */
  13. class Page extends BaseEntity {
  14.     /**
  15.      * @ORM\Column(type="string", length=200)
  16.      */
  17.     protected $name;
  18.     /**
  19.      * @ORM\Column(name="title", type="string", length=200)
  20.      */
  21.     protected $title;
  22.     /**
  23.      * @ORM\Column(type="string", length=200, nullable = true)
  24.      */
  25.     protected $linkName;
  26.     /**
  27.      * @ORM\ManyToOne(targetEntity="Page")
  28.      * @ORM\JoinColumn(name="parent_id", referencedColumnName="id")
  29.      */
  30.     protected $parentPage;
  31.     /**
  32.      * @ORM\Column(type="integer", nullable = true)
  33.      */
  34.     protected $lvl;
  35.     /**
  36.      * @ORM\Column(type="integer", nullable = true)
  37.      */
  38.     protected $sortOrder;
  39.     /**
  40.      * @ORM\Column(type="string", length=255, nullable = true)
  41.      */
  42.     protected $seoId;
  43.     /**
  44.      * @ORM\Column(name="content", type="text", length=10000, nullable = true)
  45.      */
  46.     protected $content;
  47.     /**
  48.      * @ORM\Column(type="string", length=100, nullable = true)
  49.      */
  50.     protected $status;
  51.     /**
  52.      * @ORM\Column(type="string", nullable = true)
  53.      */
  54.     protected $lang;
  55.     /**
  56.      * @ORM\Column(type="integer", nullable = true)
  57.      */
  58.     protected $parentId;
  59.     /**
  60.      * @ORM\OneToMany(targetEntity="PageBlock", mappedBy="page")
  61.      */
  62.     private $pageBlocks;
  63.     /**
  64.      * @ORM\Column(name="config_data", type="text", length=10000, nullable = true)
  65.      */
  66.     protected $configData;
  67.     /**
  68.      * @ORM\Column(type="string", length=100, nullable = true)
  69.      */
  70.     protected $layout;
  71.     private $keywordItemPage;
  72.     /**
  73.      * @ORM\Column(type="string", length=2000, nullable = true)
  74.      */
  75.     protected $redirectUrl;
  76.     /**
  77.      * @ORM\Column(type="string", length=100, nullable = true)
  78.      */
  79.     protected $redirectWindow;
  80.     /**
  81.      * @ORM\Column(type="string", length=255, nullable = true)
  82.      */
  83.     protected $icon;
  84.     /**
  85.      * @ORM\Column(type="string", length=2000, nullable = true)
  86.      */
  87.     protected $teaser;
  88.      /**
  89.      * @ORM\OneToMany(targetEntity="\Score\CmsBundle\Entity\Multisite\SiteItemPage", mappedBy="page",cascade={"persist","remove"})
  90.      */
  91.     private $siteItemPage = [];
  92.      /**
  93.      * @ORM\Column(name="p_search", type="text", nullable=true)
  94.      */
  95.     protected $search;
  96.     private $multisite;
  97.     public function getKeywordItemPage()
  98.     {
  99.         return $this->keywordItemPage;
  100.     }
  101.     public function setKeywordItemPage($keywordItemPage)
  102.     {
  103.         $this->keywordItemPage $keywordItemPage;
  104.     }
  105.     /**
  106.      * Get id
  107.      *
  108.      * @return integer
  109.      */
  110.     public function getId()
  111.     {
  112.         return $this->id;
  113.     }
  114.     public function getLayout()
  115.     {
  116.         return $this->layout;
  117.     }
  118.     public function setLayout($layout)
  119.     {
  120.         $this->layout $layout;
  121.     }
  122.     /**
  123.      * Set name
  124.      *
  125.      * @param string $name
  126.      * @return Page
  127.      */
  128.     public function setName($name)
  129.     {
  130.         $this->name $name;
  131.         return $this;
  132.     }
  133.     /**
  134.      * Get name
  135.      *
  136.      * @return string
  137.      */
  138.     public function getName()
  139.     {
  140.         return $this->name;
  141.     }
  142.     /**
  143.      * Set title
  144.      *
  145.      * @param string $title
  146.      * @return Page
  147.      */
  148.     public function setTitle($title)
  149.     {
  150.         $this->title $title;
  151.         return $this;
  152.     }
  153.     /**
  154.      * Get title
  155.      *
  156.      * @return string
  157.      */
  158.     public function getTitle()
  159.     {
  160.         return $this->title;
  161.     }
  162.     /**
  163.      * Set linkName
  164.      *
  165.      * @param string $linkName
  166.      * @return Page
  167.      */
  168.     public function setLinkName($linkName)
  169.     {
  170.         $this->linkName $linkName;
  171.         return $this;
  172.     }
  173.     /**
  174.      * Get linkName
  175.      *
  176.      * @return string
  177.      */
  178.     public function getLinkName()
  179.     {
  180.         return $this->linkName;
  181.     }
  182.     /**
  183.      * Set lvl
  184.      *
  185.      * @param integer $lvl
  186.      * @return Page
  187.      */
  188.     public function setLvl($lvl)
  189.     {
  190.         $this->lvl $lvl;
  191.         return $this;
  192.     }
  193.     /**
  194.      * Get lvl
  195.      *
  196.      * @return integer
  197.      */
  198.     public function getLvl()
  199.     {
  200.         return $this->lvl;
  201.     }
  202.     /**
  203.      * Set sortOrder
  204.      *
  205.      * @param integer $sortOrder
  206.      * @return Page
  207.      */
  208.     public function setSortOrder($sortOrder)
  209.     {
  210.         $this->sortOrder $sortOrder;
  211.         return $this;
  212.     }
  213.     /**
  214.      * Get sortOrder
  215.      *
  216.      * @return integer
  217.      */
  218.     public function getSortOrder()
  219.     {
  220.         return $this->sortOrder;
  221.     }
  222.     /**
  223.      * Set seoId
  224.      *
  225.      * @param string $seoId
  226.      * @return Page
  227.      */
  228.     public function setSeoId($seoId)
  229.     {
  230.         $this->seoId $seoId;
  231.         return $this;
  232.     }
  233.     /**
  234.      * Get seoId
  235.      *
  236.      * @return string
  237.      */
  238.     public function getSeoId()
  239.     {
  240.         return $this->seoId;
  241.     }
  242.     /**
  243.      * Set content
  244.      *
  245.      * @param string $content
  246.      * @return Page
  247.      */
  248.     public function setContent($content)
  249.     {
  250.         $this->content $content;
  251.         return $this;
  252.     }
  253.     /**
  254.      * Get content
  255.      *
  256.      * @return string
  257.      */
  258.     public function getContent()
  259.     {
  260.         return $this->content;
  261.     }
  262.     /**
  263.      * Set status
  264.      *
  265.      * @param string $status
  266.      * @return Page
  267.      */
  268.     public function setStatus($status)
  269.     {
  270.         $this->status $status;
  271.         return $this;
  272.     }
  273.     /**
  274.      * Get status
  275.      *
  276.      * @return string
  277.      */
  278.     public function getStatus()
  279.     {
  280.         return $this->status;
  281.     }
  282.     /**
  283.      * Set lang
  284.      *
  285.      * @param string $lang
  286.      * @return Page
  287.      */
  288.     public function setLang($lang)
  289.     {
  290.         $this->lang $lang;
  291.         return $this;
  292.     }
  293.     /**
  294.      * Get lang
  295.      *
  296.      * @return string
  297.      */
  298.     public function getLang()
  299.     {
  300.         return $this->lang;
  301.     }
  302.     /**
  303.      * Set parentPage
  304.      *
  305.      * @param Page $parentPage
  306.      * @return Page
  307.      */
  308.     public function setParentPage(Page $parentPage null)
  309.     {
  310.         $this->parentPage $parentPage;
  311.         return $this;
  312.     }
  313.     /**
  314.      * Get parentPage
  315.      *
  316.      * @return Page
  317.      */
  318.     public function getParentPage()
  319.     {
  320.         return $this->parentPage;
  321.     }
  322.     function getParentId()
  323.     {
  324.         return $this->parentId;
  325.     }
  326.     function setParentId($parentId)
  327.     {
  328.         $this->parentId $parentId;
  329.     }
  330.     /**
  331.      * Constructor
  332.      */
  333.     public function __construct()
  334.     {
  335.         $this->pageBlocks = new ArrayCollection();
  336.     }
  337.     /**
  338.      * Add pageBlocks
  339.      *
  340.      * @param PageBlock $pageBlocks
  341.      * @return Page
  342.      */
  343.     public function addPageBlock(PageBlock $pageBlocks)
  344.     {
  345.         $this->pageBlocks[] = $pageBlocks;
  346.         return $this;
  347.     }
  348.     public function resetPageBlocks()
  349.     {
  350.         $this->pageBlocks = new ArrayCollection();
  351.     }
  352.     /**
  353.      * Remove pageBlocks
  354.      *
  355.      * @param PageBlock $pageBlocks
  356.      */
  357.     public function removePageBlock(PageBlock $pageBlocks)
  358.     {
  359.         $this->pageBlocks->removeElement($pageBlocks);
  360.     }
  361.     /**
  362.      * Get pageBlocks
  363.      *
  364.      * @return Collection
  365.      */
  366.     public function getPageBlocks()
  367.     {
  368.         return $this->pageBlocks;
  369.     }
  370.     public function getRedirectUrl()
  371.     {
  372.         return $this->redirectUrl;
  373.     }
  374.     public function getRedirectWindow()
  375.     {
  376.         return $this->redirectWindow;
  377.     }
  378.     public function getIcon()
  379.     {
  380.         return $this->icon;
  381.     }
  382.     public function getTeaser()
  383.     {
  384.         return $this->teaser;
  385.     }
  386.     public function setRedirectUrl($redirectUrl)
  387.     {
  388.         $this->redirectUrl $redirectUrl;
  389.     }
  390.     public function setRedirectWindow($redirectWindow)
  391.     {
  392.         $this->redirectWindow $redirectWindow;
  393.     }
  394.     public function setIcon($icon)
  395.     {
  396.         $this->icon $icon;
  397.     }
  398.     public function setTeaser($teaser)
  399.     {
  400.         $this->teaser $teaser;
  401.     }
  402.     public function getLvlPrefix()
  403.     {
  404.         return str_repeat('- '$this->getLvl() - 1);
  405.     }
  406.     public function hasLeftBar()
  407.     {
  408.         if ('menu-left-center-right' == $this->getLayout() or 'menu-left-center' == $this->getLayout())
  409.         {
  410.             return true;
  411.         }
  412.     }
  413.     public function hasRightBar()
  414.     {
  415.         if ('menu-left-center-right' == $this->getLayout() or 'menu-center-right' == $this->getLayout())
  416.         {
  417.             return true;
  418.         }
  419.     }
  420.     function getConfigData() {
  421.         return $this->configData;
  422.     }
  423.     function setConfigData($configData): void {
  424.         $this->configData $configData;
  425.     }
  426.     /**
  427.      * Get the value of siteItemPage
  428.      */ 
  429.     public function getSiteItemPage()
  430.     {
  431.         return $this->siteItemPage;
  432.     }
  433.     /**
  434.      * Set the value of siteItemPage
  435.      *
  436.      * @return  self
  437.      */ 
  438.     public function setSiteItemPage($siteItemPage)
  439.     {
  440.         $this->siteItemPage $siteItemPage;
  441.         return $this;
  442.     }
  443.     /**
  444.      * Get the value of multisite
  445.      */ 
  446.     public function getMultisite()
  447.     {
  448.         return $this->multisite;
  449.     }
  450.     /**
  451.      * Set the value of multisite
  452.      *
  453.      * @return  self
  454.      */ 
  455.     public function setMultisite($multisite)
  456.     {
  457.         $this->multisite $multisite;
  458.         return $this;
  459.     }
  460.     public function getOrderedPageBlocks()
  461.     {
  462.         $list = [];
  463.         foreach($this->getPageBlocks() as $block)
  464.         {
  465.             if(!array_key_exists($block->getSortOrder(),$list))
  466.             {
  467.                 $list[$block->getSortOrder()] = $block;
  468.             }
  469.             else
  470.             {
  471.                 $itemsCount count($list);
  472.                 $itemsCount++;
  473.                 $list[$itemsCount] = $block
  474.             }
  475.         }
  476.         //dump($list);
  477.         ksort($list);
  478.         //dump($list);
  479.         return $list;
  480.     }
  481.     
  482.     /**
  483.      * Get the value of search
  484.      */ 
  485.     public function getSearch()
  486.     {
  487.         return $this->search;
  488.     }
  489.     /**
  490.      * Set the value of search
  491.      *
  492.      * @return  self
  493.      */ 
  494.     public function setSearch($search)
  495.     {
  496.         $this->search $search;
  497.         return $this;
  498.     }
  499.     
  500. }