From afc9a0a05b7a65ecd482d13742c3a10c59a1ed5b Mon Sep 17 00:00:00 2001 From: moyooo Date: Tue, 9 Feb 2010 08:58:00 +0000 Subject: [PATCH] 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 --- hook.php | 114 +++++++++++------------------------------- inc/example.class.php | 14 ++++++ setup.php | 28 +++++++---- 3 files changed, 60 insertions(+), 96 deletions(-) diff --git a/hook.php b/hook.php index 0c79f0f..a5d57c8 100644 --- a/hook.php +++ b/hook.php @@ -331,135 +331,77 @@ 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']); - } - $item->input['comment'] .= addslashes("\nUpdate: ".date('r')); - */ - addMessageAfterRedirect("Pre Update Computer Hook",true); - break; + /* Manipulate data if needed + if (!isset($item->input['comment'])) { + $item->input['comment'] = addslashes($item->fields['comment']); } + $item->input['comment'] .= addslashes("\nUpdate: ".date('r')); + */ + 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; + addMessageAfterRedirect("Update Computer Hook (".implode(',',$item->updates).")",true); + return true; } // 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; - } + // Manipulate data if needed + addMessageAfterRedirect("Pre Delete Computer Hook",true); } // 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; + addMessageAfterRedirect("Delete Computer Hook",true); + return true; } // 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; - } + // Manipulate data if needed + addMessageAfterRedirect("Pre Purge Computer Hook",true); } // 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; + addMessageAfterRedirect("Purge Computer Hook",true); + return true; } // 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; - } + // Manipulate data if needed + addMessageAfterRedirect("Pre Restore Computer Hook"); } +// 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; + addMessageAfterRedirect("Restore Computer Hook"); + return true; } diff --git a/inc/example.class.php b/inc/example.class.php index 65cbc51..d149bd7 100644 --- a/inc/example.class.php +++ b/inc/example.class.php @@ -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; + } + + } ?> diff --git a/setup.php b/setup.php index ff0042a..709d708 100755 --- a/setup.php +++ b/setup.php @@ -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';