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-seobase/Helper/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/old/vendor/mageworx/module-seobase/Helper/Url.php
<?php
/**
 * Copyright © 2015 MageWorx. All rights reserved.
 * See LICENSE.txt for license details.
 */

namespace MageWorx\SeoBase\Helper;

/**
 * SEO Base URL helper
 *
 */
class Url extends \Magento\Framework\App\Helper\AbstractHelper
{
    /**
     * Crop parametrs from URL
     *
     * @param string $url
     * @param array $cropParams
     * @return string
     */
    public function deleteUrlParametrs($url, array $cropParams)
    {
        $parseUrl = parse_url($url);

        if (empty($parseUrl['query'])) {
            return $url;
        }
        $params = [];
        parse_str(html_entity_decode($parseUrl['query']), $params);

        foreach ($cropParams as $cropName) {
            if (array_key_exists($cropName, $params)) {
                unset($params[$cropName]);
            }
        }

        $queryString = '';
        foreach ($params as $name => $value) {
            if (is_array($value)) {
                foreach ($value as $val) {
                    if ($queryString == '') {
                        $queryString = '?' . $name . '=' . $val;
                    } else {
                        $queryString .= '&' . $name . '=' . $val;
                    }
                }
            } else {
                if ($queryString == '') {
                    $queryString = '?' . $name . '=' . $value;
                } else {
                    $queryString .= '&' . $name . '=' . $value;
                }
            }
        }

        $url = $parseUrl['scheme'] . '://' . $parseUrl['host'] . $parseUrl['path'] . $queryString;
        return $url;
    }

    /**
     * Crop all URL params except the set
     *
     * @param string $url
     * @param array $exceptParams
     * @return string
     */
    public function deleteUrlParametrsWithExcept($url, $exceptParams)
    {
        $parseUrl = parse_url($url);

        if (empty($parseUrl['query'])) {
            return $url;
        }
        $params = [];
        parse_str(html_entity_decode($parseUrl['query']), $params);

        foreach ($params as $paramName => $paramValue) {
            if (!in_array($paramName, $exceptParams)) {
                unset($params[$paramName]);
            }
        }

        $queryString = '';
        foreach ($params as $name => $value) {
            $queryString .= $queryString ? '&' : '?';
            $queryString .= $name . '=';
            $queryString .= is_array($value) ? implode(',', $value) : $value;
        }

        $url = $parseUrl['scheme'] . '://' . $parseUrl['host'] . $parseUrl['path'] . $queryString;
        return $url;
    }

    public function deleteAllParametrsFromUrl($url)
    {
        list($cropUrl) = explode('?', $url);
        return $cropUrl;
    }

    /**
     * Escape html entities in url
     *
     * @param string $url
     * @return string
     */
    public function escapeUrl($url)
    {
        return htmlspecialchars($url, ENT_COMPAT, 'UTF-8', false);
    }

    /**
     * Remove first page params
     *
     * @param string $url
     * @param string $pName
     * @return string
     */
    public function removeFirstPage($url, $pName = 'p')
    {
        $pageNum = $this->_request->getParam($pName);

        if ($pageNum == '1') {
            $url = str_replace(
                [   '?' . $pName . '=1&amp;',
                    '?' . $pName . '=1&',
                    '&amp;' . $pName . '=1&amp;',
                    '&' . $pName . '=1&',
                    '?' . $pName . '=1',
                    '&' . $pName . '=1',
                    '&amp;' . $pName . '=1'
                ],
                ['?', '?', '&amp;', '&'],
                $url
            );
        }

        return $url;
    }
}

Spamworldpro Mini