Spamworldpro Mini Shell
Spamworldpro


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-htmlsitemap/Model/ResourceModel/Cms/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/old/vendor/mageworx/module-htmlsitemap/Model/ResourceModel/Cms/Page.php
<?php
/**
 * Copyright © 2015 MageWorx. All rights reserved.
 * See LICENSE.txt for license details.
 */

namespace MageWorx\HtmlSitemap\Model\ResourceModel\Cms;

use Magento\Cms\Api\Data\PageInterface;
use Magento\Framework\Model\ResourceModel\Db\Context;
use MageWorx\SeoAll\Helper\LinkFieldResolver;
use Magento\Store\Model\StoreManagerInterface;
use MageWorx\HtmlSitemap\Helper\Data as SitemapHelper;
use MageWorx\HtmlSitemap\Helper\StoreUrl as StoreUrlHelper;

/**
 * HTML Sitemap cms page collection model
 */
class Page extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb
{
    /**
     * @var \Magento\Store\Model\StoreManagerInterface
     */
    protected $storeManager;

    /**
     * @var \MageWorx\HtmlSitemap\Helper\Data
     */
    protected $sitemapHelper;

    /**
     * @var \MageWorx\HtmlSitemap\Helper\StoreUrl
     */
    protected $storeUrlHelper;

    /**
     * @var \MageWorx\SeoAll\Helper\LinkFieldResolver
     */
    protected $linkFieldResolver;

    /**
     * @param \Magento\Framework\Model\ResourceModel\Db\Context $context
     * @param \Magento\Store\Model\StoreManagerInterface $storeManager
     * @param \MageWorx\HtmlSitemap\Helper\Data $sitemapHelper
     * @param \MageWorx\HtmlSitemap\Helper\StoreUrl $storeUrlHelper
     * @param \MageWorx\SeoAll\Helper\LinkFieldResolver $linkFieldResolver
     */
    public function __construct(
        Context $context,
        LinkFieldResolver $linkFieldResolver,
        StoreManagerInterface $storeManager,
        SitemapHelper $sitemapHelper,
        StoreUrlHelper $storeUrlHelper
    ) {

        parent::__construct($context);
        $this->storeManager  = $storeManager;
        $this->sitemapHelper = $sitemapHelper;
        $this->storeUrlHelper = $storeUrlHelper;
        $this->linkFieldResolver = $linkFieldResolver;
    }

    /**
     * Init resource model (catalog/category)
     *
     * @return void
     */
    protected function _construct()
    {
        $this->_init('cms_page', 'page_id');
    }

    /**
     * Retrieve cms page collection array
     *
     * @param null|string|bool|int|\Magento\Store\Model\Store $storeId
     * @return array|bool
     */
    public function getCollection($storeId = null)
    {
        $store = $this->storeManager->getStore($storeId);
        if (!$store) {
            return false;
        }
        $linkField = $this->linkFieldResolver->getLinkField(PageInterface::class, 'page_id');

        $pages = [];

        $select = $this->getConnection()->select()->from(
            ['main_table' => $this->getMainTable()],
            [$this->getIdFieldName(), 'url' => 'identifier', 'title']
        )->join(
            ['store_table' => $this->getTable('cms_page_store')],
            "main_table.{$linkField} = store_table.$linkField",
            []
        )->where(
            'main_table.is_active = 1'
        )->where(
            'main_table.identifier != ?',
            \Magento\Cms\Model\Page::NOROUTE_PAGE_ID
        )->where(
            'main_table.in_html_sitemap = ?',
            1
        )->where(
            'store_table.store_id IN(?)',
            [0, $store->getId()]
        );

        $query = $this->getConnection()->query($select);
        while ($row   = $query->fetch()) {
            $page                  = $this->prepareObject($row, $store->getId());
            $pages[$page->getId()] = $page;
        }

        return $pages;
    }

    /**
     * Prepare page object
     *
     * @param array $data
     * @return \Magento\Framework\Object
     */
    protected function prepareObject(array $data, $storeId)
    {
        $object = new \Magento\Framework\DataObject();
        $object->setId($data[$this->getIdFieldName()]);
        $object->setTitle($data['title']);

        if (!empty($data['url'])) {
            $homePageId = null;
            $homeIdentifier = $this->sitemapHelper->getHomeIdentifier();
            if (strpos($homeIdentifier, '|') !== false) {
                list($homeIdentifier, $homePageId) = explode('|', $homeIdentifier);
            }
            if ($homeIdentifier == $data['url']) {
                $data['url'] = '';
                $object->setUrl($this->trailingSlash($this->storeUrlHelper->getUrl($data['url'], $storeId), true));
            } else {
                $object->setUrl($this->trailingSlash($this->storeUrlHelper->getUrl($data['url'], $storeId)));
            }
        }
        return $object;
    }

    /**
     * Crop or add trailing slash
     *
     * @param string $url
     * @param bool $isHomePage
     * @return string
     */
    protected function trailingSlash($url, $isHomePage = false)
    {
        if ($isHomePage) {
            $trailingSlash = $this->sitemapHelper->getTrailingSlashForHomePage();
        } else {
            $trailingSlash = $this->sitemapHelper->getTrailingSlash();
        }

        if ($trailingSlash == \MageWorx\HtmlSitemap\Model\Source\AddCrop::TRAILING_SLASH_ADD) {
            $url        = rtrim($url);
            $extensions = ['rss', 'html', 'htm', 'xml', 'php'];
            if (substr($url, -1) != '/' && !in_array(substr(strrchr($url, '.'), 1), $extensions)) {
                $url.= '/';
            }
        } elseif ($trailingSlash == \MageWorx\HtmlSitemap\Model\Source\AddCrop::TRAILING_SLASH_CROP) {
            $url = rtrim(rtrim($url), '/');
        }

        return $url;
    }
}

Spamworldpro Mini