![]() 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/old/vendor/magefan/module-blog/Block/Sidebar/ |
<?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\Block\Sidebar; use Magento\Store\Model\ScopeInterface; use \Magento\Framework\View\Element\Template; use \Magento\Framework\DataObject\IdentityInterface; /** * Blog sidebar categories block */ class Categories extends Template implements IdentityInterface { use Widget; /** * @var string */ protected $_widgetKey = 'categories'; /** * @var \Magefan\Blog\Model\ResourceModel\Category\Collection */ protected $_categoryCollection; /** * Construct * * @param \Magento\Framework\View\Element\Context $context * @param \Magefan\Blog\Model\ResourceModel\Category\Collection $categoryCollection * @param array $data */ public function __construct( \Magento\Framework\View\Element\Template\Context $context, \Magefan\Blog\Model\ResourceModel\Category\Collection $categoryCollection, array $data = [] ) { parent::__construct($context, $data); $this->_categoryCollection = $categoryCollection; } /** * Get grouped categories * @return \Magefan\Blog\Model\ResourceModel\Category\Collection */ public function getGroupedChilds() { $k = 'grouped_childs'; if (!$this->hasData($k)) { $array = $this->_categoryCollection ->addActiveFilter() ->addStoreFilter($this->_storeManager->getStore()->getId()) ->setOrder('position') ->getTreeOrderedArray(); foreach ($array as $key => $item) { $maxDepth = $this->maxDepth(); if ($maxDepth > 0 && $item->getLevel() >= $maxDepth) { unset($array[$key]); } } $this->setData($k, $array); } return $this->getData($k); } /** * Retrieve true if need to show posts count * @return int */ public function showPostsCount() { $key = 'show_posts_count'; if (!$this->hasData($key)) { $this->setData($key, (bool)$this->_scopeConfig->getValue( 'mfblog/sidebar/'.$this->_widgetKey.'/show_posts_count', ScopeInterface::SCOPE_STORE )); } return $this->getData($key); } /** * Retrieve categories maximum depth * @return int */ public function maxDepth() { $maxDepth = $this->_scopeConfig->getValue( 'mfblog/sidebar/'.$this->_widgetKey.'/max_depth', ScopeInterface::SCOPE_STORE ); return (int)$maxDepth; } /** * Retrieve block identities * * @return array */ public function getIdentities() { $identities = []; foreach ($this->getGroupedChilds() as $item) { $identities = array_merge($identities, $item->getIdentities()); } return array_unique($identities); } }