mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-29 14:48:53 +00:00
Compare commits
2 commits
3a5247d01b
...
ccbdfb49c7
Author | SHA1 | Date | |
---|---|---|---|
|
ccbdfb49c7 | ||
|
43cf7b73bd |
6 changed files with 35 additions and 21 deletions
|
@ -52,11 +52,8 @@ class event extends \Twig\Node\Node
|
||||||
foreach ($this->environment->get_phpbb_extensions() as $ext_namespace => $ext_path)
|
foreach ($this->environment->get_phpbb_extensions() as $ext_namespace => $ext_path)
|
||||||
{
|
{
|
||||||
$ext_namespace = str_replace('/', '_', $ext_namespace);
|
$ext_namespace = str_replace('/', '_', $ext_namespace);
|
||||||
if ($this->environment->isDebug() || $this->environment->getLoader()->exists('@' . $ext_namespace . '/' . $location . '.html'))
|
$priority_key = $this->template_event_priority_array[$ext_namespace][$location] ?? 0;
|
||||||
{
|
$template_events[$priority_key][] = $ext_namespace;
|
||||||
$priority_key = $this->template_event_priority_array[$ext_namespace][$location] ?? 0;
|
|
||||||
$template_events[$priority_key][] = $ext_namespace;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
krsort($template_events);
|
krsort($template_events);
|
||||||
|
|
||||||
|
@ -75,13 +72,16 @@ class event extends \Twig\Node\Node
|
||||||
->indent();
|
->indent();
|
||||||
}
|
}
|
||||||
|
|
||||||
$compiler
|
if ($this->environment->isDebug() || $this->environment->getLoader()->exists('@' . $ext_namespace . '/' . $location . '.html'))
|
||||||
->write("\$previous_look_up_order = \$this->env->getNamespaceLookUpOrder();\n")
|
{
|
||||||
|
$compiler
|
||||||
|
->write("\$previous_look_up_order = \$this->env->getNamespaceLookUpOrder();\n")
|
||||||
|
|
||||||
// We set the namespace lookup order to be this extension first, then the main path
|
// We set the namespace lookup order to be this extension first, then the main path
|
||||||
->write("\$this->env->setNamespaceLookUpOrder(array('{$ext_namespace}', '__main__'));\n")
|
->write("\$this->env->setNamespaceLookUpOrder(array('{$ext_namespace}', '__main__'));\n")
|
||||||
->write("\$this->env->loadTemplate(\$this->env->getTemplateClass('@{$ext_namespace}/{$location}.html'), '@{$ext_namespace}/{$location}.html')->display(\$context);\n")
|
->write("\$this->env->loadTemplate(\$this->env->getTemplateClass('@{$ext_namespace}/{$location}.html'), '@{$ext_namespace}/{$location}.html')->display(\$context);\n")
|
||||||
->write("\$this->env->setNamespaceLookUpOrder(\$previous_look_up_order);\n");
|
->write("\$this->env->setNamespaceLookUpOrder(\$previous_look_up_order);\n");
|
||||||
|
}
|
||||||
|
|
||||||
if ($this->environment->isDebug())
|
if ($this->environment->isDebug())
|
||||||
{
|
{
|
||||||
|
|
|
@ -42,7 +42,7 @@ class event extends \Twig\TokenParser\AbstractTokenParser
|
||||||
* In case of equal priority values, corresponding template event listeners will be handled in default compilation order.
|
* In case of equal priority values, corresponding template event listeners will be handled in default compilation order.
|
||||||
* If not set, template event listener priority will be assigned to the value of 0.
|
* If not set, template event listener priority will be assigned to the value of 0.
|
||||||
*
|
*
|
||||||
* @event core.twig_tokenparser_constructor
|
* @event core.twig_event_tokenparser_constructor
|
||||||
* @var array template_event_priority_array Array with template event priority assignments per extension namespace
|
* @var array template_event_priority_array Array with template event priority assignments per extension namespace
|
||||||
* Usage:
|
* Usage:
|
||||||
* '<author>_<extension_name>' => [
|
* '<author>_<extension_name>' => [
|
||||||
|
@ -50,17 +50,31 @@ class event extends \Twig\TokenParser\AbstractTokenParser
|
||||||
* ],
|
* ],
|
||||||
*
|
*
|
||||||
* Example:
|
* Example:
|
||||||
* 'phpbb_viglink' => [
|
* class template_event_order implements EventSubscriberInterface
|
||||||
* 'event/acp_help_phpbb_stats_after' => 80,
|
* {
|
||||||
* 'event/overall_footer_after' => 100,
|
* static public function getSubscribedEvents()
|
||||||
* ],
|
* {
|
||||||
|
* return [
|
||||||
|
* 'core.twig_event_tokenparser_constructor' => 'set_template_event_priority',
|
||||||
|
* ];
|
||||||
|
* }
|
||||||
|
*
|
||||||
|
* public function set_template_event_priority($event)
|
||||||
|
* {
|
||||||
|
* $template_event_priority_array = $event['template_event_priority_array'];
|
||||||
|
* $template_event_priority_array['vendor_name'] = [
|
||||||
|
* 'event/navbar_header_quick_links_after' => -1,
|
||||||
|
* ];
|
||||||
|
* $event['template_event_priority_array'] = $template_event_priority_array;
|
||||||
|
* }
|
||||||
|
* }
|
||||||
*
|
*
|
||||||
* @since 4.0.0-a1
|
* @since 4.0.0-a1
|
||||||
*/
|
*/
|
||||||
if ($this->phpbb_dispatcher)
|
if ($this->phpbb_dispatcher)
|
||||||
{
|
{
|
||||||
$vars = ['template_event_priority_array'];
|
$vars = ['template_event_priority_array'];
|
||||||
extract($this->phpbb_dispatcher->trigger_event('core.twig_tokenparser_constructor', compact($vars)));
|
extract($this->phpbb_dispatcher->trigger_event('core.twig_event_tokenparser_constructor', compact($vars)));
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->template_event_priority_array = $template_event_priority_array;
|
$this->template_event_priority_array = $template_event_priority_array;
|
||||||
|
|
|
@ -23,7 +23,7 @@ class template_event_order implements EventSubscriberInterface
|
||||||
static public function getSubscribedEvents()
|
static public function getSubscribedEvents()
|
||||||
{
|
{
|
||||||
return array(
|
return array(
|
||||||
'core.twig_tokenparser_constructor' => 'set_template_event_priority',
|
'core.twig_event_tokenparser_constructor' => 'set_template_event_priority',
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,7 @@ class template_event_order implements EventSubscriberInterface
|
||||||
static public function getSubscribedEvents()
|
static public function getSubscribedEvents()
|
||||||
{
|
{
|
||||||
return array(
|
return array(
|
||||||
'core.twig_tokenparser_constructor' => 'set_template_event_priority',
|
'core.twig_event_tokenparser_constructor' => 'set_template_event_priority',
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,7 @@ class template_event_order implements EventSubscriberInterface
|
||||||
static public function getSubscribedEvents()
|
static public function getSubscribedEvents()
|
||||||
{
|
{
|
||||||
return array(
|
return array(
|
||||||
'core.twig_tokenparser_constructor' => 'set_template_event_priority',
|
'core.twig_event_tokenparser_constructor' => 'set_template_event_priority',
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,7 @@ class template_event_order implements EventSubscriberInterface
|
||||||
static public function getSubscribedEvents()
|
static public function getSubscribedEvents()
|
||||||
{
|
{
|
||||||
return array(
|
return array(
|
||||||
'core.twig_tokenparser_constructor' => 'set_template_event_priority',
|
'core.twig_event_tokenparser_constructor' => 'set_template_event_priority',
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue