phpBB

Development Wiki

Difference between revisions of "Add Events"

From phpBB Development Wiki

(Large Update)
(Moved to new docs)
 
(30 intermediate revisions by 9 users not shown)
Line 1: Line 1:
==What are ledges?==
+
This documentation has been moved to the new phpBB Development Documentation.
A ledge is a hook location. When an extension wishes to hook its functionality into the phpBB core at a certain point, it can do so only at available hook locations, or ledges. For more information, see the wiki article for [[hooks]].
+
  
==How to add a ledge==
+
[https://area51.phpbb.com/docs/dev/31x/extensions/tutorial_advanced.html#adding-a-php-event-to-your-extension Extensions: Adding a PHP event to your extension].
You would add a ledge you would use this code:
+
<php>
+
$vars = array('arrayname');
+
$event = new phpbb_event_data(compact($vars));
+
$phpbb_dispatcher->dispatch('identifer', $event);
+
extract($event->get_data_filtered($vars));
+
</php>
+
Let's dissect that code<br />
+
 
+
== Dissection ==
+
<pre class="codebox"> <nowiki>$vars = array('arrayvariable');</nowiki></pre>
+
This just defines the variable vars as the variable for the array.
+
<br /><br />
+
 
+
<pre class="codebox"> <nowiki>$event = new phpbb_event_data(compact($vars));</nowiki></pre>
+
This won't need any changes and is beyond the scope of this article.
+
<br /><br />
+
 
+
<pre class="codebox"> <nowiki>$phpbb_dispatcher->dispatch('identifier', $event);</nowiki></pre>
+
This just sets the identifier name (see below) and input parameter which is event as per the previous line.
+
The identifer is the name for the hook. If its in the core it should be prefixed by `core.` but if its in an extension you should prefix it with a unique string related to your extension to prevent clashes with other extensions. When its in a function you may need to add the following beforehand:
+
<pre class="narrow-codebox"> <nowiki>global $phpbb_dispatcher</nowiki></pre>
+
<br /><br />
+
 
+
<pre class="codebox"> <nowiki>extract($event->get_data_filtered($vars));</nowiki></pre>
+
This gets the data from the hook. This won't need changing.
+
<br /><br />
+
 
+
 
+
Based on the blog article [http://blog.phpbb.com/2010/10/09/explaining-hooks/ Explaining Hooks]
+
[[Category:Ledges and Hooks]]
+

Latest revision as of 18:41, 5 December 2016

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

Extensions: Adding a PHP event to your extension.