![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/cartforge.co/app/code/Magefan/Blog/Model/Config/Source/ |
<?php /** * Copyright © Magefan ([email protected]). All rights reserved. * Please visit Magefan.com for license details (https://magefan.com/end-user-license-agreement). * * Glory to Ukraine! Glory to the heroes! */ namespace Magefan\Blog\Model\Config\Source; /** * Used in edit post form * */ class CategoryTree implements \Magento\Framework\Option\ArrayInterface { /** * @var \Magefan\Blog\Model\ResourceModel\Category\CollectionFactory */ protected $_categoryCollectionFactory; /** * @var array */ protected $_options; /** * @var array */ protected $_childs; /** * Initialize dependencies. * * @param \Magefan\Blog\Model\ResourceModel\Category\CollectionFactory $authorCollectionFactory * @param void */ public function __construct( \Magefan\Blog\Model\ResourceModel\Category\CollectionFactory $categoryCollectionFactory ) { $this->_categoryCollectionFactory = $categoryCollectionFactory; } /** * Options getter * * @return array */ public function toOptionArray() { if ($this->_options === null) { $this->_options = $this->_getOptions(); } return $this->_options; } protected function _getOptions($itemId = 0) { $childs = $this->_getChilds(); $options = []; if (isset($childs[$itemId])) { foreach ($childs[$itemId] as $item) { $data = [ 'label' => $item->getTitle() . ($item->getIsActive() ? '' : ' ('.__('Disabled').')'), 'value' => $item->getId(), ]; if (isset($childs[$item->getId()])) { $data['optgroup'] = $this->_getOptions($item->getId()); } $options[] = $data; } } return $options; } protected function _getChilds() { if ($this->_childs === null) { $this->_childs = $this->_categoryCollectionFactory->create() ->getGroupedChilds(); } return $this->_childs; } }