diff --git a/hook.php b/hook.php index 8b2d2f5..54c6e26 100644 --- a/hook.php +++ b/hook.php @@ -87,8 +87,8 @@ function plugin_example_giveItem($type,$ID,$data,$num) { switch ($table.'.'.$field) { case "glpi_plugin_example_examples.name" : $out = ""; - $out .= $data["ITEM_$num"]; - if ($_SESSION["glpiis_ids_visible"] || empty($data["ITEM_$num"])) { + $out .= $data[$num][0]['name']; + if ($_SESSION["glpiis_ids_visible"] || empty($data[$num][0]['name'])) { $out .= " (".$data["id"].")"; } $out .= ""; diff --git a/inc/config.class.php b/inc/config.class.php index 9bb0950..59e731c 100644 --- a/inc/config.class.php +++ b/inc/config.class.php @@ -49,7 +49,7 @@ class PluginExampleConfig extends CommonDBTM { function showFormExample() { global $CFG_GLPI; - if (!Session::haveRight("config", "w")) { + if (!Session::haveRight("config", UPDATE)) { return false; } diff --git a/inc/example.class.php b/inc/example.class.php index 62d281c..87871bc 100644 --- a/inc/example.class.php +++ b/inc/example.class.php @@ -34,7 +34,8 @@ // Class of the defined type class PluginExampleExample extends CommonDBTM { - + + static $tags = '[EXAMPLE_ID]'; // Should return the localized name of the type static function getTypeName($nb = 0) { @@ -68,6 +69,7 @@ class PluginExampleExample extends CommonDBTM { return __('Example plugin'); } + /** * @see CommonGLPI::getAdditionalMenuLinks() **/ @@ -82,7 +84,33 @@ class PluginExampleExample extends CommonDBTM { return $links; } + function defineTabs($options = array()) { + $ong = array(); + $this->addDefaultFormTab($ong); + $this->addStandardTab('Link', $ong, $options); + + return $ong; + } + + function showForm($ID, $options = array()) { + global $CFG_GLPI; + + $this->initForm($ID, $options); + $this->showFormHeader($options); + + echo ""; + + echo "" . __('ID') . ""; + echo ""; + echo $ID; + echo ""; + + $this->showFormButtons($options); + + return true; + } + function getSearchOptions() { $tab = array(); @@ -357,8 +385,6 @@ class PluginExampleExample extends CommonDBTM { **/ function getSpecificMassiveActions($checkitem=NULL) { - Toolbox::logDebug(); - $actions = parent::getSpecificMassiveActions($checkitem); $actions['Document_Item'.MassiveAction::CLASS_ACTION_SEPARATOR.'add'] = @@ -445,6 +471,17 @@ class PluginExampleExample extends CommonDBTM { } parent::processMassiveActionsForOneItemtype($ma, $item, $ids); } + + static function generateLinkContents($link, CommonDBTM $item) { + + if (strstr($link,"[EXAMPLE_ID]")) { + $link = str_replace("[EXAMPLE_ID]", $item->getID(),$link); + return array($link); + } + + + return parent::generateLinkContents($link, $item); + } } ?> \ No newline at end of file diff --git a/setup.php b/setup.php index 678b36d..d552a5e 100755 --- a/setup.php +++ b/setup.php @@ -51,15 +51,20 @@ function plugin_init_example() { 'Preference', 'Profile', 'Supplier'); Plugin::registerClass('PluginExampleExample', array('notificationtemplates_types' => true, - 'addtabon' => $types)); + 'addtabon' => $types, + 'link_types' => true)); Plugin::registerClass('PluginExampleRuleTestCollection', array('rulecollections_types' => true)); Plugin::registerClass('PluginExampleDeviceCamera', array('device_types' => true)); - + + if (class_exists('PluginExampleExample')) { + Link::registerTag(PluginExampleExample::$tags); + } // Display a menu entry ? + $_SESSION["glpi_plugin_example_profile"]['example'] = 'w'; if (isset($_SESSION["glpi_plugin_example_profile"])) { // Right set in change_profile hook $PLUGIN_HOOKS['menu_toadd']['example'] = array('plugins' => 'PluginExampleExample', 'tools' => 'PluginExampleExample'); @@ -79,7 +84,7 @@ function plugin_init_example() { } // Config page - if (Session::haveRight('config','w')) { + if (Session::haveRight('config',UPDATE)) { $PLUGIN_HOOKS['config_page']['example'] = 'config.php'; }