Add language function to twig

[MAILPOET-3487]
This commit is contained in:
David Remer
2022-11-30 14:43:06 +02:00
committed by Aschepikov
parent 5e71d94b62
commit 7b584dd482
3 changed files with 21 additions and 1 deletions

View File

@@ -3,6 +3,7 @@
namespace MailPoet\Config; namespace MailPoet\Config;
use MailPoet\Twig; use MailPoet\Twig;
use MailPoet\WP\Functions as WPFunctions;
use MailPoetVendor\Twig\Extension\DebugExtension; use MailPoetVendor\Twig\Extension\DebugExtension;
use MailPoetVendor\Twig\Lexer as TwigLexer; use MailPoetVendor\Twig\Lexer as TwigLexer;
use MailPoetVendor\Twig\Loader\FilesystemLoader as TwigFileSystem; use MailPoetVendor\Twig\Loader\FilesystemLoader as TwigFileSystem;
@@ -78,7 +79,8 @@ class Renderer {
'assets_url' => Env::$assetsUrl, 'assets_url' => Env::$assetsUrl,
'assets_manifest_js' => $this->assetsManifestJs, 'assets_manifest_js' => $this->assetsManifestJs,
'assets_manifest_css' => $this->assetsManifestCss, 'assets_manifest_css' => $this->assetsManifestCss,
])); ],
WPFunctions::get()));
} }
public function setupSyntax() { public function setupSyntax() {

View File

@@ -12,14 +12,19 @@ use MailPoetVendor\Twig\TwigFunction;
class Assets extends AbstractExtension { class Assets extends AbstractExtension {
private $globals; private $globals;
/** @var WPFunctions */
private $wp;
/** @var CdnAssetUrl|null */ /** @var CdnAssetUrl|null */
private $cdnAssetsUrl; private $cdnAssetsUrl;
public function __construct( public function __construct(
array $globals, array $globals,
WPFunctions $wp,
CdnAssetUrl $cdnAssetsUrl = null CdnAssetUrl $cdnAssetsUrl = null
) { ) {
$this->globals = $globals; $this->globals = $globals;
$this->wp = $wp;
$this->cdnAssetsUrl = $cdnAssetsUrl; $this->cdnAssetsUrl = $cdnAssetsUrl;
} }
@@ -50,6 +55,11 @@ class Assets extends AbstractExtension {
[$this, 'generateCdnUrl'], [$this, 'generateCdnUrl'],
['is_safe' => ['all']] ['is_safe' => ['all']]
), ),
new TwigFunction(
'language',
[$this, 'language'],
['is_safe' => ['all']]
),
]; ];
} }
@@ -68,6 +78,10 @@ class Assets extends AbstractExtension {
return join("\n", $output); return join("\n", $output);
} }
public function language() {
return $this->wp->getBlogInfo('language');
}
public function generateJavascript() { public function generateJavascript() {
$scripts = func_get_args(); $scripts = func_get_args();
$output = []; $output = [];

View File

@@ -5,6 +5,7 @@ namespace MailPoet\Test\Twig;
use MailPoet\Config\Env; use MailPoet\Config\Env;
use MailPoet\Twig\Assets; use MailPoet\Twig\Assets;
use MailPoet\Util\CdnAssetUrl; use MailPoet\Util\CdnAssetUrl;
use MailPoet\WP\Functions as WPFunctions;
class AssetsTest extends \MailPoetTest { class AssetsTest extends \MailPoetTest {
public $assetsExtension; public $assetsExtension;
@@ -22,6 +23,7 @@ class AssetsTest extends \MailPoetTest {
'assets_manifest_css' => false, 'assets_manifest_css' => false,
'version' => $this->version, 'version' => $this->version,
], ],
WPFunctions::get(),
new CdnAssetUrl('') new CdnAssetUrl('')
); );
} }
@@ -38,6 +40,7 @@ class AssetsTest extends \MailPoetTest {
'assets_manifest_js' => $manifest, 'assets_manifest_js' => $manifest,
'version' => $this->version, 'version' => $this->version,
], ],
WPFunctions::get(),
new CdnAssetUrl('') new CdnAssetUrl('')
); );
@@ -76,6 +79,7 @@ class AssetsTest extends \MailPoetTest {
'assets_manifest_css' => $manifest, 'assets_manifest_css' => $manifest,
'version' => $this->version, 'version' => $this->version,
], ],
WPFunctions::get(),
new CdnAssetUrl('') new CdnAssetUrl('')
); );