149 lines
58 KiB
HTML
149 lines
58 KiB
HTML
|
|
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width">
|
|
|
|
<title>File system\engine\loader.php | OpenCart API API</title>
|
|
<link rel="stylesheet" href="http://localhost\opencart-master/docs/api/assets/main.css">
|
|
<script src="http://localhost\opencart-master/docs/api/assets/main.js" defer></script>
|
|
</head>
|
|
|
|
<body class="layout">
|
|
<div class="layout-aside">
|
|
<div class="menu">
|
|
<div class="menu-section">
|
|
<h3>Namespaces</h3>
|
|
<ul>
|
|
<li class="menuGroup-item active">
|
|
<a href="http://localhost\opencart-master/docs/api/namespace-Opencart.html">Opencart</a>
|
|
<ul>
|
|
<li class="menuGroup-item">
|
|
<a href="http://localhost\opencart-master/docs/api/namespace-Opencart.Admin.html">Admin</a>
|
|
</li>
|
|
<li class="menuGroup-item">
|
|
<a href="http://localhost\opencart-master/docs/api/namespace-Opencart.Catalog.html">Catalog</a>
|
|
</li>
|
|
<li class="menuGroup-item active">
|
|
<a href="http://localhost\opencart-master/docs/api/namespace-Opencart.System.html">System</a>
|
|
<ul>
|
|
<li class="menuGroup-item active">
|
|
<a href="http://localhost\opencart-master/docs/api/namespace-Opencart.System.Engine.html">Engine</a>
|
|
</li>
|
|
<li class="menuGroup-item">
|
|
<a href="http://localhost\opencart-master/docs/api/namespace-Opencart.System.Helper.html">Helper</a>
|
|
</li>
|
|
<li class="menuGroup-item">
|
|
<a href="http://localhost\opencart-master/docs/api/namespace-Opencart.System.Library.html">Library</a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li class="menuGroup-item">
|
|
<a href="http://localhost\opencart-master/docs/api/namespace-none.html">none</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
|
|
<div class="menu-section">
|
|
<h3>Classes</h3>
|
|
<ul>
|
|
<li>
|
|
<a href="http://localhost\opencart-master/docs/api/Opencart.System.Engine.Action.html">
|
|
Action
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<a href="http://localhost\opencart-master/docs/api/Opencart.System.Engine.Autoloader.html">
|
|
Autoloader
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<a href="http://localhost\opencart-master/docs/api/Opencart.System.Engine.Config.html">
|
|
Config
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<a href="http://localhost\opencart-master/docs/api/Opencart.System.Engine.Controller.html">
|
|
Controller
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<a href="http://localhost\opencart-master/docs/api/Opencart.System.Engine.Event.html">
|
|
Event
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<a href="http://localhost\opencart-master/docs/api/Opencart.System.Engine.Factory.html">
|
|
Factory
|
|
</a>
|
|
</li>
|
|
<li class="active">
|
|
<a href="http://localhost\opencart-master/docs/api/Opencart.System.Engine.Loader.html">
|
|
Loader
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<a href="http://localhost\opencart-master/docs/api/Opencart.System.Engine.Model.html">
|
|
Model
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<a href="http://localhost\opencart-master/docs/api/Opencart.System.Engine.Proxy.html">
|
|
Proxy
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<a href="http://localhost\opencart-master/docs/api/Opencart.System.Engine.Registry.html">
|
|
Registry
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="layout-main">
|
|
<div class="layout-navbar">
|
|
<nav class="navbar">
|
|
<div class="navbar-left">
|
|
<ul class="navbar-links">
|
|
<li>
|
|
<a href="http://localhost\opencart-master/docs/api/index.html">Overview</a>
|
|
</li>
|
|
<li>
|
|
|
|
<a href="http://localhost\opencart-master/docs/api/namespace-Opencart.System.Engine.html">Namespace</a>
|
|
|
|
</li>
|
|
<li class="active"><a href="http://localhost\opencart-master/docs/api/Opencart.System.Engine.Loader.html">Class</a></li> <li>
|
|
<a href="http://localhost\opencart-master/docs/api/tree.html">Tree</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div class="navbar-right">
|
|
<div class="search" data-elements="http://localhost\opencart-master/docs/api/assets/elements.js">
|
|
<input class="search-input" placeholder="Search class, function or namespace" autofocus>
|
|
<ul class="search-results"></ul>
|
|
</div>
|
|
</div>
|
|
</nav>
|
|
</div>
|
|
|
|
<div class="layout-content">
|
|
<table class="source"><tr id="1" class="source-line"><td><a class="source-lineNum" href="#1"> 1: </a></td><td><span class="php-tag"><?php
|
|
</span></td></tr><tr id="2" class="source-line"><td><a class="source-lineNum" href="#2"> 2: </a></td><td><span class="php-tag"></span><span class="php-comment">/**
|
|
</span></td></tr><tr id="3" class="source-line"><td><a class="source-lineNum" href="#3"> 3: </a></td><td><span class="php-comment"> * @package OpenCart
|
|
</span></td></tr><tr id="4" class="source-line"><td><a class="source-lineNum" href="#4"> 4: </a></td><td><span class="php-comment"> *
|
|
</span></td></tr><tr id="5" class="source-line"><td><a class="source-lineNum" href="#5"> 5: </a></td><td><span class="php-comment"> * @author Daniel Kerr
|
|
</span></td></tr><tr id="6" class="source-line"><td><a class="source-lineNum" href="#6"> 6: </a></td><td><span class="php-comment"> * @copyright Copyright (c) 2005 - 2022, OpenCart, Ltd. (https://www.opencart.com/)
|
|
</span></td></tr><tr id="7" class="source-line"><td><a class="source-lineNum" href="#7"> 7: </a></td><td><span class="php-comment"> * @license https://opensource.org/licenses/GPL-3.0
|
|
</span></td></tr><tr id="8" class="source-line"><td><a class="source-lineNum" href="#8"> 8: </a></td><td><span class="php-comment"> *
|
|
</span></td></tr><tr id="9" class="source-line"><td><a class="source-lineNum" href="#9"> 9: </a></td><td><span class="php-comment"> * @see https://www.opencart.com
|
|
</span></td></tr><tr id="10" class="source-line"><td><a class="source-lineNum" href="#10"> 10: </a></td><td><span class="php-comment"> */</span>
|
|
</td></tr><tr id="11" class="source-line"><td><a class="source-lineNum" href="#11"> 11: </a></td><td><span class="php-kw">namespace</span> Opencart\System\Engine;
|
|
</td></tr><tr id="12" class="source-line"><td><a class="source-lineNum" href="#12"> 12: </a></td><td><span class="php-comment">/**
|
|
</span></td></tr><tr id="13" class="source-line"><td><a class="source-lineNum" href="#13"> 13: </a></td><td><span class="php-comment"> * Class Loader
|
|
</span></td></tr><tr id="14" class="source-line"><td><a class="source-lineNum" href="#14"> 14: </a></td><td><span class="php-comment"> *
|
|
</span></td></tr><tr id="15" class="source-line"><td><a class="source-lineNum" href="#15"> 15: </a></td><td><span class="php-comment"> * @mixin \Opencart\System\Engine\Registry
|
|
</span></td></tr><tr id="16" class="source-line"><td><a class="source-lineNum" href="#16"> 16: </a></td><td><span class="php-comment"> */</span>
|
|
</td></tr><tr id="17" class="source-line"><td><a class="source-lineNum" href="#17"> 17: </a></td><td><span class="php-kw">class</span> Loader {
|
|
</td></tr><tr id="18" class="source-line"><td><a class="source-lineNum" href="#18"> 18: </a></td><td> <span class="php-comment">/**
|
|
</span></td></tr><tr id="19" class="source-line"><td><a class="source-lineNum" href="#19"> 19: </a></td><td><span class="php-comment"> * @var \Opencart\System\Engine\Registry
|
|
</span></td></tr><tr id="20" class="source-line"><td><a class="source-lineNum" href="#20"> 20: </a></td><td><span class="php-comment"> */</span>
|
|
</td></tr><tr id="21" class="source-line"><td><a class="source-lineNum" href="#21"> 21: </a></td><td> <span class="php-kw">protected</span> \Opencart\System\Engine\Registry <span class="php-var">$registry</span>;
|
|
</td></tr><tr id="22" class="source-line"><td><a class="source-lineNum" href="#22"> 22: </a></td><td>
|
|
</td></tr><tr id="23" class="source-line"><td><a class="source-lineNum" href="#23"> 23: </a></td><td> <span class="php-comment">/**
|
|
</span></td></tr><tr id="24" class="source-line"><td><a class="source-lineNum" href="#24"> 24: </a></td><td><span class="php-comment"> * Constructor
|
|
</span></td></tr><tr id="25" class="source-line"><td><a class="source-lineNum" href="#25"> 25: </a></td><td><span class="php-comment"> *
|
|
</span></td></tr><tr id="26" class="source-line"><td><a class="source-lineNum" href="#26"> 26: </a></td><td><span class="php-comment"> * @param \Opencart\System\Engine\Registry $registry
|
|
</span></td></tr><tr id="27" class="source-line"><td><a class="source-lineNum" href="#27"> 27: </a></td><td><span class="php-comment"> */</span>
|
|
</td></tr><tr id="28" class="source-line"><td><a class="source-lineNum" href="#28"> 28: </a></td><td> <span class="php-kw">public</span> <span class="php-kw">function</span> __construct(\Opencart\System\Engine\Registry <span class="php-var">$registry</span>) {
|
|
</td></tr><tr id="29" class="source-line"><td><a class="source-lineNum" href="#29"> 29: </a></td><td> <span class="php-var">$this</span>->registry = <span class="php-var">$registry</span>;
|
|
</td></tr><tr id="30" class="source-line"><td><a class="source-lineNum" href="#30"> 30: </a></td><td> }
|
|
</td></tr><tr id="31" class="source-line"><td><a class="source-lineNum" href="#31"> 31: </a></td><td>
|
|
</td></tr><tr id="32" class="source-line"><td><a class="source-lineNum" href="#32"> 32: </a></td><td> <span class="php-comment">/**
|
|
</span></td></tr><tr id="33" class="source-line"><td><a class="source-lineNum" href="#33"> 33: </a></td><td><span class="php-comment"> * __get
|
|
</span></td></tr><tr id="34" class="source-line"><td><a class="source-lineNum" href="#34"> 34: </a></td><td><span class="php-comment"> *
|
|
</span></td></tr><tr id="35" class="source-line"><td><a class="source-lineNum" href="#35"> 35: </a></td><td><span class="php-comment"> * https://www.php.net/manual/en/language.oop5.overloading.php#object.get
|
|
</span></td></tr><tr id="36" class="source-line"><td><a class="source-lineNum" href="#36"> 36: </a></td><td><span class="php-comment"> *
|
|
</span></td></tr><tr id="37" class="source-line"><td><a class="source-lineNum" href="#37"> 37: </a></td><td><span class="php-comment"> * @param string $key
|
|
</span></td></tr><tr id="38" class="source-line"><td><a class="source-lineNum" href="#38"> 38: </a></td><td><span class="php-comment"> *
|
|
</span></td></tr><tr id="39" class="source-line"><td><a class="source-lineNum" href="#39"> 39: </a></td><td><span class="php-comment"> * @return object
|
|
</span></td></tr><tr id="40" class="source-line"><td><a class="source-lineNum" href="#40"> 40: </a></td><td><span class="php-comment"> */</span>
|
|
</td></tr><tr id="41" class="source-line"><td><a class="source-lineNum" href="#41"> 41: </a></td><td> <span class="php-kw">public</span> <span class="php-kw">function</span> __get(string <span class="php-var">$key</span>): object {
|
|
</td></tr><tr id="42" class="source-line"><td><a class="source-lineNum" href="#42"> 42: </a></td><td> <span class="php-kw">return</span> <span class="php-var">$this</span>->registry->get(<span class="php-var">$key</span>);
|
|
</td></tr><tr id="43" class="source-line"><td><a class="source-lineNum" href="#43"> 43: </a></td><td> }
|
|
</td></tr><tr id="44" class="source-line"><td><a class="source-lineNum" href="#44"> 44: </a></td><td>
|
|
</td></tr><tr id="45" class="source-line"><td><a class="source-lineNum" href="#45"> 45: </a></td><td> <span class="php-comment">/**
|
|
</span></td></tr><tr id="46" class="source-line"><td><a class="source-lineNum" href="#46"> 46: </a></td><td><span class="php-comment"> * __set
|
|
</span></td></tr><tr id="47" class="source-line"><td><a class="source-lineNum" href="#47"> 47: </a></td><td><span class="php-comment"> *
|
|
</span></td></tr><tr id="48" class="source-line"><td><a class="source-lineNum" href="#48"> 48: </a></td><td><span class="php-comment"> * https://www.php.net/manual/en/language.oop5.overloading.php#object.set
|
|
</span></td></tr><tr id="49" class="source-line"><td><a class="source-lineNum" href="#49"> 49: </a></td><td><span class="php-comment"> *
|
|
</span></td></tr><tr id="50" class="source-line"><td><a class="source-lineNum" href="#50"> 50: </a></td><td><span class="php-comment"> * @param string $key
|
|
</span></td></tr><tr id="51" class="source-line"><td><a class="source-lineNum" href="#51"> 51: </a></td><td><span class="php-comment"> * @param object $value
|
|
</span></td></tr><tr id="52" class="source-line"><td><a class="source-lineNum" href="#52"> 52: </a></td><td><span class="php-comment"> *
|
|
</span></td></tr><tr id="53" class="source-line"><td><a class="source-lineNum" href="#53"> 53: </a></td><td><span class="php-comment"> * @return void
|
|
</span></td></tr><tr id="54" class="source-line"><td><a class="source-lineNum" href="#54"> 54: </a></td><td><span class="php-comment"> */</span>
|
|
</td></tr><tr id="55" class="source-line"><td><a class="source-lineNum" href="#55"> 55: </a></td><td> <span class="php-kw">public</span> <span class="php-kw">function</span> __set(string <span class="php-var">$key</span>, object <span class="php-var">$value</span>): void {
|
|
</td></tr><tr id="56" class="source-line"><td><a class="source-lineNum" href="#56"> 56: </a></td><td> <span class="php-var">$this</span>->registry->set(<span class="php-var">$key</span>, <span class="php-var">$value</span>);
|
|
</td></tr><tr id="57" class="source-line"><td><a class="source-lineNum" href="#57"> 57: </a></td><td> }
|
|
</td></tr><tr id="58" class="source-line"><td><a class="source-lineNum" href="#58"> 58: </a></td><td>
|
|
</td></tr><tr id="59" class="source-line"><td><a class="source-lineNum" href="#59"> 59: </a></td><td> <span class="php-comment">/**
|
|
</span></td></tr><tr id="60" class="source-line"><td><a class="source-lineNum" href="#60"> 60: </a></td><td><span class="php-comment"> * Controller
|
|
</span></td></tr><tr id="61" class="source-line"><td><a class="source-lineNum" href="#61"> 61: </a></td><td><span class="php-comment"> *
|
|
</span></td></tr><tr id="62" class="source-line"><td><a class="source-lineNum" href="#62"> 62: </a></td><td><span class="php-comment"> * https://wiki.php.net/rfc/variadics
|
|
</span></td></tr><tr id="63" class="source-line"><td><a class="source-lineNum" href="#63"> 63: </a></td><td><span class="php-comment"> *
|
|
</span></td></tr><tr id="64" class="source-line"><td><a class="source-lineNum" href="#64"> 64: </a></td><td><span class="php-comment"> * @param string $route
|
|
</span></td></tr><tr id="65" class="source-line"><td><a class="source-lineNum" href="#65"> 65: </a></td><td><span class="php-comment"> * @param mixed $args
|
|
</span></td></tr><tr id="66" class="source-line"><td><a class="source-lineNum" href="#66"> 66: </a></td><td><span class="php-comment"> *
|
|
</span></td></tr><tr id="67" class="source-line"><td><a class="source-lineNum" href="#67"> 67: </a></td><td><span class="php-comment"> * @return mixed
|
|
</span></td></tr><tr id="68" class="source-line"><td><a class="source-lineNum" href="#68"> 68: </a></td><td><span class="php-comment"> */</span>
|
|
</td></tr><tr id="69" class="source-line"><td><a class="source-lineNum" href="#69"> 69: </a></td><td> <span class="php-kw">public</span> <span class="php-kw">function</span> controller(string <span class="php-var">$route</span>, ...<span class="php-var">$args</span>) {
|
|
</td></tr><tr id="70" class="source-line"><td><a class="source-lineNum" href="#70"> 70: </a></td><td> <span class="php-comment">// Sanitize the call</span>
|
|
</td></tr><tr id="71" class="source-line"><td><a class="source-lineNum" href="#71"> 71: </a></td><td> <span class="php-var">$route</span> = preg_replace(<span class="php-str">'/[^a-zA-Z0-9_|\/\.]/'</span>, <span class="php-str">''</span>, str_replace(<span class="php-str">'|'</span>, <span class="php-str">'.'</span>, <span class="php-var">$route</span>));
|
|
</td></tr><tr id="72" class="source-line"><td><a class="source-lineNum" href="#72"> 72: </a></td><td>
|
|
</td></tr><tr id="73" class="source-line"><td><a class="source-lineNum" href="#73"> 73: </a></td><td> <span class="php-var">$trigger</span> = <span class="php-var">$route</span>;
|
|
</td></tr><tr id="74" class="source-line"><td><a class="source-lineNum" href="#74"> 74: </a></td><td>
|
|
</td></tr><tr id="75" class="source-line"><td><a class="source-lineNum" href="#75"> 75: </a></td><td> <span class="php-comment">// Trigger the pre events</span>
|
|
</td></tr><tr id="76" class="source-line"><td><a class="source-lineNum" href="#76"> 76: </a></td><td> <span class="php-var">$this</span>->event->trigger(<span class="php-str">'controller/'</span> . <span class="php-var">$trigger</span> . <span class="php-str">'/before'</span>, [&<span class="php-var">$route</span>, &<span class="php-var">$args</span>]);
|
|
</td></tr><tr id="77" class="source-line"><td><a class="source-lineNum" href="#77"> 77: </a></td><td>
|
|
</td></tr><tr id="78" class="source-line"><td><a class="source-lineNum" href="#78"> 78: </a></td><td> <span class="php-comment">// Keep the original trigger</span>
|
|
</td></tr><tr id="79" class="source-line"><td><a class="source-lineNum" href="#79"> 79: </a></td><td> <span class="php-var">$action</span> = <span class="php-kw">new</span> \Opencart\System\Engine\Action(<span class="php-var">$route</span>);
|
|
</td></tr><tr id="80" class="source-line"><td><a class="source-lineNum" href="#80"> 80: </a></td><td>
|
|
</td></tr><tr id="81" class="source-line"><td><a class="source-lineNum" href="#81"> 81: </a></td><td> <span class="php-kw">while</span> (<span class="php-var">$action</span>) {
|
|
</td></tr><tr id="82" class="source-line"><td><a class="source-lineNum" href="#82"> 82: </a></td><td> <span class="php-comment">// Execute action</span>
|
|
</td></tr><tr id="83" class="source-line"><td><a class="source-lineNum" href="#83"> 83: </a></td><td> <span class="php-var">$output</span> = <span class="php-var">$action</span>->execute(<span class="php-var">$this</span>->registry, <span class="php-var">$args</span>);
|
|
</td></tr><tr id="84" class="source-line"><td><a class="source-lineNum" href="#84"> 84: </a></td><td>
|
|
</td></tr><tr id="85" class="source-line"><td><a class="source-lineNum" href="#85"> 85: </a></td><td> <span class="php-comment">// Make action a non-object so it's not infinitely looping</span>
|
|
</td></tr><tr id="86" class="source-line"><td><a class="source-lineNum" href="#86"> 86: </a></td><td> <span class="php-var">$action</span> = <span class="php-str">''</span>;
|
|
</td></tr><tr id="87" class="source-line"><td><a class="source-lineNum" href="#87"> 87: </a></td><td>
|
|
</td></tr><tr id="88" class="source-line"><td><a class="source-lineNum" href="#88"> 88: </a></td><td> <span class="php-comment">// Action object returned then we keep the loop going</span>
|
|
</td></tr><tr id="89" class="source-line"><td><a class="source-lineNum" href="#89"> 89: </a></td><td> <span class="php-kw">if</span> (<span class="php-var">$output</span> <span class="php-kw">instanceof</span> \Opencart\System\Engine\Action) {
|
|
</td></tr><tr id="90" class="source-line"><td><a class="source-lineNum" href="#90"> 90: </a></td><td> <span class="php-var">$action</span> = <span class="php-var">$output</span>;
|
|
</td></tr><tr id="91" class="source-line"><td><a class="source-lineNum" href="#91"> 91: </a></td><td> }
|
|
</td></tr><tr id="92" class="source-line"><td><a class="source-lineNum" href="#92"> 92: </a></td><td> }
|
|
</td></tr><tr id="93" class="source-line"><td><a class="source-lineNum" href="#93"> 93: </a></td><td>
|
|
</td></tr><tr id="94" class="source-line"><td><a class="source-lineNum" href="#94"> 94: </a></td><td> <span class="php-comment">// Trigger the post events</span>
|
|
</td></tr><tr id="95" class="source-line"><td><a class="source-lineNum" href="#95"> 95: </a></td><td> <span class="php-var">$this</span>->event->trigger(<span class="php-str">'controller/'</span> . <span class="php-var">$trigger</span> . <span class="php-str">'/after'</span>, [&<span class="php-var">$route</span>, &<span class="php-var">$args</span>, &<span class="php-var">$output</span>]);
|
|
</td></tr><tr id="96" class="source-line"><td><a class="source-lineNum" href="#96"> 96: </a></td><td>
|
|
</td></tr><tr id="97" class="source-line"><td><a class="source-lineNum" href="#97"> 97: </a></td><td> <span class="php-kw">return</span> <span class="php-var">$output</span>;
|
|
</td></tr><tr id="98" class="source-line"><td><a class="source-lineNum" href="#98"> 98: </a></td><td> }
|
|
</td></tr><tr id="99" class="source-line"><td><a class="source-lineNum" href="#99"> 99: </a></td><td>
|
|
</td></tr><tr id="100" class="source-line"><td><a class="source-lineNum" href="#100">100: </a></td><td> <span class="php-comment">/**
|
|
</span></td></tr><tr id="101" class="source-line"><td><a class="source-lineNum" href="#101">101: </a></td><td><span class="php-comment"> * Model
|
|
</span></td></tr><tr id="102" class="source-line"><td><a class="source-lineNum" href="#102">102: </a></td><td><span class="php-comment"> *
|
|
</span></td></tr><tr id="103" class="source-line"><td><a class="source-lineNum" href="#103">103: </a></td><td><span class="php-comment"> * @param string $route
|
|
</span></td></tr><tr id="104" class="source-line"><td><a class="source-lineNum" href="#104">104: </a></td><td><span class="php-comment"> *
|
|
</span></td></tr><tr id="105" class="source-line"><td><a class="source-lineNum" href="#105">105: </a></td><td><span class="php-comment"> * @return void
|
|
</span></td></tr><tr id="106" class="source-line"><td><a class="source-lineNum" href="#106">106: </a></td><td><span class="php-comment"> */</span>
|
|
</td></tr><tr id="107" class="source-line"><td><a class="source-lineNum" href="#107">107: </a></td><td> <span class="php-kw">public</span> <span class="php-kw">function</span> model(string <span class="php-var">$route</span>): void {
|
|
</td></tr><tr id="108" class="source-line"><td><a class="source-lineNum" href="#108">108: </a></td><td> <span class="php-comment">// Sanitize the call</span>
|
|
</td></tr><tr id="109" class="source-line"><td><a class="source-lineNum" href="#109">109: </a></td><td> <span class="php-var">$route</span> = preg_replace(<span class="php-str">'/[^a-zA-Z0-9_\/]/'</span>, <span class="php-str">''</span>, <span class="php-var">$route</span>);
|
|
</td></tr><tr id="110" class="source-line"><td><a class="source-lineNum" href="#110">110: </a></td><td>
|
|
</td></tr><tr id="111" class="source-line"><td><a class="source-lineNum" href="#111">111: </a></td><td> <span class="php-comment">// Create a new key to store the model object</span>
|
|
</td></tr><tr id="112" class="source-line"><td><a class="source-lineNum" href="#112">112: </a></td><td> <span class="php-var">$key</span> = <span class="php-str">'model_'</span> . str_replace(<span class="php-str">'/'</span>, <span class="php-str">'_'</span>, <span class="php-var">$route</span>);
|
|
</td></tr><tr id="113" class="source-line"><td><a class="source-lineNum" href="#113">113: </a></td><td>
|
|
</td></tr><tr id="114" class="source-line"><td><a class="source-lineNum" href="#114">114: </a></td><td> <span class="php-kw">if</span> (!<span class="php-var">$this</span>->registry->has(<span class="php-var">$key</span>)) {
|
|
</td></tr><tr id="115" class="source-line"><td><a class="source-lineNum" href="#115">115: </a></td><td> <span class="php-comment">// Converting a route path to a class name</span>
|
|
</td></tr><tr id="116" class="source-line"><td><a class="source-lineNum" href="#116">116: </a></td><td> <span class="php-var">$class</span> = <span class="php-str">'Opencart\\'</span> . <span class="php-var">$this</span>->config->get(<span class="php-str">'application'</span>) . <span class="php-str">'\Model\\'</span> . str_replace([<span class="php-str">'_'</span>, <span class="php-str">'/'</span>], [<span class="php-str">''</span>, <span class="php-str">'\\'</span>], ucwords(<span class="php-var">$route</span>, <span class="php-str">'_/'</span>));
|
|
</td></tr><tr id="117" class="source-line"><td><a class="source-lineNum" href="#117">117: </a></td><td>
|
|
</td></tr><tr id="118" class="source-line"><td><a class="source-lineNum" href="#118">118: </a></td><td> <span class="php-kw">if</span> (class_exists(<span class="php-var">$class</span>)) {
|
|
</td></tr><tr id="119" class="source-line"><td><a class="source-lineNum" href="#119">119: </a></td><td> <span class="php-var">$proxy</span> = <span class="php-kw">new</span> \Opencart\System\Engine\Proxy();
|
|
</td></tr><tr id="120" class="source-line"><td><a class="source-lineNum" href="#120">120: </a></td><td>
|
|
</td></tr><tr id="121" class="source-line"><td><a class="source-lineNum" href="#121">121: </a></td><td> <span class="php-kw">foreach</span> (get_class_methods(<span class="php-var">$class</span>) <span class="php-kw">as</span> <span class="php-var">$method</span>) {
|
|
</td></tr><tr id="122" class="source-line"><td><a class="source-lineNum" href="#122">122: </a></td><td> <span class="php-var">$reflection</span> = <span class="php-kw">new</span> \ReflectionMethod(<span class="php-var">$class</span>, <span class="php-var">$method</span>);
|
|
</td></tr><tr id="123" class="source-line"><td><a class="source-lineNum" href="#123">123: </a></td><td>
|
|
</td></tr><tr id="124" class="source-line"><td><a class="source-lineNum" href="#124">124: </a></td><td> <span class="php-kw">if</span> ((substr(<span class="php-var">$method</span>, <span class="php-num">0</span>, <span class="php-num">2</span>) != <span class="php-str">'__'</span>) && <span class="php-var">$reflection</span>->isPublic()) {
|
|
</td></tr><tr id="125" class="source-line"><td><a class="source-lineNum" href="#125">125: </a></td><td> <span class="php-comment">// https://wiki.php.net/rfc/variadics</span>
|
|
</td></tr><tr id="126" class="source-line"><td><a class="source-lineNum" href="#126">126: </a></td><td> <span class="php-var">$proxy</span>->{<span class="php-var">$method</span>} = <span class="php-kw">function</span>(&...<span class="php-var">$args</span>) <span class="php-kw">use</span> (<span class="php-var">$route</span>, <span class="php-var">$method</span>) {
|
|
</td></tr><tr id="127" class="source-line"><td><a class="source-lineNum" href="#127">127: </a></td><td> <span class="php-var">$route</span> = <span class="php-var">$route</span> . <span class="php-str">'/'</span> . <span class="php-var">$method</span>;
|
|
</td></tr><tr id="128" class="source-line"><td><a class="source-lineNum" href="#128">128: </a></td><td>
|
|
</td></tr><tr id="129" class="source-line"><td><a class="source-lineNum" href="#129">129: </a></td><td> <span class="php-var">$trigger</span> = <span class="php-var">$route</span>;
|
|
</td></tr><tr id="130" class="source-line"><td><a class="source-lineNum" href="#130">130: </a></td><td>
|
|
</td></tr><tr id="131" class="source-line"><td><a class="source-lineNum" href="#131">131: </a></td><td> <span class="php-comment">// Trigger the pre events</span>
|
|
</td></tr><tr id="132" class="source-line"><td><a class="source-lineNum" href="#132">132: </a></td><td> <span class="php-var">$this</span>->event->trigger(<span class="php-str">'model/'</span> . <span class="php-var">$trigger</span> . <span class="php-str">'/before'</span>, [&<span class="php-var">$route</span>, &<span class="php-var">$args</span>]);
|
|
</td></tr><tr id="133" class="source-line"><td><a class="source-lineNum" href="#133">133: </a></td><td>
|
|
</td></tr><tr id="134" class="source-line"><td><a class="source-lineNum" href="#134">134: </a></td><td> <span class="php-comment">// Find last `/` so we can remove and find the method</span>
|
|
</td></tr><tr id="135" class="source-line"><td><a class="source-lineNum" href="#135">135: </a></td><td> <span class="php-var">$pos</span> = strrpos(<span class="php-var">$route</span>, <span class="php-str">'/'</span>);
|
|
</td></tr><tr id="136" class="source-line"><td><a class="source-lineNum" href="#136">136: </a></td><td>
|
|
</td></tr><tr id="137" class="source-line"><td><a class="source-lineNum" href="#137">137: </a></td><td> <span class="php-var">$class</span> = substr(<span class="php-var">$route</span>, <span class="php-num">0</span>, <span class="php-var">$pos</span>);
|
|
</td></tr><tr id="138" class="source-line"><td><a class="source-lineNum" href="#138">138: </a></td><td> <span class="php-var">$method</span> = substr(<span class="php-var">$route</span>, <span class="php-var">$pos</span> + <span class="php-num">1</span>);
|
|
</td></tr><tr id="139" class="source-line"><td><a class="source-lineNum" href="#139">139: </a></td><td>
|
|
</td></tr><tr id="140" class="source-line"><td><a class="source-lineNum" href="#140">140: </a></td><td> <span class="php-comment">// Create a new key to store the model object</span>
|
|
</td></tr><tr id="141" class="source-line"><td><a class="source-lineNum" href="#141">141: </a></td><td> <span class="php-var">$key</span> = <span class="php-str">'callback_'</span> . str_replace(<span class="php-str">'/'</span>, <span class="php-str">'_'</span>, <span class="php-var">$class</span>);
|
|
</td></tr><tr id="142" class="source-line"><td><a class="source-lineNum" href="#142">142: </a></td><td>
|
|
</td></tr><tr id="143" class="source-line"><td><a class="source-lineNum" href="#143">143: </a></td><td> <span class="php-kw">if</span> (!<span class="php-var">$this</span>->registry->has(<span class="php-var">$key</span>)) {
|
|
</td></tr><tr id="144" class="source-line"><td><a class="source-lineNum" href="#144">144: </a></td><td> <span class="php-comment">// Initialize the class</span>
|
|
</td></tr><tr id="145" class="source-line"><td><a class="source-lineNum" href="#145">145: </a></td><td> <span class="php-var">$model</span> = <span class="php-var">$this</span>->factory->model(<span class="php-var">$class</span>);
|
|
</td></tr><tr id="146" class="source-line"><td><a class="source-lineNum" href="#146">146: </a></td><td>
|
|
</td></tr><tr id="147" class="source-line"><td><a class="source-lineNum" href="#147">147: </a></td><td> <span class="php-comment">// Store object</span>
|
|
</td></tr><tr id="148" class="source-line"><td><a class="source-lineNum" href="#148">148: </a></td><td> <span class="php-var">$this</span>->registry->set(<span class="php-var">$key</span>, <span class="php-var">$model</span>);
|
|
</td></tr><tr id="149" class="source-line"><td><a class="source-lineNum" href="#149">149: </a></td><td> } <span class="php-kw">else</span> {
|
|
</td></tr><tr id="150" class="source-line"><td><a class="source-lineNum" href="#150">150: </a></td><td> <span class="php-var">$model</span> = <span class="php-var">$this</span>->registry->get(<span class="php-var">$key</span>);
|
|
</td></tr><tr id="151" class="source-line"><td><a class="source-lineNum" href="#151">151: </a></td><td> }
|
|
</td></tr><tr id="152" class="source-line"><td><a class="source-lineNum" href="#152">152: </a></td><td>
|
|
</td></tr><tr id="153" class="source-line"><td><a class="source-lineNum" href="#153">153: </a></td><td> <span class="php-var">$callable</span> = [<span class="php-var">$model</span>, <span class="php-var">$method</span>];
|
|
</td></tr><tr id="154" class="source-line"><td><a class="source-lineNum" href="#154">154: </a></td><td>
|
|
</td></tr><tr id="155" class="source-line"><td><a class="source-lineNum" href="#155">155: </a></td><td> <span class="php-kw">if</span> (is_callable(<span class="php-var">$callable</span>)) {
|
|
</td></tr><tr id="156" class="source-line"><td><a class="source-lineNum" href="#156">156: </a></td><td> <span class="php-var">$output</span> = <span class="php-var">$callable</span>(...<span class="php-var">$args</span>);
|
|
</td></tr><tr id="157" class="source-line"><td><a class="source-lineNum" href="#157">157: </a></td><td> } <span class="php-kw">else</span> {
|
|
</td></tr><tr id="158" class="source-line"><td><a class="source-lineNum" href="#158">158: </a></td><td> <span class="php-kw">throw</span> <span class="php-kw">new</span> \Exception(<span class="php-str">'Error: Could not call model/'</span> . <span class="php-var">$route</span> . <span class="php-str">'!'</span>);
|
|
</td></tr><tr id="159" class="source-line"><td><a class="source-lineNum" href="#159">159: </a></td><td> }
|
|
</td></tr><tr id="160" class="source-line"><td><a class="source-lineNum" href="#160">160: </a></td><td>
|
|
</td></tr><tr id="161" class="source-line"><td><a class="source-lineNum" href="#161">161: </a></td><td> <span class="php-comment">// Trigger the post events</span>
|
|
</td></tr><tr id="162" class="source-line"><td><a class="source-lineNum" href="#162">162: </a></td><td> <span class="php-var">$this</span>->event->trigger(<span class="php-str">'model/'</span> . <span class="php-var">$trigger</span> . <span class="php-str">'/after'</span>, [&<span class="php-var">$route</span>, &<span class="php-var">$args</span>, &<span class="php-var">$output</span>]);
|
|
</td></tr><tr id="163" class="source-line"><td><a class="source-lineNum" href="#163">163: </a></td><td>
|
|
</td></tr><tr id="164" class="source-line"><td><a class="source-lineNum" href="#164">164: </a></td><td> <span class="php-kw">return</span> <span class="php-var">$output</span>;
|
|
</td></tr><tr id="165" class="source-line"><td><a class="source-lineNum" href="#165">165: </a></td><td> };
|
|
</td></tr><tr id="166" class="source-line"><td><a class="source-lineNum" href="#166">166: </a></td><td> }
|
|
</td></tr><tr id="167" class="source-line"><td><a class="source-lineNum" href="#167">167: </a></td><td> }
|
|
</td></tr><tr id="168" class="source-line"><td><a class="source-lineNum" href="#168">168: </a></td><td>
|
|
</td></tr><tr id="169" class="source-line"><td><a class="source-lineNum" href="#169">169: </a></td><td> <span class="php-var">$this</span>->registry->set(<span class="php-var">$key</span>, <span class="php-var">$proxy</span>);
|
|
</td></tr><tr id="170" class="source-line"><td><a class="source-lineNum" href="#170">170: </a></td><td> } <span class="php-kw">else</span> {
|
|
</td></tr><tr id="171" class="source-line"><td><a class="source-lineNum" href="#171">171: </a></td><td> <span class="php-kw">throw</span> <span class="php-kw">new</span> \Exception(<span class="php-str">'Error: Could not load model '</span> . <span class="php-var">$class</span> . <span class="php-str">'!'</span>);
|
|
</td></tr><tr id="172" class="source-line"><td><a class="source-lineNum" href="#172">172: </a></td><td> }
|
|
</td></tr><tr id="173" class="source-line"><td><a class="source-lineNum" href="#173">173: </a></td><td> }
|
|
</td></tr><tr id="174" class="source-line"><td><a class="source-lineNum" href="#174">174: </a></td><td> }
|
|
</td></tr><tr id="175" class="source-line"><td><a class="source-lineNum" href="#175">175: </a></td><td>
|
|
</td></tr><tr id="176" class="source-line"><td><a class="source-lineNum" href="#176">176: </a></td><td> <span class="php-comment">/**
|
|
</span></td></tr><tr id="177" class="source-line"><td><a class="source-lineNum" href="#177">177: </a></td><td><span class="php-comment"> * View
|
|
</span></td></tr><tr id="178" class="source-line"><td><a class="source-lineNum" href="#178">178: </a></td><td><span class="php-comment"> *
|
|
</span></td></tr><tr id="179" class="source-line"><td><a class="source-lineNum" href="#179">179: </a></td><td><span class="php-comment"> * Loads the template file and generates the html code.
|
|
</span></td></tr><tr id="180" class="source-line"><td><a class="source-lineNum" href="#180">180: </a></td><td><span class="php-comment"> *
|
|
</span></td></tr><tr id="181" class="source-line"><td><a class="source-lineNum" href="#181">181: </a></td><td><span class="php-comment"> * @param string $route
|
|
</span></td></tr><tr id="182" class="source-line"><td><a class="source-lineNum" href="#182">182: </a></td><td><span class="php-comment"> * @param array<string, mixed> $data
|
|
</span></td></tr><tr id="183" class="source-line"><td><a class="source-lineNum" href="#183">183: </a></td><td><span class="php-comment"> * @param string $code
|
|
</span></td></tr><tr id="184" class="source-line"><td><a class="source-lineNum" href="#184">184: </a></td><td><span class="php-comment"> *
|
|
</span></td></tr><tr id="185" class="source-line"><td><a class="source-lineNum" href="#185">185: </a></td><td><span class="php-comment"> * @return string
|
|
</span></td></tr><tr id="186" class="source-line"><td><a class="source-lineNum" href="#186">186: </a></td><td><span class="php-comment"> */</span>
|
|
</td></tr><tr id="187" class="source-line"><td><a class="source-lineNum" href="#187">187: </a></td><td> <span class="php-kw">public</span> <span class="php-kw">function</span> view(string <span class="php-var">$route</span>, <span class="php-kw">array</span> <span class="php-var">$data</span> = [], string <span class="php-var">$code</span> = <span class="php-str">''</span>): string {
|
|
</td></tr><tr id="188" class="source-line"><td><a class="source-lineNum" href="#188">188: </a></td><td> <span class="php-comment">// Sanitize the call</span>
|
|
</td></tr><tr id="189" class="source-line"><td><a class="source-lineNum" href="#189">189: </a></td><td> <span class="php-var">$route</span> = preg_replace(<span class="php-str">'/[^a-zA-Z0-9_\/]/'</span>, <span class="php-str">''</span>, <span class="php-var">$route</span>);
|
|
</td></tr><tr id="190" class="source-line"><td><a class="source-lineNum" href="#190">190: </a></td><td>
|
|
</td></tr><tr id="191" class="source-line"><td><a class="source-lineNum" href="#191">191: </a></td><td> <span class="php-var">$trigger</span> = <span class="php-var">$route</span>;
|
|
</td></tr><tr id="192" class="source-line"><td><a class="source-lineNum" href="#192">192: </a></td><td>
|
|
</td></tr><tr id="193" class="source-line"><td><a class="source-lineNum" href="#193">193: </a></td><td> <span class="php-var">$output</span> = <span class="php-str">''</span>;
|
|
</td></tr><tr id="194" class="source-line"><td><a class="source-lineNum" href="#194">194: </a></td><td>
|
|
</td></tr><tr id="195" class="source-line"><td><a class="source-lineNum" href="#195">195: </a></td><td> <span class="php-comment">// Trigger the pre events</span>
|
|
</td></tr><tr id="196" class="source-line"><td><a class="source-lineNum" href="#196">196: </a></td><td> <span class="php-var">$this</span>->event->trigger(<span class="php-str">'view/'</span> . <span class="php-var">$trigger</span> . <span class="php-str">'/before'</span>, [&<span class="php-var">$route</span>, &<span class="php-var">$data</span>, &<span class="php-var">$code</span>, &<span class="php-var">$output</span>]);
|
|
</td></tr><tr id="197" class="source-line"><td><a class="source-lineNum" href="#197">197: </a></td><td>
|
|
</td></tr><tr id="198" class="source-line"><td><a class="source-lineNum" href="#198">198: </a></td><td> <span class="php-kw">if</span> (!<span class="php-var">$output</span>) {
|
|
</td></tr><tr id="199" class="source-line"><td><a class="source-lineNum" href="#199">199: </a></td><td> <span class="php-comment">// Make sure it's only the last event that returns an output if required.</span>
|
|
</td></tr><tr id="200" class="source-line"><td><a class="source-lineNum" href="#200">200: </a></td><td> <span class="php-var">$output</span> = <span class="php-var">$this</span>->template->render(<span class="php-var">$route</span>, <span class="php-var">$data</span>, <span class="php-var">$code</span>);
|
|
</td></tr><tr id="201" class="source-line"><td><a class="source-lineNum" href="#201">201: </a></td><td> }
|
|
</td></tr><tr id="202" class="source-line"><td><a class="source-lineNum" href="#202">202: </a></td><td>
|
|
</td></tr><tr id="203" class="source-line"><td><a class="source-lineNum" href="#203">203: </a></td><td> <span class="php-comment">// Trigger the post events</span>
|
|
</td></tr><tr id="204" class="source-line"><td><a class="source-lineNum" href="#204">204: </a></td><td> <span class="php-var">$this</span>->event->trigger(<span class="php-str">'view/'</span> . <span class="php-var">$trigger</span> . <span class="php-str">'/after'</span>, [&<span class="php-var">$route</span>, &<span class="php-var">$data</span>, &<span class="php-var">$output</span>]);
|
|
</td></tr><tr id="205" class="source-line"><td><a class="source-lineNum" href="#205">205: </a></td><td>
|
|
</td></tr><tr id="206" class="source-line"><td><a class="source-lineNum" href="#206">206: </a></td><td> <span class="php-kw">return</span> <span class="php-var">$output</span>;
|
|
</td></tr><tr id="207" class="source-line"><td><a class="source-lineNum" href="#207">207: </a></td><td> }
|
|
</td></tr><tr id="208" class="source-line"><td><a class="source-lineNum" href="#208">208: </a></td><td>
|
|
</td></tr><tr id="209" class="source-line"><td><a class="source-lineNum" href="#209">209: </a></td><td> <span class="php-comment">/**
|
|
</span></td></tr><tr id="210" class="source-line"><td><a class="source-lineNum" href="#210">210: </a></td><td><span class="php-comment"> * Language
|
|
</span></td></tr><tr id="211" class="source-line"><td><a class="source-lineNum" href="#211">211: </a></td><td><span class="php-comment"> *
|
|
</span></td></tr><tr id="212" class="source-line"><td><a class="source-lineNum" href="#212">212: </a></td><td><span class="php-comment"> * @param string $route
|
|
</span></td></tr><tr id="213" class="source-line"><td><a class="source-lineNum" href="#213">213: </a></td><td><span class="php-comment"> * @param string $prefix
|
|
</span></td></tr><tr id="214" class="source-line"><td><a class="source-lineNum" href="#214">214: </a></td><td><span class="php-comment"> * @param string $code
|
|
</span></td></tr><tr id="215" class="source-line"><td><a class="source-lineNum" href="#215">215: </a></td><td><span class="php-comment"> *
|
|
</span></td></tr><tr id="216" class="source-line"><td><a class="source-lineNum" href="#216">216: </a></td><td><span class="php-comment"> * @return array<string, string>
|
|
</span></td></tr><tr id="217" class="source-line"><td><a class="source-lineNum" href="#217">217: </a></td><td><span class="php-comment"> */</span>
|
|
</td></tr><tr id="218" class="source-line"><td><a class="source-lineNum" href="#218">218: </a></td><td> <span class="php-kw">public</span> <span class="php-kw">function</span> language(string <span class="php-var">$route</span>, string <span class="php-var">$prefix</span> = <span class="php-str">''</span>, string <span class="php-var">$code</span> = <span class="php-str">''</span>): <span class="php-kw">array</span> {
|
|
</td></tr><tr id="219" class="source-line"><td><a class="source-lineNum" href="#219">219: </a></td><td> <span class="php-comment">// Sanitize the call</span>
|
|
</td></tr><tr id="220" class="source-line"><td><a class="source-lineNum" href="#220">220: </a></td><td> <span class="php-var">$route</span> = preg_replace(<span class="php-str">'/[^a-zA-Z0-9_\-\/]/'</span>, <span class="php-str">''</span>, <span class="php-var">$route</span>);
|
|
</td></tr><tr id="221" class="source-line"><td><a class="source-lineNum" href="#221">221: </a></td><td>
|
|
</td></tr><tr id="222" class="source-line"><td><a class="source-lineNum" href="#222">222: </a></td><td> <span class="php-var">$trigger</span> = <span class="php-var">$route</span>;
|
|
</td></tr><tr id="223" class="source-line"><td><a class="source-lineNum" href="#223">223: </a></td><td>
|
|
</td></tr><tr id="224" class="source-line"><td><a class="source-lineNum" href="#224">224: </a></td><td> <span class="php-comment">// Trigger the pre events</span>
|
|
</td></tr><tr id="225" class="source-line"><td><a class="source-lineNum" href="#225">225: </a></td><td> <span class="php-var">$this</span>->event->trigger(<span class="php-str">'language/'</span> . <span class="php-var">$trigger</span> . <span class="php-str">'/before'</span>, [&<span class="php-var">$route</span>, &<span class="php-var">$prefix</span>, &<span class="php-var">$code</span>]);
|
|
</td></tr><tr id="226" class="source-line"><td><a class="source-lineNum" href="#226">226: </a></td><td>
|
|
</td></tr><tr id="227" class="source-line"><td><a class="source-lineNum" href="#227">227: </a></td><td> <span class="php-var">$output</span> = <span class="php-var">$this</span>->language->load(<span class="php-var">$route</span>, <span class="php-var">$prefix</span>, <span class="php-var">$code</span>);
|
|
</td></tr><tr id="228" class="source-line"><td><a class="source-lineNum" href="#228">228: </a></td><td>
|
|
</td></tr><tr id="229" class="source-line"><td><a class="source-lineNum" href="#229">229: </a></td><td> <span class="php-comment">// Trigger the post events</span>
|
|
</td></tr><tr id="230" class="source-line"><td><a class="source-lineNum" href="#230">230: </a></td><td> <span class="php-var">$this</span>->event->trigger(<span class="php-str">'language/'</span> . <span class="php-var">$trigger</span> . <span class="php-str">'/after'</span>, [&<span class="php-var">$route</span>, &<span class="php-var">$prefix</span>, &<span class="php-var">$code</span>, &<span class="php-var">$output</span>]);
|
|
</td></tr><tr id="231" class="source-line"><td><a class="source-lineNum" href="#231">231: </a></td><td>
|
|
</td></tr><tr id="232" class="source-line"><td><a class="source-lineNum" href="#232">232: </a></td><td> <span class="php-kw">return</span> <span class="php-var">$output</span>;
|
|
</td></tr><tr id="233" class="source-line"><td><a class="source-lineNum" href="#233">233: </a></td><td> }
|
|
</td></tr><tr id="234" class="source-line"><td><a class="source-lineNum" href="#234">234: </a></td><td>
|
|
</td></tr><tr id="235" class="source-line"><td><a class="source-lineNum" href="#235">235: </a></td><td> <span class="php-comment">/**
|
|
</span></td></tr><tr id="236" class="source-line"><td><a class="source-lineNum" href="#236">236: </a></td><td><span class="php-comment"> * Library
|
|
</span></td></tr><tr id="237" class="source-line"><td><a class="source-lineNum" href="#237">237: </a></td><td><span class="php-comment"> *
|
|
</span></td></tr><tr id="238" class="source-line"><td><a class="source-lineNum" href="#238">238: </a></td><td><span class="php-comment"> * @param string $route
|
|
</span></td></tr><tr id="239" class="source-line"><td><a class="source-lineNum" href="#239">239: </a></td><td><span class="php-comment"> * @param array<mixed> $args
|
|
</span></td></tr><tr id="240" class="source-line"><td><a class="source-lineNum" href="#240">240: </a></td><td><span class="php-comment"> *
|
|
</span></td></tr><tr id="241" class="source-line"><td><a class="source-lineNum" href="#241">241: </a></td><td><span class="php-comment"> * @return object
|
|
</span></td></tr><tr id="242" class="source-line"><td><a class="source-lineNum" href="#242">242: </a></td><td><span class="php-comment"> */</span>
|
|
</td></tr><tr id="243" class="source-line"><td><a class="source-lineNum" href="#243">243: </a></td><td> <span class="php-kw">public</span> <span class="php-kw">function</span> library(string <span class="php-var">$route</span>, &...<span class="php-var">$args</span>): object {
|
|
</td></tr><tr id="244" class="source-line"><td><a class="source-lineNum" href="#244">244: </a></td><td> <span class="php-comment">// Sanitize the call</span>
|
|
</td></tr><tr id="245" class="source-line"><td><a class="source-lineNum" href="#245">245: </a></td><td> <span class="php-var">$route</span> = preg_replace(<span class="php-str">'/[^a-zA-Z0-9_\/]/'</span>, <span class="php-str">''</span>, <span class="php-var">$route</span>);
|
|
</td></tr><tr id="246" class="source-line"><td><a class="source-lineNum" href="#246">246: </a></td><td>
|
|
</td></tr><tr id="247" class="source-line"><td><a class="source-lineNum" href="#247">247: </a></td><td> <span class="php-comment">// Create a new key to store the model object</span>
|
|
</td></tr><tr id="248" class="source-line"><td><a class="source-lineNum" href="#248">248: </a></td><td> <span class="php-var">$key</span> = <span class="php-str">'library_'</span> . str_replace(<span class="php-str">'/'</span>, <span class="php-str">'_'</span>, <span class="php-var">$route</span>);
|
|
</td></tr><tr id="249" class="source-line"><td><a class="source-lineNum" href="#249">249: </a></td><td>
|
|
</td></tr><tr id="250" class="source-line"><td><a class="source-lineNum" href="#250">250: </a></td><td> <span class="php-kw">if</span> (!<span class="php-var">$this</span>->registry->has(<span class="php-var">$key</span>)) {
|
|
</td></tr><tr id="251" class="source-line"><td><a class="source-lineNum" href="#251">251: </a></td><td> <span class="php-comment">// Initialize the class</span>
|
|
</td></tr><tr id="252" class="source-line"><td><a class="source-lineNum" href="#252">252: </a></td><td> <span class="php-var">$library</span> = <span class="php-var">$this</span>->factory->library(<span class="php-var">$route</span>, <span class="php-var">$args</span>);
|
|
</td></tr><tr id="253" class="source-line"><td><a class="source-lineNum" href="#253">253: </a></td><td>
|
|
</td></tr><tr id="254" class="source-line"><td><a class="source-lineNum" href="#254">254: </a></td><td> <span class="php-comment">// Store object</span>
|
|
</td></tr><tr id="255" class="source-line"><td><a class="source-lineNum" href="#255">255: </a></td><td> <span class="php-var">$this</span>->registry->set(<span class="php-var">$key</span>, <span class="php-var">$library</span>);
|
|
</td></tr><tr id="256" class="source-line"><td><a class="source-lineNum" href="#256">256: </a></td><td> } <span class="php-kw">else</span> {
|
|
</td></tr><tr id="257" class="source-line"><td><a class="source-lineNum" href="#257">257: </a></td><td> <span class="php-var">$library</span> = <span class="php-var">$this</span>->registry->get(<span class="php-var">$key</span>);
|
|
</td></tr><tr id="258" class="source-line"><td><a class="source-lineNum" href="#258">258: </a></td><td> }
|
|
</td></tr><tr id="259" class="source-line"><td><a class="source-lineNum" href="#259">259: </a></td><td>
|
|
</td></tr><tr id="260" class="source-line"><td><a class="source-lineNum" href="#260">260: </a></td><td> <span class="php-kw">return</span> <span class="php-var">$library</span>;
|
|
</td></tr><tr id="261" class="source-line"><td><a class="source-lineNum" href="#261">261: </a></td><td> }
|
|
</td></tr><tr id="262" class="source-line"><td><a class="source-lineNum" href="#262">262: </a></td><td>
|
|
</td></tr><tr id="263" class="source-line"><td><a class="source-lineNum" href="#263">263: </a></td><td> <span class="php-comment">/**
|
|
</span></td></tr><tr id="264" class="source-line"><td><a class="source-lineNum" href="#264">264: </a></td><td><span class="php-comment"> * Config
|
|
</span></td></tr><tr id="265" class="source-line"><td><a class="source-lineNum" href="#265">265: </a></td><td><span class="php-comment"> *
|
|
</span></td></tr><tr id="266" class="source-line"><td><a class="source-lineNum" href="#266">266: </a></td><td><span class="php-comment"> * @param string $route
|
|
</span></td></tr><tr id="267" class="source-line"><td><a class="source-lineNum" href="#267">267: </a></td><td><span class="php-comment"> *
|
|
</span></td></tr><tr id="268" class="source-line"><td><a class="source-lineNum" href="#268">268: </a></td><td><span class="php-comment"> * @return array<string, string>
|
|
</span></td></tr><tr id="269" class="source-line"><td><a class="source-lineNum" href="#269">269: </a></td><td><span class="php-comment"> */</span>
|
|
</td></tr><tr id="270" class="source-line"><td><a class="source-lineNum" href="#270">270: </a></td><td> <span class="php-kw">public</span> <span class="php-kw">function</span> config(string <span class="php-var">$route</span>): <span class="php-kw">array</span> {
|
|
</td></tr><tr id="271" class="source-line"><td><a class="source-lineNum" href="#271">271: </a></td><td> <span class="php-comment">// Sanitize the call</span>
|
|
</td></tr><tr id="272" class="source-line"><td><a class="source-lineNum" href="#272">272: </a></td><td> <span class="php-var">$route</span> = preg_replace(<span class="php-str">'/[^a-zA-Z0-9_\-\/]/'</span>, <span class="php-str">''</span>, <span class="php-var">$route</span>);
|
|
</td></tr><tr id="273" class="source-line"><td><a class="source-lineNum" href="#273">273: </a></td><td>
|
|
</td></tr><tr id="274" class="source-line"><td><a class="source-lineNum" href="#274">274: </a></td><td> <span class="php-var">$trigger</span> = <span class="php-var">$route</span>;
|
|
</td></tr><tr id="275" class="source-line"><td><a class="source-lineNum" href="#275">275: </a></td><td>
|
|
</td></tr><tr id="276" class="source-line"><td><a class="source-lineNum" href="#276">276: </a></td><td> <span class="php-comment">// Trigger the pre events</span>
|
|
</td></tr><tr id="277" class="source-line"><td><a class="source-lineNum" href="#277">277: </a></td><td> <span class="php-var">$this</span>->event->trigger(<span class="php-str">'config/'</span> . <span class="php-var">$trigger</span> . <span class="php-str">'/before'</span>, [&<span class="php-var">$route</span>]);
|
|
</td></tr><tr id="278" class="source-line"><td><a class="source-lineNum" href="#278">278: </a></td><td>
|
|
</td></tr><tr id="279" class="source-line"><td><a class="source-lineNum" href="#279">279: </a></td><td> <span class="php-var">$output</span> = <span class="php-var">$this</span>->config->load(<span class="php-var">$route</span>);
|
|
</td></tr><tr id="280" class="source-line"><td><a class="source-lineNum" href="#280">280: </a></td><td>
|
|
</td></tr><tr id="281" class="source-line"><td><a class="source-lineNum" href="#281">281: </a></td><td> <span class="php-comment">// Trigger the post events</span>
|
|
</td></tr><tr id="282" class="source-line"><td><a class="source-lineNum" href="#282">282: </a></td><td> <span class="php-var">$this</span>->event->trigger(<span class="php-str">'config/'</span> . <span class="php-var">$trigger</span> . <span class="php-str">'/after'</span>, [&<span class="php-var">$route</span>, &<span class="php-var">$output</span>]);
|
|
</td></tr><tr id="283" class="source-line"><td><a class="source-lineNum" href="#283">283: </a></td><td>
|
|
</td></tr><tr id="284" class="source-line"><td><a class="source-lineNum" href="#284">284: </a></td><td> <span class="php-kw">return</span> <span class="php-var">$output</span>;
|
|
</td></tr><tr id="285" class="source-line"><td><a class="source-lineNum" href="#285">285: </a></td><td> }
|
|
</td></tr><tr id="286" class="source-line"><td><a class="source-lineNum" href="#286">286: </a></td><td>
|
|
</td></tr><tr id="287" class="source-line"><td><a class="source-lineNum" href="#287">287: </a></td><td> <span class="php-comment">/**
|
|
</span></td></tr><tr id="288" class="source-line"><td><a class="source-lineNum" href="#288">288: </a></td><td><span class="php-comment"> * Helper
|
|
</span></td></tr><tr id="289" class="source-line"><td><a class="source-lineNum" href="#289">289: </a></td><td><span class="php-comment"> *
|
|
</span></td></tr><tr id="290" class="source-line"><td><a class="source-lineNum" href="#290">290: </a></td><td><span class="php-comment"> * @param string $route
|
|
</span></td></tr><tr id="291" class="source-line"><td><a class="source-lineNum" href="#291">291: </a></td><td><span class="php-comment"> *
|
|
</span></td></tr><tr id="292" class="source-line"><td><a class="source-lineNum" href="#292">292: </a></td><td><span class="php-comment"> * @return void
|
|
</span></td></tr><tr id="293" class="source-line"><td><a class="source-lineNum" href="#293">293: </a></td><td><span class="php-comment"> */</span>
|
|
</td></tr><tr id="294" class="source-line"><td><a class="source-lineNum" href="#294">294: </a></td><td> <span class="php-kw">public</span> <span class="php-kw">function</span> helper(string <span class="php-var">$route</span>): void {
|
|
</td></tr><tr id="295" class="source-line"><td><a class="source-lineNum" href="#295">295: </a></td><td> <span class="php-var">$route</span> = preg_replace(<span class="php-str">'/[^a-zA-Z0-9_\/]/'</span>, <span class="php-str">''</span>, <span class="php-var">$route</span>);
|
|
</td></tr><tr id="296" class="source-line"><td><a class="source-lineNum" href="#296">296: </a></td><td>
|
|
</td></tr><tr id="297" class="source-line"><td><a class="source-lineNum" href="#297">297: </a></td><td> <span class="php-kw">if</span> (!str_starts_with(<span class="php-var">$route</span>, <span class="php-str">'extension/'</span>)) {
|
|
</td></tr><tr id="298" class="source-line"><td><a class="source-lineNum" href="#298">298: </a></td><td> <span class="php-var">$file</span> = DIR_SYSTEM . <span class="php-str">'helper/'</span> . <span class="php-var">$route</span> . <span class="php-str">'.php'</span>;
|
|
</td></tr><tr id="299" class="source-line"><td><a class="source-lineNum" href="#299">299: </a></td><td> } <span class="php-kw">else</span> {
|
|
</td></tr><tr id="300" class="source-line"><td><a class="source-lineNum" href="#300">300: </a></td><td> <span class="php-var">$parts</span> = explode(<span class="php-str">'/'</span>, substr(<span class="php-var">$route</span>, <span class="php-num">10</span>));
|
|
</td></tr><tr id="301" class="source-line"><td><a class="source-lineNum" href="#301">301: </a></td><td>
|
|
</td></tr><tr id="302" class="source-line"><td><a class="source-lineNum" href="#302">302: </a></td><td> <span class="php-var">$code</span> = array_shift(<span class="php-var">$parts</span>);
|
|
</td></tr><tr id="303" class="source-line"><td><a class="source-lineNum" href="#303">303: </a></td><td>
|
|
</td></tr><tr id="304" class="source-line"><td><a class="source-lineNum" href="#304">304: </a></td><td> <span class="php-var">$file</span> = DIR_EXTENSION . <span class="php-var">$code</span> . <span class="php-str">'/system/helper/'</span> . implode(<span class="php-str">'/'</span>, <span class="php-var">$parts</span>) . <span class="php-str">'.php'</span>;
|
|
</td></tr><tr id="305" class="source-line"><td><a class="source-lineNum" href="#305">305: </a></td><td> }
|
|
</td></tr><tr id="306" class="source-line"><td><a class="source-lineNum" href="#306">306: </a></td><td>
|
|
</td></tr><tr id="307" class="source-line"><td><a class="source-lineNum" href="#307">307: </a></td><td> <span class="php-kw">if</span> (is_file(<span class="php-var">$file</span>)) {
|
|
</td></tr><tr id="308" class="source-line"><td><a class="source-lineNum" href="#308">308: </a></td><td> <span class="php-kw">include_once</span>(<span class="php-var">$file</span>);
|
|
</td></tr><tr id="309" class="source-line"><td><a class="source-lineNum" href="#309">309: </a></td><td> } <span class="php-kw">else</span> {
|
|
</td></tr><tr id="310" class="source-line"><td><a class="source-lineNum" href="#310">310: </a></td><td> <span class="php-kw">throw</span> <span class="php-kw">new</span> \Exception(<span class="php-str">'Error: Could not load helper '</span> . <span class="php-var">$route</span> . <span class="php-str">'!'</span>);
|
|
</td></tr><tr id="311" class="source-line"><td><a class="source-lineNum" href="#311">311: </a></td><td> }
|
|
</td></tr><tr id="312" class="source-line"><td><a class="source-lineNum" href="#312">312: </a></td><td> }
|
|
</td></tr><tr id="313" class="source-line"><td><a class="source-lineNum" href="#313">313: </a></td><td>}
|
|
</td></tr><tr id="314" class="source-line"><td><a class="source-lineNum" href="#314">314: </a></td><td></td></tr></table>
|
|
</div>
|
|
|
|
<div class="layout-footer">
|
|
OpenCart API API documentation generated by <a href="https://www.apigen.org">ApiGen dev-master</a>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="layout-rest">
|
|
<div class="navbar"></div>
|
|
</div>
|
|
</body>
|
|
</html>
|