PLG itemSaved
Introduction
The motivation for PLG_itemSaved
is to have a call that plugins can hook into whenever Geeklog (or another plugin) saves one of its items (article, comment, ...) so that plugins can perform actions on their own if they want to track changes on an item.
The original implementation, however, was very complex and included a rollback mechanism that was called when one of the plugins indicated a problem. As a result, it was only ever implemented for stories (and not even correctly at that ...).
So as of Geeklog 1.6.0, this API has been simplified and implemented not only for stories but also for Events, Links, Polls, and Static Pages (more to come).
The API
function PLG_itemSaved($id, $type, $old_id = '')
where $id
is the unique ID of the item being saved. If the item's ID is changed with this save operation, then $id
will contain the new ID and $old_id
contains the previous ID (otherwise it's empty).
$type
is the item's type, e.g. 'article'
for a story. For plugins, the item's type is usually identical with the plugin's internal name, e.g. 'links'
for a link from the Links plugin.
Subtypes
(not finalized yet)
For plugins that support more than one type of item (e.g. the Links plugin, which has links and link categories), the type can consist of two parts: The main type (identical with the plugin's name) and a subtype, separated by a dot '.'
, e.g.
links.category
Return value
The return value of PLG_itemSaved
is void
, i.e. it does not return anything (actually, it does currently return false
for backward compatibility with the old API implementation but that should not be relied upon).
PLG_itemDeleted
When an item is deleted, PLG_itemDeleted
is called (PLG_itemSaved
is not called for deleted items):
function PLG_itemDeleted($id, $type)