mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-08 04:18:52 +00:00
[ticket/12957] Update the constructions of the template engine
PHPBB3-12957
This commit is contained in:
parent
59b5ab4866
commit
e7e6d45789
5 changed files with 66 additions and 5 deletions
|
@ -129,13 +129,30 @@ class bbcode
|
||||||
*/
|
*/
|
||||||
function bbcode_cache_init()
|
function bbcode_cache_init()
|
||||||
{
|
{
|
||||||
global $phpbb_root_path, $phpEx, $config, $user, $phpbb_extension_manager, $phpbb_path_helper;
|
global $phpbb_root_path, $phpEx, $config, $user, $phpbb_extension_manager, $phpbb_path_helper, $phpbb_container;
|
||||||
|
|
||||||
if (empty($this->template_filename))
|
if (empty($this->template_filename))
|
||||||
{
|
{
|
||||||
$this->template_bitfield = new bitfield($user->style['bbcode_bitfield']);
|
$this->template_bitfield = new bitfield($user->style['bbcode_bitfield']);
|
||||||
|
|
||||||
$template = new phpbb\template\twig\twig($phpbb_path_helper, $config, $user, new phpbb\template\context(), $phpbb_extension_manager);
|
$template = new \phpbb\template\twig\twig(
|
||||||
|
$phpbb_container->get('path_helper'),
|
||||||
|
$phpbb_container->get('config'),
|
||||||
|
$phpbb_container->get('user'),
|
||||||
|
new \phpbb\template\context(),
|
||||||
|
new \phpbb\template\twig\environment(
|
||||||
|
$phpbb_container->get('config'),
|
||||||
|
$phpbb_container->get('path_helper'),
|
||||||
|
$phpbb_container,
|
||||||
|
$phpbb_container->getParameter('core.root_path') . 'cache/',
|
||||||
|
$phpbb_container->get('ext.manager'),
|
||||||
|
new \phpbb\template\twig\loader()
|
||||||
|
),
|
||||||
|
$phpbb_container->getParameter('core.root_path') . 'cache/',
|
||||||
|
$phpbb_container->get('template.twig.extensions.collection'),
|
||||||
|
$phpbb_extension_manager
|
||||||
|
);
|
||||||
|
|
||||||
$template->set_style();
|
$template->set_style();
|
||||||
$template->set_filenames(array('bbcode.html' => 'bbcode.html'));
|
$template->set_filenames(array('bbcode.html' => 'bbcode.html'));
|
||||||
$this->template_filename = $template->get_source_file_for_handle('bbcode.html');
|
$this->template_filename = $template->get_source_file_for_handle('bbcode.html');
|
||||||
|
|
|
@ -637,14 +637,30 @@ class messenger
|
||||||
*/
|
*/
|
||||||
protected function setup_template()
|
protected function setup_template()
|
||||||
{
|
{
|
||||||
global $config, $phpbb_path_helper, $user, $phpbb_extension_manager;
|
global $config, $phpbb_path_helper, $user, $phpbb_extension_manager, $phpbb_container;
|
||||||
|
|
||||||
if ($this->template instanceof \phpbb\template\template)
|
if ($this->template instanceof \phpbb\template\template)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->template = new \phpbb\template\twig\twig($phpbb_path_helper, $config, $user, new \phpbb\template\context(), $phpbb_extension_manager);
|
$this->template = new \phpbb\template\twig\twig(
|
||||||
|
$phpbb_container->get('path_helper'),
|
||||||
|
$phpbb_container->get('config'),
|
||||||
|
$phpbb_container->get('user'),
|
||||||
|
new \phpbb\template\context(),
|
||||||
|
new \phpbb\template\twig\environment(
|
||||||
|
$phpbb_container->get('config'),
|
||||||
|
$phpbb_container->get('path_helper'),
|
||||||
|
$phpbb_container,
|
||||||
|
$phpbb_container->getParameter('core.root_path') . 'cache/',
|
||||||
|
$phpbb_container->get('ext.manager'),
|
||||||
|
new \phpbb\template\twig\loader()
|
||||||
|
),
|
||||||
|
$phpbb_container->getParameter('core.root_path') . 'cache/',
|
||||||
|
$phpbb_container->get('template.twig.extensions.collection'),
|
||||||
|
$phpbb_extension_manager
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -137,6 +137,7 @@ $phpbb_container_builder->set_custom_parameters(array(
|
||||||
|
|
||||||
$phpbb_container = $phpbb_container_builder->get_container();
|
$phpbb_container = $phpbb_container_builder->get_container();
|
||||||
$phpbb_container->register('dbal.conn.driver')->setSynthetic(true);
|
$phpbb_container->register('dbal.conn.driver')->setSynthetic(true);
|
||||||
|
$phpbb_container->register('template.twig.environment')->setSynthetic(true);
|
||||||
$phpbb_container->compile();
|
$phpbb_container->compile();
|
||||||
|
|
||||||
$phpbb_class_loader->set_cache($phpbb_container->get('cache.driver'));
|
$phpbb_class_loader->set_cache($phpbb_container->get('cache.driver'));
|
||||||
|
@ -268,7 +269,28 @@ $config = new \phpbb\config\config(array(
|
||||||
$symfony_request = $phpbb_container->get('symfony_request');
|
$symfony_request = $phpbb_container->get('symfony_request');
|
||||||
$phpbb_filesystem = $phpbb_container->get('filesystem');
|
$phpbb_filesystem = $phpbb_container->get('filesystem');
|
||||||
$phpbb_path_helper = $phpbb_container->get('path_helper');
|
$phpbb_path_helper = $phpbb_container->get('path_helper');
|
||||||
$template = new \phpbb\template\twig\twig($phpbb_path_helper, $config, $user, new \phpbb\template\context());
|
$cache_path = $phpbb_root_path . 'cache/';
|
||||||
|
|
||||||
|
$twig_environment = new \phpbb\template\twig\environment(
|
||||||
|
$config,
|
||||||
|
$phpbb_path_helper,
|
||||||
|
$phpbb_container,
|
||||||
|
$cache_path,
|
||||||
|
null,
|
||||||
|
$phpbb_container->get('template.twig.loader')
|
||||||
|
);
|
||||||
|
|
||||||
|
$phpbb_container->set('template.twig.environment', $twig_environment);
|
||||||
|
$template = new \phpbb\template\twig\twig(
|
||||||
|
$phpbb_path_helper,
|
||||||
|
$config,
|
||||||
|
$user,
|
||||||
|
new \phpbb\template\context(),
|
||||||
|
$twig_environment,
|
||||||
|
$cache_path,
|
||||||
|
array($phpbb_container->get('template.twig.extensions.phpbb'))
|
||||||
|
);
|
||||||
|
|
||||||
$paths = array($phpbb_root_path . 'install/update/new/adm/style', $phpbb_admin_path . 'style');
|
$paths = array($phpbb_root_path . 'install/update/new/adm/style', $phpbb_admin_path . 'style');
|
||||||
$paths = array_filter($paths, 'is_dir');
|
$paths = array_filter($paths, 'is_dir');
|
||||||
$template->set_custom_style(array(
|
$template->set_custom_style(array(
|
||||||
|
|
|
@ -79,6 +79,7 @@ class environment extends \Twig_Environment
|
||||||
if (null === $this->lexer)
|
if (null === $this->lexer)
|
||||||
{
|
{
|
||||||
$this->lexer = $this->container->get('template.twig.lexer');
|
$this->lexer = $this->container->get('template.twig.lexer');
|
||||||
|
$this->lexer->set_environment($this);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->lexer;
|
return $this->lexer;
|
||||||
|
|
|
@ -15,6 +15,11 @@ namespace phpbb\template\twig;
|
||||||
|
|
||||||
class lexer extends \Twig_Lexer
|
class lexer extends \Twig_Lexer
|
||||||
{
|
{
|
||||||
|
public function set_environment(\Twig_Environment $env)
|
||||||
|
{
|
||||||
|
$this->env = $env;
|
||||||
|
}
|
||||||
|
|
||||||
public function tokenize($code, $filename = null)
|
public function tokenize($code, $filename = null)
|
||||||
{
|
{
|
||||||
// Our phpBB tags
|
// Our phpBB tags
|
||||||
|
|
Loading…
Add table
Reference in a new issue