Update plugin for new define of hook using array with itemtype

git-svn-id: https://forge.glpi-project.org/svn/example/trunk@135 349b9182-4a13-0410-896f-e5e9767dd1b3
This commit is contained in:
moyooo 2010-02-09 08:58:00 +00:00
parent 29d5a94d0a
commit afc9a0a05b
3 changed files with 60 additions and 96 deletions

View File

@ -331,8 +331,6 @@ function plugin_example_MassiveActionsFieldsDisplay($options=array()) {
// Hook done on before update item case
function plugin_pre_item_update_example($item) {
switch (get_class($item)) {
case 'Computer' :
/* Manipulate data if needed
if (!isset($item->input['comment'])) {
$item->input['comment'] = addslashes($item->fields['comment']);
@ -342,125 +340,69 @@ function plugin_pre_item_update_example($item) {
addMessageAfterRedirect("Pre Update Computer Hook",true);
break;
}
}
// Hook done on update item case
function plugin_item_update_example($item) {
switch (get_class($item)){
case 'Computer' :
addMessageAfterRedirect("Update Computer Hook (".implode(',',$item->updates).")",true);
return true;
}
return false;
}
// Hook done on before add item case
function plugin_pre_item_add_example($item) {
switch (get_class($item)) {
case 'Computer' :
// Manipulate data if needed
if (isset($item->input['comment'])) {
//$item->input['comment'] .= addslashes("\nFrom Example plugin");
}
addMessageAfterRedirect("Pre Add Computer Hook",true);
break;
}
}
// Hook done on add item case
function plugin_item_add_example($item) {
switch (get_class($item)) {
case 'Computer' :
addMessageAfterRedirect("Add Computer Hook, ID=".$item->getField('id'),true);
return true;
}
return false;
}
// Hook done on before delete item case
function plugin_pre_item_delete_example($object) {
switch (get_class($object)) {
case 'Computer' :
// Manipulate data if needed
addMessageAfterRedirect("Pre Delete Computer Hook",true);
break;
}
}
// Hook done on delete item case
function plugin_item_delete_example($object) {
switch (get_class($object)) {
case 'Computer' :
addMessageAfterRedirect("Delete Computer Hook",true);
return true;
}
return false;
}
// Hook done on before purge item case
function plugin_pre_item_purge_example($object) {
switch (get_class($object)) {
case 'Computer' :
// Manipulate data if needed
addMessageAfterRedirect("Pre Purge Computer Hook",true);
break;
case 'Phone' :
// Manipulate data if needed
addMessageAfterRedirect("Pre Purge Phone Hook",true);
// Cancel purge
// $object->input = false;
break;
}
}
// Hook done on purge item case
function plugin_item_purge_example($object) {
switch (get_class($object)) {
case 'Computer' :
addMessageAfterRedirect("Purge Computer Hook",true);
return true;
}
return false;
}
// Hook done on before restore item case
function plugin_pre_item_restore_example($item) {
switch (get_class($item)) {
case 'Computer' :
// Manipulate data if needed
addMessageAfterRedirect("Pre Restore Computer Hook");
break;
}
}
// Hook done on before restore item case
function plugin_pre_item_restore_example2($item) {
// Manipulate data if needed
addMessageAfterRedirect("Pre Restore Phone Hook");
}
// Hook done on restore item case
function plugin_item_restore_example($item) {
switch (get_class($item)) {
case 'Computer' :
addMessageAfterRedirect("Restore Computer Hook");
return true;
}
return false;
}
// Hook done on restore item case

View File

@ -126,6 +126,20 @@ class PluginExampleExample extends CommonDBTM {
return 1;
}
// Hook done on before add item case
static function pre_item_add_example($item) {
addMessageAfterRedirect("Pre Add Computer Hook",true);
}
// Hook done on add item case
static function item_add_example($item) {
addMessageAfterRedirect("Add Computer Hook, ID=".$item->getField('id'),true);
return true;
}
}
?>

View File

@ -81,20 +81,28 @@ function plugin_init_example() {
$PLUGIN_HOOKS['headings_action']['example'] = 'plugin_headings_actions_example';
// Item action event // See define.php for defined ITEM_TYPE
$PLUGIN_HOOKS['pre_item_update']['example'] = 'plugin_pre_item_update_example';
$PLUGIN_HOOKS['item_update']['example'] = 'plugin_item_update_example';
$PLUGIN_HOOKS['pre_item_update']['example'] = array('Computer'=>'plugin_pre_item_update_example');
$PLUGIN_HOOKS['item_update']['example'] = array('Computer'=>'plugin_item_update_example');
$PLUGIN_HOOKS['pre_item_add']['example'] = 'plugin_pre_item_add_example';
$PLUGIN_HOOKS['item_add']['example'] = 'plugin_item_add_example';
// Example using a method in class
$PLUGIN_HOOKS['pre_item_add']['example'] = array('Computer' => array('PluginExampleExample',
'pre_item_add_example'));
$PLUGIN_HOOKS['item_add']['example'] = array('Computer' => array('PluginExampleExample',
'item_add_example'));
$PLUGIN_HOOKS['pre_item_delete']['example'] = 'plugin_pre_item_delete_example';
$PLUGIN_HOOKS['item_delete']['example'] = 'plugin_item_delete_example';
$PLUGIN_HOOKS['pre_item_delete']['example'] = array('Computer'=>'plugin_pre_item_delete_example');
$PLUGIN_HOOKS['item_delete']['example'] = array('Computer'=>'plugin_item_delete_example');
$PLUGIN_HOOKS['pre_item_purge']['example'] = 'plugin_pre_item_purge_example';
$PLUGIN_HOOKS['item_purge']['example'] = 'plugin_item_purge_example';
// Example using the same function
$PLUGIN_HOOKS['pre_item_purge']['example'] = array('Computer'=>'plugin_pre_item_purge_example',
'Phone'=>'plugin_pre_item_purge_example');
$PLUGIN_HOOKS['item_purge']['example'] = array('Computer'=>'plugin_item_purge_example',
'Phone'=>'plugin_item_purge_example');
$PLUGIN_HOOKS['pre_item_restore']['example'] = 'plugin_pre_item_restore_example';
$PLUGIN_HOOKS['item_restore']['example'] = 'plugin_item_restore_example';
// Example with 2 different functions
$PLUGIN_HOOKS['pre_item_restore']['example'] = array('Computer'=>'plugin_pre_item_restore_example',
'Phone'=>'plugin_pre_item_restore_example2');
$PLUGIN_HOOKS['item_restore']['example'] = array('Computer'=>'plugin_item_restore_example');
$PLUGIN_HOOKS['item_transfer']['example'] = 'plugin_item_transfer_example';