Add ITEM_TYPE_CUSTOM and hooks for processing custom item types
This commit is contained in:
parent
f81a3ba45d
commit
09b2cdd618
2
boot.php
2
boot.php
@ -576,6 +576,8 @@ define ( 'ITEM_TYPE_BUG', 4 );
|
|||||||
define ( 'ITEM_TYPE_DOC', 5 );
|
define ( 'ITEM_TYPE_DOC', 5 );
|
||||||
define ( 'ITEM_TYPE_CARD', 6 );
|
define ( 'ITEM_TYPE_CARD', 6 );
|
||||||
define ( 'ITEM_TYPE_ARTICLE', 7 );
|
define ( 'ITEM_TYPE_ARTICLE', 7 );
|
||||||
|
//OSADA ITEM_TYPE_MAIL = 8
|
||||||
|
define ( 'ITEM_TYPE_CUSTOM', 9 );
|
||||||
|
|
||||||
define ( 'ITEM_IS_STICKY', 1000 );
|
define ( 'ITEM_IS_STICKY', 1000 );
|
||||||
|
|
||||||
|
24
doc/hook/item_custom.bb
Normal file
24
doc/hook/item_custom.bb
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
[h2]item_custom[/h2]
|
||||||
|
|
||||||
|
Allow addons to create and process custom item types.
|
||||||
|
|
||||||
|
Addon authors will need to use iconfig meta data (with sharing on) or some other method
|
||||||
|
to specify and determine whether the custom item is destined for their addon.
|
||||||
|
|
||||||
|
It is fed an array of ['item' => ${item_array}, 'allow_exec' => {true/false}]
|
||||||
|
|
||||||
|
By default $arr['item']['cancel'] is set to TRUE which will abort storage of the
|
||||||
|
custom item in the item table unless the addon unsets it or sets it to false.
|
||||||
|
|
||||||
|
[code]
|
||||||
|
if ($arr['item_type']==ITEM_TYPE_CUSTOM) {
|
||||||
|
/* Custom items are not stored by default
|
||||||
|
because they require an addon to process. */
|
||||||
|
$d['item']['cancel']=true;
|
||||||
|
|
||||||
|
call_hooks('item_custom',$d);
|
||||||
|
}
|
||||||
|
|
||||||
|
[/code]
|
||||||
|
|
||||||
|
see: include/items.php
|
18
doc/hook/item_stored.bb
Normal file
18
doc/hook/item_stored.bb
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
[h2]item_stored[/h2]
|
||||||
|
|
||||||
|
Allow addons to continue processing after an item has been stored in the event
|
||||||
|
that they need access to the item_id or other data that gets assigned during
|
||||||
|
the storage process.
|
||||||
|
|
||||||
|
It is fed an array of type item (including terms and iconfig data).
|
||||||
|
|
||||||
|
[code]
|
||||||
|
/**
|
||||||
|
* @hooks item_stored
|
||||||
|
* Called after new item is stored in the database.
|
||||||
|
* (By this time we have an item_id and other frequently needed info.)
|
||||||
|
*/
|
||||||
|
call_hooks('item_stored',$arr);
|
||||||
|
[/code]
|
||||||
|
|
||||||
|
see: include/items.php
|
15
doc/hook/item_stored_update.bb
Normal file
15
doc/hook/item_stored_update.bb
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
[h2]item_stored_update[/h2]
|
||||||
|
|
||||||
|
Allow addons to continue processing after an item update has been stored
|
||||||
|
|
||||||
|
It is fed an array of type item (including terms and iconfig data).
|
||||||
|
|
||||||
|
[code]
|
||||||
|
/**
|
||||||
|
* @hooks item_stored_update
|
||||||
|
* Called after updated item is stored in the database.
|
||||||
|
*/
|
||||||
|
call_hooks('item_stored_update',$arr);
|
||||||
|
[/code]
|
||||||
|
|
||||||
|
see: include/items.php
|
@ -343,9 +343,18 @@ Hooks allow plugins/addons to "hook into" the code at many points and alter the
|
|||||||
[zrl=[baseurl]/help/hook/item_store]item_store[/zrl]
|
[zrl=[baseurl]/help/hook/item_store]item_store[/zrl]
|
||||||
Called when item_store() stores a record of type item
|
Called when item_store() stores a record of type item
|
||||||
|
|
||||||
|
[zrl=[baseurl]/help/hook/item_stored]item_stored[/zrl]
|
||||||
|
Called after item_store() has stored a record of type item in the database.
|
||||||
|
|
||||||
|
[zrl=[baseurl]/help/hook/item_custom]item_custom[/zrl]
|
||||||
|
Called before item_store() stores a record of type item (allowing addons to process ITEM_TYPE_CUSTOM items).
|
||||||
|
|
||||||
[zrl=[baseurl]/help/hook/item_store_update]item_store_update[/zrl]
|
[zrl=[baseurl]/help/hook/item_store_update]item_store_update[/zrl]
|
||||||
Called when item_store_update() is called to update a stored item.
|
Called when item_store_update() is called to update a stored item.
|
||||||
|
|
||||||
|
[zrl=[baseurl]/help/hook/item_stored_update]item_stored_update[/zrl]
|
||||||
|
Called after item_store_update() has updated a stored item.
|
||||||
|
|
||||||
[zrl=[baseurl]/help/hook/item_translate]item_translate[/zrl]
|
[zrl=[baseurl]/help/hook/item_translate]item_translate[/zrl]
|
||||||
Called from item_store and item_store_update after the post language has been autodetected
|
Called from item_store and item_store_update after the post language has been autodetected
|
||||||
|
|
||||||
|
@ -1591,6 +1591,14 @@ function item_store($arr, $allow_exec = false, $deliver = true) {
|
|||||||
'item' => $arr,
|
'item' => $arr,
|
||||||
'allow_exec' => $allow_exec
|
'allow_exec' => $allow_exec
|
||||||
];
|
];
|
||||||
|
|
||||||
|
if ($arr['item_type']==ITEM_TYPE_CUSTOM) {
|
||||||
|
/* Custom items are not stored by default
|
||||||
|
because they require an addon to process. */
|
||||||
|
$d['item']['cancel']=true;
|
||||||
|
|
||||||
|
call_hooks('item_custom',$d);
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* @hooks item_store
|
* @hooks item_store
|
||||||
* Called when item_store() stores a record of type item.
|
* Called when item_store() stores a record of type item.
|
||||||
@ -2016,6 +2024,13 @@ function item_store($arr, $allow_exec = false, $deliver = true) {
|
|||||||
*/
|
*/
|
||||||
call_hooks('post_remote_end', $arr);
|
call_hooks('post_remote_end', $arr);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @hooks item_stored
|
||||||
|
* Called after new item is stored in the database.
|
||||||
|
* (By this time we have an item_id and other frequently needed info.)
|
||||||
|
*/
|
||||||
|
call_hooks('item_stored',$arr);
|
||||||
|
|
||||||
item_update_parent_commented($arr);
|
item_update_parent_commented($arr);
|
||||||
|
|
||||||
// If _creating_ a deleted item, don't propagate it further or send out notifications.
|
// If _creating_ a deleted item, don't propagate it further or send out notifications.
|
||||||
@ -2049,6 +2064,15 @@ function item_store_update($arr, $allow_exec = false, $deliver = true) {
|
|||||||
'item' => $arr,
|
'item' => $arr,
|
||||||
'allow_exec' => $allow_exec
|
'allow_exec' => $allow_exec
|
||||||
];
|
];
|
||||||
|
|
||||||
|
if ($arr['item_type']==ITEM_TYPE_CUSTOM) {
|
||||||
|
/* Custom items are not stored by default
|
||||||
|
because they require an addon to process. */
|
||||||
|
$d['item']['cancel']=true;
|
||||||
|
|
||||||
|
call_hooks('item_custom_update',$d);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @hooks item_store_update
|
* @hooks item_store_update
|
||||||
* Called when item_store_update() is called to update a stored item. It
|
* Called when item_store_update() is called to update a stored item. It
|
||||||
@ -2339,6 +2363,12 @@ function item_store_update($arr, $allow_exec = false, $deliver = true) {
|
|||||||
*/
|
*/
|
||||||
call_hooks('post_remote_update_end', $arr);
|
call_hooks('post_remote_update_end', $arr);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @hooks item_stored_update
|
||||||
|
* Called after updated item is stored in the database.
|
||||||
|
*/
|
||||||
|
call_hooks('item_stored_update',$arr);
|
||||||
|
|
||||||
if($deliver) {
|
if($deliver) {
|
||||||
send_status_notifications($orig_post_id,$arr);
|
send_status_notifications($orig_post_id,$arr);
|
||||||
tag_deliver($uid,$orig_post_id);
|
tag_deliver($uid,$orig_post_id);
|
||||||
|
Reference in New Issue
Block a user