![]() 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/mageworx/module-seobase/Model/NextPrev/ |
<?php /** * Copyright © 2015 MageWorx. All rights reserved. * See LICENSE.txt for license details. */ namespace MageWorx\SeoBase\Model\NextPrev; use MageWorx\SeoBase\Helper\Data as HelperData; use Magento\Framework\Registry; use MageWorx\SeoBase\Helper\Url as HelperUrl; use Magento\Framework\View\Layout; /** * SEO Base category next/prev model */ class Category extends \MageWorx\SeoBase\Model\NextPrev { /** * @var \Magento\Framework\Registry */ protected $registry; /** * @var string */ protected $prevUrl = null; /** * @var string */ protected $nextUrl = null; /** * @var bool */ protected $initFlag; /** * @var Layout */ protected $layout; /** * * @param HelperData $helperData * @param HelperUrl $helperUrl * @param Registry $registry * @param Layout $layout */ public function __construct( HelperData $helperData, HelperUrl $helperUrl, Registry $registry, Layout $layout ) { $this->registry = $registry; $this->layout = $layout; parent::__construct($helperData, $helperUrl); } /** * Retrieve next page URL * * @return string */ public function getNextUrl() { return $this->init()->nextUrl; } /** * Retrieve previous page URL * * @return string */ public function getPrevUrl() { return $this->init()->prevUrl; } /** * Retrieve pager block from layout * * @return \Magento\Theme\Block\Html\Pager */ protected function getPager() { if (is_object($this->layout)) { return $this->layout->getBlock('product_list_toolbar_pager'); } } /** * Initialize * * @return this */ protected function init() { if ($this->initFlag) { return $this; } $pager = $this->getPager(); if (!is_object($pager)) { $this->initFlag = true; return $this; } if (!$pager->getCollection()) { $this->initFlag = true; return $this; } if ($pager->getLastPageNum() > 1) { if (!$pager->isLastPage()) { $this->nextUrl = $pager->getNextPageUrl(); } $pageVarName = $pager->getPageVarName(); if ($pager->getCurrentPage() == 2) { $this->prevUrl = $this->removeFirstPage($pager->getPreviousPageUrl(), $pageVarName); } elseif ($pager->getCurrentPage() > 2) { $this->prevUrl = $pager->getPreviousPageUrl(); } } $this->initFlag = true; return $this; } }