Difference between revisions of "Plugin API"
(added missing API function: plugin_whatsnewsupported_) |
(there's no 1:1 relation between PLG_ and plugin_) |
||
Line 1: | Line 1: | ||
Geeklog's [[Plugin API]] defines the interface between the core Geeklog code and the plugins. From Geeklog's point of view, all the Plugin API functions are called <code>PLG_something</code>, which will result in a function <code>plugin_something_foo</code> being called in the "foo" plugin (if it exists - all the API functions are optional). | Geeklog's [[Plugin API]] defines the interface between the core Geeklog code and the plugins. From Geeklog's point of view, all the Plugin API functions are called <code>PLG_something</code>, which will result in a function <code>plugin_something_foo</code> being called in the "foo" plugin (if it exists - all the API functions are optional). | ||
+ | |||
+ | Please note that there isn't always a one-to-one relationship between a <code>PLG_</code> function and a <code>plugin_</code> function. For example, <code>PLG_uninstall</code> will call either <code>plugin_uninstall_</code> or <code>plugin_autouninstall_</code>, whichever is implemented. Other functions may not even get through to the plugin, e.g. <code>PLG_afterSaveSwitch</code>. | ||
For details about Plugin API functions that are not documented yet, please refer to the documented source code of [http://project.geeklog.net/src/Geeklog/_system---lib-plugins.php.html lib-plugins.php] | For details about Plugin API functions that are not documented yet, please refer to the documented source code of [http://project.geeklog.net/src/Geeklog/_system---lib-plugins.php.html lib-plugins.php] |
Revision as of 09:09, 25 May 2009
Geeklog's Plugin API defines the interface between the core Geeklog code and the plugins. From Geeklog's point of view, all the Plugin API functions are called PLG_something
, which will result in a function plugin_something_foo
being called in the "foo" plugin (if it exists - all the API functions are optional).
Please note that there isn't always a one-to-one relationship between a PLG_
function and a plugin_
function. For example, PLG_uninstall
will call either plugin_uninstall_
or plugin_autouninstall_
, whichever is implemented. Other functions may not even get through to the plugin, e.g. PLG_afterSaveSwitch
.
For details about Plugin API functions that are not documented yet, please refer to the documented source code of lib-plugins.php
Contents
Installation
API Function | Description |
---|---|
plugin_autouninstall_ | Plugin should provide data for uninstallation |
plugin_chkVersion_ | Called to check if a plugin upgrade is required |
plugin_enablestatechange_ | Inform plugin that it's about to be enabled or disabled |
plugin_install_ | (not currently used) |
plugin_migrate_ | Site migration underway; plugin should migrate its data |
plugin_uninstall_ | Plugin should uninstall itself |
plugin_upgrade_ | Plugin should upgrade itself |
Moderation / Submission
API Function | Description |
---|---|
plugin_ismoderator_ | Check to see if the current user is a moderator for this plugin |
plugin_itemlist_ | Provide information to build the list of items in the plugin's submission queue |
plugin_moderationapprove_ | Approve an item in the plugin's submission queue |
plugin_moderationdelete_ | Remove an item from the plugin's submission queue |
plugin_moderationvalues_ | Set plugin-specific moderation values |
plugin_savesubmission_ | Save an item in the plugin's submission queue |
plugin_submissioncount_ | Return the number of items in the plugin's submission queue |
plugin_submit_ | Display the plugin's submission form |
Also see Adding Moderation Capability and Moderation Functions.
Comments
API Function | Description |
---|---|
plugin_commentPreSave_ | Called before a comment is saved |
plugin_deletecomment_ | Delete a comment |
plugin_displaycomment_ | Display one or several comment(s) |
plugin_getcommenturlid_ | Provide URL of page to view comments and the unique identifier |
plugin_savecomment_ | Save a comment |
Note that these are the only Comment API functions still in use. Also see Integrating the Comment Engine.
Statistics
API Function | Description |
---|---|
plugin_showstats_ | Provide statistics information (summary and specifics) |
plugin_statssummary_ | Provide statistics for the summary only |
Also see Extending Site Statistics with your plugin and Stats Function.
Search
API Function | Description |
---|---|
plugin_dopluginsearch_ | Perform search (v1 API) or provide search details and let Geeklog perform the search (v2 API) |
plugin_searchtypes_ | Provide entries for the "type" dropdown on the Advanced Search page |
plugin_supportsexpandedsearch_ | (not used any more) |
Plugin authors are encouraged to Use Geeklog's Improved Search Engine, available as of Geeklog 1.6.0.
For backward compatibility with older Geeklog versions, also see Using Geeklog's Search Engine and Search Functions.
UI and Templates
API Function | Description |
---|---|
plugin_cclabel_ | Get entry for the "Command and Control" page |
plugin_getadminoption_ | Get entries for the Admins Block |
plugin_getdocumentationurl_ | Link to plugin documentation |
plugin_getheadercode_ | Add code, etc. to the HTML <head> section, e.g. meta tags
|
plugin_geticon_ | Provide URL of the plugin's icon |
plugin_getmenuitems_ | Add entries to the header menu |
plugin_getuseroption_ | Get entries for the User Functions Block |
plugin_profileblocksdisplay_ | Add template variables when displaying a block on the user profile page |
plugin_profileblocksedit_ | Add template variables to a block when editing the user profile |
plugin_profileextrassave_ | Save plugin-specific additions when saving a user's profile |
plugin_profilevariablesdisplay_ | Add template variables when displaying the user profile page |
plugin_profilevariablesedit_ | Add template variables when editing the user profile |
plugin_templatesetvars_ | Add template variables to the standard templates, e.g. site header, articles, ... |
User
API Function | Description |
---|---|
plugin_user_changed_ | A user's profile information or preferences changed |
plugin_user_create_ | A new user was created |
plugin_user_delete_ | A user is about to be deleted |
plugin_user_login_ | A user has logged in (using the login form) |
plugin_user_logout_ | A user has logged out (explicitly, i.e. using the "Log Out" link) |
Feeds
API Function | Description |
---|---|
plugin_feedElementExtensions_ | Get extension tags for a feed |
plugin_feedExtensionTags_ | Get meta tag extensions for a feed |
plugin_feedNSExtensions_ | Get namespace extensions for a feed |
plugin_feedupdatecheck_ | Plugin should check if a feed needs to be updated |
plugin_getfeedcontent_ | Get content of a plugin feed |
plugin_getfeednames_ | Get a list of feeds provided by the plugin |
Also see RSS API.
Spam Filter
API Function | Description |
---|---|
plugin_spamaction_ | Trigger action on recognized spam |
plugin_checkforSpam_ | Check if content is spam |
Note: These API functions are used by plugins implementing a spam filter, i.e. they are implemented by the Spam-X Plugin. To filter spam in your plugin, see Filtering Spam with Spam-X.
Misc
API Function | Description |
---|---|
plugin_autotags_ | Provide or replace autotags |
plugin_getBlocks_ | Provide dynamically created blocks |
plugin_centerblock_ | Display a centerblock |
plugin_configchange_ | A change was made in the Configuration for Geeklog or a plugin |
plugin_getiteminfo_ | Provide information about an item |
plugin_group_changed_ | A group's information has changed or a new group was created |
plugin_handlepingoperation_ | Accept or delete a Trackback or Pingback |
plugin_itemdisplay_ | An item is about to be displayed |
plugin_itemdeleted_ | An item was deleted |
plugin_itemPreSave_ | Called before an item is saved |
plugin_itemsaved_ | Geeklog saved an item |
plugin_getwhatsnew_ | Provide content for the What's New Block |
plugin_pluginstatechange_ | A plugin's state changed |
plugin_runScheduledTask_ | Run a task at a scheduled time (cronjob-like functionality) |
plugin_whatsnewsupported_ | Return headline and byline for the What's New Block |
plugin_wsEnabled_ | Whether or not the plugin supports the Webservices API |