From dd5e99eb1b8ba20842643b48b6335aa749d58a60 Mon Sep 17 00:00:00 2001 From: remicollet Date: Fri, 30 Oct 2009 09:07:36 +0000 Subject: [PATCH] use CommonDropdown object git-svn-id: https://forge.glpi-project.org/svn/example/trunk@96 349b9182-4a13-0410-896f-e5e9767dd1b3 --- hook.php | 22 +++++++++++++++++++--- setup.php | 12 ++++++++++++ 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/hook.php b/hook.php index a603a79..fdef3ce 100644 --- a/hook.php +++ b/hook.php @@ -35,11 +35,25 @@ // Class of the defined type class pluginExample extends CommonDBTM { - function pluginExample () { + function __construct () { $this->table="glpi_plugin_example"; $this->type=PLUGIN_EXAMPLE_TYPE; } -}; +} + +// Class for a Dropdown +class pluginExampleDropdown extends CommonDropdown { + function __construct () { + $this->table="glpi_plugin_example_dropdown"; + $this->type=PLUGIN_EXAMPLEDROPDOWN_TYPE; + } + + static function getTypeName() { + global $LANG; + + return "Plugin Example Dropdown"; + } +} // Hook called on profile change // Good place to evaluate the user right on this plugin @@ -69,7 +83,7 @@ function plugin_example_getDatabaseRelations(){ // Define Dropdown tables to be manage in GLPI : function plugin_example_getDropdown(){ // Table => Name - return array("glpi_plugin_example_dropdown"=>"Plugin Example Dropdown"); + return array(PLUGIN_EXAMPLEDROPDOWN_TYPE => "Plugin Example Dropdown"); } ////// SEARCH FUNCTIONS ///////(){ @@ -103,6 +117,8 @@ function plugin_example_getSearchOption(){ $sopt[PLUGIN_EXAMPLE_TYPE][30]['linkfield']=''; $sopt[PLUGIN_EXAMPLE_TYPE][30]['name']=$LANG["common"][2]; + $obj = new pluginExampleDropdown(); + $sopt[PLUGIN_EXAMPLEDROPDOWN_TYPE] = $obj->getSearchOptions(); return $sopt; } diff --git a/setup.php b/setup.php index 1dd00a8..7dec12d 100755 --- a/setup.php +++ b/setup.php @@ -52,6 +52,15 @@ function plugin_init_example() { //'linkgroup_types' => true )); + // Params : plugin name - string type - ID - Array of attributes + registerPluginType('example', 'PLUGIN_EXAMPLEDROPDOWN_TYPE', 1002, array( + 'classname' => 'pluginExampleDropdown', + 'tablename' => 'glpi_plugin_example_dropdown', + 'formpage' => 'example.form.php', + 'searchpage' => 'index.php', + 'typename' => 'Example Dropdown Type', + 'dropdown' => true)); + // Display a menu entry ? if (plugin_example_haveTypeRight(PLUGIN_EXAMPLE_TYPE,'r')) { // Right set in change_profile hook $PLUGIN_HOOKS['menu_entry']['example'] = true; @@ -176,6 +185,9 @@ function plugin_example_haveTypeRight($type,$right){ // Evaluate the right from data saved in session by change_profile hook return ($right=='r' || $_SESSION["glpi_plugin_example_profile"]=='w'); break; + case PLUGIN_EXAMPLEDROPDOWN_TYPE : + return haveRight("entity_dropdown",$right); + break; } }