phpBB

Development Wiki

Difference between revisions of "Add Template Listeners"

From phpBB Development Wiki

m (How to use one: fix link to event list)
(moved to new docs)
 
Line 1: Line 1:
==What are template listeners?==
+
This documentation has been moved to the new phpBB Development Documentation.
Template listeners are a way of injecting code into the template files. The can be injected at any place where [[events]] are used. They are part of the [[listeners]] system added in 3.1
+
  
==How to use one==
+
[https://area51.phpbb.com/docs/dev/31x/extensions/tutorial_events.html#template-events-listeners Extensions: Template Events & Listeners].
I'm assuming you already know what the events's identifer is. If you don't then you should look it up on the [[Event List]]. If it isn't on the events list you can add it as described in the [[Adding_Events]] article.
+
 
+
So lets say our event is called overall_header_head and injects into overall_header.html in the head element.
+
 
+
You create a file in your extension in <pre>ext/&lt;vendor&gt;/&lt;extname&gt;/styles/&lt;stylename&gt;/template/event/overall_header_head.html</pre>
+
 
+
You essentially call the file by the event identifier and place it in the event/ subdirectory of the style's template folder.
+
 
+
Then you type in the content you want to be injected where that event is and you're good to do. It's as simple as that.
+
 
+
If you want it to work for all styles (recommended) then instead of style name use `all`.
+
 
+
===== Adding ACP template listeners =====
+
 
+
If you want to add ACP template listener, place corresponding html file in
+
<pre>ext/&lt;vendor&gt;/&lt;extname&gt;/adm/style/event/</pre>
+
 
+
For example, if you want to add template listener for acp_forums_normal_settings_append event located in adm/style/acp_forums.html, you need to create a file:
+
<pre>ext/&lt;vendor&gt;/&lt;extname&gt;/adm/style/event/acp_forums_normal_settings_append.html</pre>
+
 
+
==Template Cache==
+
When parsing and caching the template file, phpBB by default checks for all available listeners at compile time and includes them in the compiled template. This makes rendering the page faster after it is compiled.
+
 
+
The default behavior makes it more difficult to develop extensions because when adding or removing template event files, the cache must be purged. To prevent having to purge the cache all the time, you can enable DEBUG_MODE in your config.php file, which will force the template engine to ALWAYS look for template event files when the page is being rendered.
+
 
+
[[Category:Events and Listeners]]
+

Latest revision as of 18:43, 5 December 2016

This documentation has been moved to the new phpBB Development Documentation.

Extensions: Template Events & Listeners.