From a64989af9fe43840f00fb159b47676b1e34f4c42 Mon Sep 17 00:00:00 2001 From: Dave Mc Nicoll Date: Fri, 20 Dec 2019 12:27:41 -0500 Subject: [PATCH] - Added a token to asset keyword --- src/Extension/UrlExtension.php | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/Extension/UrlExtension.php b/src/Extension/UrlExtension.php index a734bda..7849a50 100644 --- a/src/Extension/UrlExtension.php +++ b/src/Extension/UrlExtension.php @@ -6,15 +6,24 @@ class UrlExtension implements Extension { protected string $urlBase; - public array $tokens = [ "url" , "route" ]; + protected string $assetToken; - public function __construct(string $urlBase = "") { + public array $tokens = [ "url" , "route", "asset" ]; + + public function __construct(string $urlBase = "", string $assetToken = "") { $this->urlBase = $urlBase; + $this->assetToken = $assetToken; } public function parse(/*\Picae\Compiler\Context*/ &$context, ?string $arguments, string $token) : ?string { switch($token) { + case "asset": + return "compiler->getExtensionFromToken('$token')->buildAssetUrl($arguments) ?>"; + + case "route": + return "compiler->getExtensionFromToken('$token')->buildUrl($arguments) ?>"; + case "url": return "compiler->getExtensionFromToken('$token')->buildUrl($arguments) ?>"; } @@ -27,6 +36,10 @@ class UrlExtension implements Extension { return $this->url() . $uri . ( $parameters ? "?" . http_build_query($parameters) : "" ); } + public function buildAssetUrl(string $uri, array $parameters = []) : string + { + return $this->url() . $uri . "?" . http_build_query( array_replace([ 'token' => $this->assetToken ], $parameters) ); + } public function url() : string {