![]() 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/Catalog/Product/ |
<?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\Catalog\Product; use Magento\Catalog\Model\ResourceModel\Product\Collection; use Magento\Framework\View\Element\AbstractBlock; /** * Blog post related posts block */ class RelatedPosts extends \Magefan\Blog\Block\Post\PostList\AbstractList { /** * Prepare posts collection * * @return void */ protected function _preparePostCollection() { $pageSize = (int) $this->_scopeConfig->getValue( 'mfblog/product_page/number_of_related_posts', \Magento\Store\Model\ScopeInterface::SCOPE_STORE ); if (!$pageSize) { $pageSize = 5; } $this->setPageSize($pageSize); parent::_preparePostCollection(); $product = $this->getProduct(); $this->_postCollection->getSelect()->joinLeft( ['rl' => $product->getResource()->getTable('magefan_blog_post_relatedproduct')], 'main_table.post_id = rl.post_id', ['position'] )->where( 'rl.related_id = ?', $product->getId() ); } /** * Retrieve true if Display Related Posts enabled * @return boolean */ public function displayPosts() { return (bool) $this->_scopeConfig->getValue( 'mfblog/product_page/related_posts_enabled', \Magento\Store\Model\ScopeInterface::SCOPE_STORE ); } /** * Retrieve posts instance * * @return \Magefan\Blog\Model\Category */ public function getProduct() { if (!$this->hasData('product')) { $this->setData( 'product', $this->_coreRegistry->registry('current_product') ); } return $this->getData('product'); } /** * Get relevant path to template * * @return string */ public function getTemplate() { $templateName = (string)$this->_scopeConfig->getValue( 'mfblog/product_page/related_posts_template', \Magento\Store\Model\ScopeInterface::SCOPE_STORE ); if ($template = $this->templatePool->getTemplate('blog_post_view_related_post', $templateName)) { $this->_template = $template; } return parent::getTemplate(); } }