HEX
Server: nginx/1.28.1
System: Linux 10-41-63-61 6.8.0-31-generic #31-Ubuntu SMP PREEMPT_DYNAMIC Sat Apr 20 00:40:06 UTC 2024 x86_64
User: www (1001)
PHP: 7.4.33
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: /www/wwwroot//shop.glgz.tw/system/library/url.php
<?php
/**
 * @package   OpenCart
 * @author    Daniel Kerr
 * @copyright Copyright (c) 2005 - 2017, OpenCart, Ltd. (https://www.opencart.com/)
 * @license   https://opensource.org/licenses/GPL-3.0
 * @author    Daniel Kerr
 * @see       https://www.opencart.com
 */

/**
 * URL class.
 */
class Url {
	/** @var string */
	private $url;
	/** @var Controller[] */
	private $rewrite = array();

	/**
	 * Constructor.
	 *
	 * @param string $url
	 * @param string $ssl Unused
	 */
	public function __construct($url, $ssl = '') {
		$this->url = $url;
	}

	/**
	 *
	 *
	 * @param Controller $rewrite
	 *
	 * @return void
	 */
	public function addRewrite($rewrite) {
		$this->rewrite[] = $rewrite;
	}

	/**
	 *
	 *
	 * @param string          $route
	 * @param string|string[] $args
	 *
	 * @return string
	 */
	public function link($route, $args = '', $auto_admin_token = true) {
		$url = $this->url . 'index.php?route=' . (string)$route;

        // Add user_token to admin link if it's not passed in
        if ($auto_admin_token && is_admin() && $user_token = array_get(session()->data, 'user_token')) {
            if (is_array($args) && !in_array('user_token', $args)) {
                $args['user_token'] = $user_token;
            } else if (!str_contains($args, 'user_token')) {
                $args .= '&user_token=' . $user_token;
            }
        }

		if ($args) {
			if (is_array($args)) {
				$url .= '&amp;' . http_build_query($args);
			} else {
				$url .= str_replace('&', '&amp;', '&' . ltrim($args, '&'));
			}
		}

		foreach ($this->rewrite as $rewrite) {
			$url = $rewrite->rewrite($url);
		}

        if ($route == 'common/home') {
            $url = str_replace('index.php?route=common/home&amp;', '?', $url);
            $url = str_replace('index.php?route=common/home', '', $url);
        }
		return $url;
	}

    public function imageLink($imagePath)
    {
        return 'image/' . $imagePath;
    }

    public function cssLink($cssPath)
    {
        return 'catalog/view/' . $cssPath . '.css';
    }

    public function jsLink($jsPath)
    {
        return 'catalog/view/' . $jsPath . '.js';
    }

    public function getQueries()
    {
        return $this->getQueriesExclude();
    }

    public function getQueriesExclude($queries = [])
    {
        $queries[] = 'route'; // No need to get route
        $results = [];
        foreach (request()->get as $key => $value) {
            if (in_array($key, $queries)) {
                continue;
            }
            if (!empty($value)) {
                $results[$key] = $value;
            }
        }
        return $results;
    }

    public function getQueriesOnly($queries = [])
    {
        $results = [];
        if (!$queries) {
            return $results;
        }

        foreach ($queries as $key) {
            if ($value = array_get(request()->get, $key)) {
                if (!empty($value)) {
                    $results[$key] = $value;
                }
            }
        }
        return $results;
    }
}