- added a new lang.raw and _.raw token to Lang extexion

This commit is contained in:
Dave M. 2022-07-18 17:44:03 +00:00
parent 531f786747
commit aa0bdea0c5
2 changed files with 8 additions and 4 deletions

@ -113,9 +113,7 @@ class Compiler
foreach($this->extensionList as $ext) {
if ($ext instanceof FunctionExtension) {
foreach ($ext->exportFunctions() as $name => $value) {
if ( is_string($value) ) {
$callable = fn(...$args) => call_user_func_array([ $ext, $value ], $args);
}
$callable = is_string($value) ? fn(...$args) => call_user_func_array([ $ext, $value ], $args) : null;
$context->pushFunction(is_numeric($name) ? $value : $name, $callable ?? $value);
}

@ -6,7 +6,7 @@ use Picea\Compiler\Context;
class LanguageExtension implements Extension, FunctionExtension {
public array $tokens = [ "lang", "_", "language.set" ];
public array $tokens = [ "lang", "lang.raw", "_", "_.raw", "language.set" ];
public string $currentLanguage = "";
@ -31,9 +31,15 @@ class LanguageExtension implements Extension, FunctionExtension {
return "<?php \$picea->compiler->getExtensionFromToken('$token')->currentLanguage = $arguments; ?>";
case "lang":
return "<?php echo htmlspecialchars(\$picea->compiler->getExtensionFromToken('$token')->absoluteLang($arguments), \ENT_QUOTES, ini_get('default_charset'), true) ?>";
case "lang.raw":
return "<?php echo \$picea->compiler->getExtensionFromToken('$token')->absoluteLang($arguments) ?>";
case "_":
return "<?php echo htmlspecialchars(\$picea->compiler->getExtensionFromToken('$token')->relativeLang($arguments), \ENT_QUOTES, ini_get('default_charset'), true) ?>";
case "_.raw":
return "<?php echo \$picea->compiler->getExtensionFromToken('$token')->relativeLang($arguments) ?>";
}