User Tools

Site Tools


plugins:hooks_filters

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
plugins:hooks_filters [2015/01/12 15:49]
shawn_a [Core Filters]
plugins:hooks_filters [2017/01/19 16:10] (current)
lokothodida [Creating and Using Plugin Hooks/Filters]
Line 10: Line 10:
 |content ​       |filters page content data                              | string ​       |         | |content ​       |filters page content data                              | string ​       |         |
 |menuitems ​     |filters the menu html returned in ''​get_navigation()''​ | string ​       |         | |menuitems ​     |filters the menu html returned in ''​get_navigation()''​ | string ​       |         |
-|**pagecache** ​ |filters ​''​$pagesarray''​ data before saving ​            ​array         | 3.3+    |+|**pagecache** ​ |filters ​the page cache xml object ​before saving ​       simplexmlobj  ​| 3.3+    |
 |**sitemap** ​   |filters the ''​$sitemap''​ xmlobj before saving ​         | simplexmlobj ​ | 3.3+    | |**sitemap** ​   |filters the ''​$sitemap''​ xmlobj before saving ​         | simplexmlobj ​ | 3.3+    |
 |**indexid** ​   |filters global page ''​$id'' ​                           | string ​       | 3.3+    | |**indexid** ​   |filters global page ''​$id'' ​                           | string ​       | 3.3+    |
Line 101: Line 101:
 | theme-sidebar ​   | Sidebar item on Theme Page    |         | | theme-sidebar ​   | Sidebar item on Theme Page    |         |
 | nav-tab ​         | Insert navigation bar tab     ​| ​        | | nav-tab ​         | Insert navigation bar tab     ​| ​        |
 +
 +===== Creating and Using Plugin Hooks/​Filters =====
 +
 +Similar to core hooks and filters, plugins can create their own by using the functions ''​exec_action''​ and ''​exec_filter''​. ​
 +
 +<​code>​
 +exec_action( '​hook_name'​ );
 +</​code>​
 +
 +<​code>​
 +exec_filter( '​filter_name',​ '​value_to_filter'​ );
 +</​code>​
 +
 +If your plugin uses a GS hook to alter content before it is saved (e.g, the [[http://​get-simple.info/​extend/​plugin/​multi-user/​133/​|MultiUser plugin]] changes the output to the ''​user.xml''​ file and makes all changes from other plugins in this hook undone), it is especially important to add a custom hook, so that other plugin developers can make their plugins compatible with yours if they need to alter the data too. 
 +
 +If you created a plugin hook called '​your-plugin-hook',​ as described in the paragraph above, other plugin developers could then:
 +
 +  - (1) detect whether your plugin is active by using ''​pluginIsActive('​your-plugin-name'​)''​ (GS 3.3.4+) or by checking for existence of your init function/a constant you defined, and
 +  - (2) use your hook with ''​add_action('​your-plugin-hook',​ '​their-function'​)''​.
 +
 +This is an important step to take in making multiple plugins from different authors compatible with one another.
 +
 +When naming hooks in your plugins //be sure to use a unique name// to not step on core hook ids.
plugins/hooks_filters.1421077749.txt.gz ยท Last modified: 2015/01/12 15:49 by shawn_a