![]() 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/Observer/ |
<?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\Observer; use Magento\Framework\Event\ObserverInterface; use Magefan\Blog\Model\Config as BlogConfig; class LayoutGenerateBlocksAfter implements ObserverInterface { /** * @var \Magento\Framework\View\Page\Config */ private $pageConfig; /** * @var BlogConfig */ private $blogConfig; /** * @param \Magento\Framework\View\Page\Config $pageConfig * @param BlogConfig $scopeConfig */ public function __construct( \Magento\Framework\View\Page\Config $pageConfig, BlogConfig $blogConfig ) { $this->pageConfig = $pageConfig; $this->blogConfig = $blogConfig; } /** * Add rel prev and rel next * @param \Magento\Framework\Event\Observer $observer * @return $this|void */ public function execute(\Magento\Framework\Event\Observer $observer) { $availableActions = [ 'blog_archive_view', 'blog_author_view', 'blog_category_view', 'blog_index_index', 'blog_tag_view' ]; $fan = $observer->getEvent()->getFullActionName(); if (!in_array($fan, $availableActions)) { return; } if ('blog_index_index' == $fan) { $displayMode = $this->blogConfig->getConfig( BlogConfig::XML_PATH_HOMEPAGE_DISPLAY_MODE ); if (2 == $displayMode) { return; } } $productListBlock = $observer->getEvent()->getLayout()->getBlock('blog.posts.list'); if (!$productListBlock) { return; } $toolbar = $productListBlock->getToolbarBlock(); $toolbar->setCollection($productListBlock->getPostCollection()); $pagerBlock = $toolbar->getPagerBlock(); if (!($pagerBlock instanceof \Magento\Framework\DataObject)) { return; } if (1 < $pagerBlock->getCurrentPage()) { $this->pageConfig->addRemotePageAsset( $pagerBlock->getPageUrl( $pagerBlock->getCollection()->getCurPage(-1) ), 'link_rel', ['attributes' => ['rel' => 'prev']] ); } if ($pagerBlock->getCurrentPage() < $pagerBlock->getLastPageNum()) { $this->pageConfig->addRemotePageAsset( $pagerBlock->getPageUrl( $pagerBlock->getCollection()->getCurPage(+1) ), 'link_rel', ['attributes' => ['rel' => 'next']] ); } } }