diff --git a/front/example.php b/front/example.php index 262186c..a2ec4ed 100755 --- a/front/example.php +++ b/front/example.php @@ -36,10 +36,10 @@ define('GLPI_ROOT', '../../..'); include (GLPI_ROOT . "/inc/includes.php"); -if ($_SESSION["glpiactiveprofile"]["interface"] == "central"){ - commonHeader("TITRE", $_SERVER['PHP_SELF'],"plugins","example","optionname"); +if ($_SESSION["glpiactiveprofile"]["interface"] == "central") { + commonHeader("TITRE", $_SERVER['PHP_SELF'],"plugins","example","optionname"); } else { - helpHeader("TITRE", $_SERVER['PHP_SELF']); + helpHeader("TITRE", $_SERVER['PHP_SELF']); } checkTypeRight('PluginExampleExample',"r"); diff --git a/hook.php b/hook.php index 24b55dc..fdfe0a2 100644 --- a/hook.php +++ b/hook.php @@ -38,577 +38,573 @@ // And to save it in the session function plugin_change_profile_example() { - // For example : same right of computer - if (haveRight('computer','w')) { - $_SESSION["glpi_plugin_example_profile"]=array('example'=>'w'); + // For example : same right of computer + if (haveRight('computer','w')) { + $_SESSION["glpi_plugin_example_profile"] = array('example' => 'w'); - } else if (haveRight('computer','r')) { - $_SESSION["glpi_plugin_example_profile"]=array('example'=>'r'); - - } else { - unset($_SESSION["glpi_plugin_example_profile"]); - } + } else if (haveRight('computer','r')) { + $_SESSION["glpi_plugin_example_profile"] = array('example' => 'r'); + } else { + unset($_SESSION["glpi_plugin_example_profile"]); + } } + // Define dropdown relations -function plugin_example_getDatabaseRelations(){ - // - return array("glpi_plugin_example_dropdowns"=>array("glpi_plugin_example"=>"plugin_example_dropdowns_id")); +function plugin_example_getDatabaseRelations() { + return array("glpi_plugin_example_dropdowns" => array("glpi_plugin_example" => "plugin_example_dropdowns_id")); } // Define Dropdown tables to be manage in GLPI : -function plugin_example_getDropdown(){ - // Table => Name - return array('PluginExampleDropdown' => "Plugin Example Dropdown"); +function plugin_example_getDropdown() { + // Table => Name + return array('PluginExampleDropdown' => "Plugin Example Dropdown"); } ////// SEARCH FUNCTIONS ///////(){ // Define Additionnal search options for types (other than the plugin ones) -function plugin_example_getAddSearchOptions($itemtype){ - global $LANG; +function plugin_example_getAddSearchOptions($itemtype) { + global $LANG; - $sopt=array(); - if ($itemtype == COMPUTER_TYPE) { + $sopt = array(); + if ($itemtype == 'Computer') { // Just for example, not working... $sopt[1001]['table'] = 'glpi_plugin_example_dropdowns'; $sopt[1001]['field'] = 'name'; $sopt[1001]['linkfield'] = 'plugin_example_dropdowns_id'; $sopt[1001]['name'] = 'Example plugin'; } - - return $sopt; -} - -function plugin_example_giveItem($type,$ID,$data,$num){ - - $searchopt=&Search::getOptions($type); - $table=$searchopt[$ID]["table"]; - $field=$searchopt[$ID]["field"]; - - 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["id"].")"; - $out.= ""; - return $out; - break; - } - return ""; -} - -function plugin_example_addLeftJoin($type,$ref_table,$new_table,$linkfield){ - - // Example of standard LEFT JOIN clause but use it ONLY for specific LEFT JOIN - // No need of the function if you do not have specific cases - switch ($new_table){ - case "glpi_plugin_example_dropdowns" : - return " LEFT JOIN $new_table ON ($ref_table.$linkfield = $new_table.id) "; - break; - } - return ""; + return $sopt; } +function plugin_example_giveItem($type,$ID,$data,$num) { -function plugin_example_forceGroupBy($type){ - switch ($type){ - case 'PluginExampleExample' : - // Force add GROUP BY IN REQUEST - return true; - break; - } - return false; + $searchopt = &Search::getOptions($type); + $table = $searchopt[$ID]["table"]; + $field = $searchopt[$ID]["field"]; + + 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["id"].")"; + } + $out .= ""; + return $out; + } + return ""; } -function plugin_example_addWhere($link,$nott,$type,$ID,$val){ - $searchopt=&Search::getOptions($type); - $table=$searchopt[$ID]["table"]; - $field=$searchopt[$ID]["field"]; +function plugin_example_addLeftJoin($type,$ref_table,$new_table,$linkfield) { - $SEARCH=makeTextSearch($val,$nott); - - // Example of standard Where clause but use it ONLY for specific Where - // No need of the function if you do not have specific cases -// switch ($table.".".$field){ -// case "glpi_plugin_example.name" : -// $ADD=""; -// if ($nott&&$val!="NULL") { -// $ADD=" OR $table.$field IS NULL"; -// } -// return $link." ($table.$field $SEARCH ".$ADD." ) "; -// break; -// } - return ""; + // Example of standard LEFT JOIN clause but use it ONLY for specific LEFT JOIN + // No need of the function if you do not have specific cases + switch ($new_table) { + case "glpi_plugin_example_dropdowns" : + return " LEFT JOIN `$new_table` ON (`$ref_table`.`$linkfield` = `$new_table`.`id`) "; + } + return ""; } + +function plugin_example_forceGroupBy($type) { + + switch ($type) { + case 'PluginExampleExample' : + // Force add GROUP BY IN REQUEST + return true; + } + return false; +} + + +function plugin_example_addWhere($link,$nott,$type,$ID,$val) { + + $searchopt = &Search::getOptions($type); + $table = $searchopt[$ID]["table"]; + $field = $searchopt[$ID]["field"]; + + $SEARCH = makeTextSearch($val,$nott); + + // Example of standard Where clause but use it ONLY for specific Where + // No need of the function if you do not have specific cases + // switch ($table.".".$field) { + // case "glpi_plugin_example.name" : + // $ADD = ""; + // if ($nott && $val!="NULL") { + // $ADD = " OR `$table`.`$field` IS NULL"; + // } + // return $link." (`$table`.`$field` $SEARCH ".$ADD." ) "; + // } + return ""; +} + + // This is not a real example because the use of Having condition in this case is not suitable -function plugin_example_addHaving($link,$nott,$type,$ID,$val,$num){ +function plugin_example_addHaving($link,$nott,$type,$ID,$val,$num) { - $searchopt=&Search::getOptions($type); - $table=$searchopt[$ID]["table"]; - $field=$searchopt[$ID]["field"]; + $searchopt = &Search::getOptions($type); + $table = $searchopt[$ID]["table"]; + $field = $searchopt[$ID]["field"]; - $SEARCH=makeTextSearch($val,$nott); + $SEARCH = makeTextSearch($val,$nott); - // Example of standard Having clause but use it ONLY for specific Having - // No need of the function if you do not have specific cases - switch ($table.".".$field){ - case "glpi_plugin_example.serial" : - $ADD=""; - if (($nott&&$val!="NULL")||$val=='^$') { - $ADD=" OR ITEM_$num IS NULL"; - } - - return " $LINK ( ITEM_".$num.$SEARCH." $ADD ) "; - break; - } - - - return ""; + // Example of standard Having clause but use it ONLY for specific Having + // No need of the function if you do not have specific cases + switch ($table.".".$field) { + case "glpi_plugin_example.serial" : + $ADD = ""; + if (($nott && $val!="NULL") + || $val == '^$') { + $ADD = " OR ITEM_$num IS NULL"; + } + return " $LINK ( ITEM_".$num.$SEARCH." $ADD ) "; + } + return ""; } -function plugin_example_addSelect($type,$ID,$num){ - $searchopt=&Search::getOptions($type); - $table=$searchopt[$ID]["table"]; - $field=$searchopt[$ID]["field"]; +function plugin_example_addSelect($type,$ID,$num) { + + $searchopt = &Search::getOptions($type); + $table = $searchopt[$ID]["table"]; + $field = $searchopt[$ID]["field"]; // Example of standard Select clause but use it ONLY for specific Select // No need of the function if you do not have specific cases -// switch ($table.".".$field){ -// case "glpi_plugin_example.name" : -// return $table.".".$field." AS ITEM_$num, "; -// break; -// } - return ""; +// switch ($table.".".$field) { +// case "glpi_plugin_example.name" : +// return $table.".".$field." AS ITEM_$num, "; +// } + return ""; } -function plugin_example_addOrderBy($type,$ID,$order,$key=0){ - $searchopt=&Search::getOptions($type); - $table=$searchopt[$ID]["table"]; - $field=$searchopt[$ID]["field"]; +function plugin_example_addOrderBy($type,$ID,$order,$key=0) { + + $searchopt = &Search::getOptions($type); + $table = $searchopt[$ID]["table"]; + $field = $searchopt[$ID]["field"]; // Example of standard OrderBy clause but use it ONLY for specific order by // No need of the function if you do not have specific cases -// switch ($table.".".$field){ -// case "glpi_plugin_example.name" : -// return " ORDER BY $table.$field $order "; -// break; -// } - return ""; +// switch ($table.".".$field) { +// case "glpi_plugin_example.name" : +// return " ORDER BY $table.$field $order "; +// } + return ""; } + + ////////////////////////////// ////// SPECIFIC MODIF MASSIVE FUNCTIONS /////// // Define actions : -function plugin_example_MassiveActions($type){ - global $LANG; - switch ($type){ - // New action for core and other plugin types : name = plugin_PLUGINNAME_actionname - case COMPUTER_TYPE : - return array( - "plugin_example_DoIt"=>"plugin_example_DoIt", - ); - break; +function plugin_example_MassiveActions($type) { + global $LANG; - // Actions for types provided by the plugin - case 'PluginExampleExample' : - return array( - // GLPI core one - "add_document"=>$LANG["document"][16], - // Specific one - "do_nothing"=>'Do Nothing - just for fun' - ); - break; - } - return array(); + switch ($type) { + // New action for core and other plugin types : name = plugin_PLUGINNAME_actionname + case 'Computer' : + return array("plugin_example_DoIt" => "plugin_example_DoIt"); + + // Actions for types provided by the plugin + case 'PluginExampleExample' : + return array("add_document" => $LANG["document"][16], // GLPI core one + "do_nothing" => 'Do Nothing - just for fun'); // Specific one + } + return array(); } + // How to display specific actions ? -function plugin_example_MassiveActionsDisplay($type,$action){ - global $LANG; - switch ($type){ - case COMPUTER_TYPE: - switch ($action){ - case "plugin_example_DoIt": - echo " but do nothing :)"; - break; - } - break; - case 'PluginExampleExample': - switch ($action){ - // No case for add_document : use GLPI core one - case "do_nothing": - echo " but do nothing :)"; - break; - } - break; - } - return ""; +function plugin_example_MassiveActionsDisplay($type,$action) { + global $LANG; + + switch ($type) { + case 'Computer' : + switch ($action) { + case "plugin_example_DoIt" : + echo " but do nothing :)"; + break; + } + break; + + case 'PluginExampleExample' : + switch ($action) { + // No case for add_document : use GLPI core one + case "do_nothing" : + echo " but do nothing :)"; + break; + } + break; + } + return ""; } + // How to process specific actions ? -function plugin_example_MassiveActionsProcess($data){ - global $LANG; +function plugin_example_MassiveActionsProcess($data) { + global $LANG; - - switch ($data['action']){ - case 'plugin_example_DoIt': - if ($data['itemtype']=='Computer'){ + switch ($data['action']) { + case 'plugin_example_DoIt' : + if ($data['itemtype'] == 'Computer') { $comp = new Computer; - addMessageAfterRedirect("Right it is the type I want..."); - addMessageAfterRedirect("But... I say I will do nothing for :"); - foreach ($data['item'] as $key => $val){ - if ($val==1) { - if ($comp->getFromDB($key)){ - addMessageAfterRedirect("- ".$comp->getField("name")); - } - } - } - } - break; - case 'do_nothing': - if ($data['itemtype']=='PluginExampleExample'){ - $ex =new PluginExampleExample(); - addMessageAfterRedirect("Right it is the type I want..."); - addMessageAfterRedirect("But... I say I will do nothing for :"); - foreach ($data['item'] as $key => $val){ - if ($val==1) { - if ($ex->getFromDB($key)){ - addMessageAfterRedirect("- ".$ex->getField("name")); - } - } - } - } - break; - } + addMessageAfterRedirect("Right it is the type I want..."); + addMessageAfterRedirect("But... I say I will do nothing for :"); + foreach ($data['item'] as $key => $val) { + if ($val == 1) { + if ($comp->getFromDB($key)) { + addMessageAfterRedirect("- ".$comp->getField("name")); + } + } + } + } + break; + + case 'do_nothing' : + if ($data['itemtype'] == 'PluginExampleExample') { + $ex = new PluginExampleExample(); + addMessageAfterRedirect("Right it is the type I want..."); + addMessageAfterRedirect("But... I say I will do nothing for :"); + foreach ($data['item'] as $key => $val) { + if ($val == 1) { + if ($ex->getFromDB($key)) { + addMessageAfterRedirect("- ".$ex->getField("name")); + } + } + } + } + break; + } } + + // How to display specific update fields ? -function plugin_example_MassiveActionsFieldsDisplay($type,$table,$field,$linkfield){ +function plugin_example_MassiveActionsFieldsDisplay($type,$table,$field,$linkfield) { - if ($table==getTableForItemType($type)){ - // Table fields - switch ($table.".".$field){ - case 'glpi_plugin_example.serial': - echo "Not really specific - Just for example "; - autocompletionTextField($linkfield,$table,$field); - // Dropdown::showYesNo($linkfield); - // Need to return true if specific display - return true; - break; - } + if ($table == getTableForItemType($type)) { + // Table fields + switch ($table.".".$field) { + case 'glpi_plugin_example.serial' : + echo "Not really specific - Just for example "; + autocompletionTextField($linkfield,$table,$field); + // Dropdown::showYesNo($linkfield); + // Need to return true if specific display + return true; + } - } else { - // Linked Fields - switch ($table.".".$field){ - case "glpi_plugin_example_dropdowns.name" : - echo "Not really specific - Just for example "; - dropdown($table,$linkfield,1,$_SESSION["glpiactive_entity"]); - //dropdownUsers($linkfield,0,"own_ticket",0,1,$_SESSION["glpiactive_entity"]); - // Need to return true if specific display - return true; - break; - } - } - // Need to return false on non display item - return false; + } else { + // Linked Fields + switch ($table.".".$field) { + case "glpi_plugin_example_dropdowns.name" : + echo "Not really specific - Just for example "; + dropdown($table,$linkfield,1,$_SESSION["glpiactive_entity"]); + //dropdownUsers($linkfield,0,"own_ticket",0,1,$_SESSION["glpiactive_entity"]); + // Need to return true if specific display + return true; + } + } + // Need to return false on non display item + return false; } + ////////////////////////////// // Hook done on before update item case -function plugin_pre_item_update_example($input){ - if (isset($input["_item_type_"])) - switch ($input["_item_type_"]){ - case COMPUTER_TYPE : - // Manipulate data if needed - addMessageAfterRedirect("Pre Update Computer Hook",true); - break; - } - return $input; +function plugin_pre_item_update_example($input) { + + if (isset($input["_item_type_"])) { + switch ($input["_item_type_"]) { + case 'Computer' : + // Manipulate data if needed + addMessageAfterRedirect("Pre Update Computer Hook",true); + break; + } + } + return $input; } // Hook done on update item case -function plugin_item_update_example($parm){ +function plugin_item_update_example($parm) { - if (isset($parm["type"])) - switch ($parm["type"]){ - case COMPUTER_TYPE : - addMessageAfterRedirect("Update Computer Hook",true); - return true; - break; - } - return false; + if (isset($parm["type"])) { + switch ($parm["type"]){ + case 'Computer' : + addMessageAfterRedirect("Update Computer Hook",true); + return true; + } + } + return false; } + // Hook done on before add item case -function plugin_pre_item_add_example($input){ - if (isset($input["_item_type_"])) - switch ($input["_item_type_"]){ - case COMPUTER_TYPE : - // Manipulate data if needed - addMessageAfterRedirect("Pre Add Computer Hook",true); - break; - } - return $input; +function plugin_pre_item_add_example($input) { + + if (isset($input["_item_type_"])) { + switch ($input["_item_type_"]) { + case 'Computer' : + // Manipulate data if needed + addMessageAfterRedirect("Pre Add Computer Hook",true); + break; + } + } + return $input; } + // Hook done on add item case -function plugin_item_add_example($parm){ +function plugin_item_add_example($parm) { - if (isset($parm["type"])) - switch ($parm["type"]){ - case COMPUTER_TYPE : - addMessageAfterRedirect("Add Computer Hook",true); - return true; - break; - } - return false; + if (isset($parm["type"])) { + switch ($parm["type"]) { + case 'Computer' : + addMessageAfterRedirect("Add Computer Hook",true); + return true; + } + } + return false; } + // Hook done on before delete item case -function plugin_pre_item_delete_example($input){ - if (isset($input["_item_type_"])) - switch ($input["_item_type_"]){ - case COMPUTER_TYPE : - // Manipulate data if needed - addMessageAfterRedirect("Pre Delete Computer Hook",true); - break; - } - return $input; -} -// Hook done on delete item case -function plugin_item_delete_example($parm){ +function plugin_pre_item_delete_example($input) { - if (isset($parm["type"])) - switch ($parm["type"]){ - case COMPUTER_TYPE : - addMessageAfterRedirect("Delete Computer Hook",true); - return true; - break; - } - return false; + if (isset($input["_item_type_"])) { + switch ($input["_item_type_"]) { + case 'Computer' : + // Manipulate data if needed + addMessageAfterRedirect("Pre Delete Computer Hook",true); + break; + } + } + return $input; } + +// Hook done on delete item case +function plugin_item_delete_example($parm) { + + if (isset($parm["type"])) { + switch ($parm["type"]) { + case 'Computer' : + addMessageAfterRedirect("Delete Computer Hook",true); + return true; + } + } + return false; +} + + // Hook done on before purge item case -function plugin_pre_item_purge_example($input){ - if (isset($input["_item_type_"])) - switch ($input["_item_type_"]){ - case COMPUTER_TYPE : - // Manipulate data if needed - addMessageAfterRedirect("Pre Purge Computer Hook",true); - break; - } - return $input; -} -// Hook done on purge item case -function plugin_item_purge_example($parm){ +function plugin_pre_item_purge_example($input) { - if (isset($parm["type"])) - switch ($parm["type"]){ - case COMPUTER_TYPE : - addMessageAfterRedirect("Purge Computer Hook",true); - return true; - break; - } - return false; + if (isset($input["_item_type_"])) { + switch ($input["_item_type_"]) { + case 'Computer' : + // Manipulate data if needed + addMessageAfterRedirect("Pre Purge Computer Hook",true); + break; + } + } + return $input; } + +// Hook done on purge item case +function plugin_item_purge_example($parm) { + + if (isset($parm["type"])) { + switch ($parm["type"]) { + case 'Computer' : + addMessageAfterRedirect("Purge Computer Hook",true); + return true; + } + } + return false; +} + + // Hook done on before restore item case -function plugin_pre_item_restore_example($input){ - if (isset($input["_item_type_"])) - switch ($input["_item_type_"]){ - case COMPUTER_TYPE : - // Manipulate data if needed - addMessageAfterRedirect("Pre Restore Computer Hook"); - break; - } - return $input; -} -// Hook done on restore item case -function plugin_item_restore_example($parm){ +function plugin_pre_item_restore_example($input) { - if (isset($parm["type"])) - switch ($parm["type"]){ - case COMPUTER_TYPE : - addMessageAfterRedirect("Restore Computer Hook"); - return true; - break; - } - return false; + if (isset($input["_item_type_"])) { + switch ($input["_item_type_"]) { + case 'Computer' : + // Manipulate data if needed + addMessageAfterRedirect("Pre Restore Computer Hook"); + break; + } + } + return $input; } + // Hook done on restore item case -function plugin_item_transfer_example($parm){ +function plugin_item_restore_example($parm) { - addMessageAfterRedirect("Transfer Computer Hook ".$parm['type']." ".$parm['id']." -> ".$parm['newID']); - - return false; + if (isset($parm["type"])) { + switch ($parm["type"]) { + case 'Computer' : + addMessageAfterRedirect("Restore Computer Hook"); + return true; + } + } + return false; } + +// Hook done on restore item case +function plugin_item_transfer_example($parm) { + + addMessageAfterRedirect("Transfer Computer Hook ".$parm['type']." ".$parm['id']." -> ". + $parm['newID']); + + return false; +} + + // Parm contains begin, end and who // Create data to be displayed in the planning of $parm["who"] or $parm["who_group"] between $parm["begin"] and $parm["end"] -function plugin_planning_populate_example($parm){ +function plugin_planning_populate_example($parm) { - // Add items in the items fields of the parm array - // Items need to have an unique index beginning by the begin date of the item to display - // needed to be correcly displayed + // Add items in the items fields of the parm array + // Items need to have an unique index beginning by the begin date of the item to display + // needed to be correcly displayed + $parm["items"][$parm["begin"]."$$$"."plugin_example1"]["plugin"] = "example"; + $parm["items"][$parm["begin"]."$$$"."plugin_example1"]["begin"] = date("Y-m-d 17:00:00"); + $parm["items"][$parm["begin"]."$$$"."plugin_example1"]["end"] = date("Y-m-d 18:00:00"); + $parm["items"][$parm["begin"]."$$$"."plugin_example1"]["name"] = "test planning example 1 "; + // Set the ID using the ID of the item in the database to have unique ID + $ID = date("Ymd"); // Current date for example + $parm["items"][$parm["begin"]."$$$"."plugin_example1"]["planningID"] = "plugin_example".$ID; - $parm["items"][$parm["begin"]."$$$"."plugin_example1"]["plugin"]="example"; - $parm["items"][$parm["begin"]."$$$"."plugin_example1"]["begin"]=date("Y-m-d 17:00:00"); - $parm["items"][$parm["begin"]."$$$"."plugin_example1"]["end"]=date("Y-m-d 18:00:00"); - $parm["items"][$parm["begin"]."$$$"."plugin_example1"]["name"]="test planning example 1 "; - // Set the ID using the ID of the item in the database to have unique ID - $ID=date("Ymd"); // Current date for example - $parm["items"][$parm["begin"]."$$$"."plugin_example1"]["planningID"]="plugin_example".$ID; - - return $parm; + return $parm; } + // Display the planning item -function plugin_display_planning_example($parm){ - // $parm["type"] say begin end in or from type - // Add items in the items fields of the parm array - global $LANG; - switch ($parm["type"]){ - case "in": - echo date("H:i",strtotime($parm["begin"]))." -> ".date("H:i",strtotime($parm["end"])).": "; - break; - case "from": - break; - case "begin"; - echo $LANG["buttons"][33]." ".date("H:i",strtotime($parm["begin"])).": "; - break; - case "end"; - echo $LANG["buttons"][32]." ".date("H:i",strtotime($parm["end"])).": "; - break; - } - echo $parm["name"]; +function plugin_display_planning_example($parm) { + global $LANG; + + // $parm["type"] say begin end in or from type + // Add items in the items fields of the parm array + switch ($parm["type"]) { + case "in" : + echo date("H:i",strtotime($parm["begin"]))." -> ".date("H:i",strtotime($parm["end"])).": "; + break; + + case "from" : + break; + + case "begin" : + echo $LANG["buttons"][33]." ".date("H:i",strtotime($parm["begin"])).": "; + break; + + case "end" : + echo $LANG["buttons"][32]." ".date("H:i",strtotime($parm["end"])).": "; + break; + } + echo $parm["name"]; } + // Define headings added by the plugin -function plugin_get_headings_example($item, $withtemplate){ - switch (get_class($item)){ - case 'Profile': +function plugin_get_headings_example($item, $withtemplate) { + + switch (get_class($item)) { + case 'Profile' : $prof = new Profile(); - if ($item->fields['interface']=='central') { - return array( - 1 => "Test PLugin", - ); + if ($item->fields['interface'] == 'central') { + return array(1 => "Test PLugin"); } else { return array(); } - break; + case 'Computer' : // new object / template case if ($withtemplate) { return array(); // Non template case / editing an existing object } else { - return array( - 1 => "Test PLugin", - ); + return array(1 => "Test PLugin"); } - break; + case 'ComputerDisk' : case 'Supplier' : if ($item->getField('id')) { // Not in create mode - return array( - 1 => "Test PLugin", - 2 => "Test PLugin 2", - ); + return array(1 => "Test PLugin", + 2 => "Test PLugin 2"); } break; - case 'Central': - return array( - 1 => "Test PLugin", - ); - break; - case 'Preference': - return array( - 1 => "Test PLugin", - ); - break; - case 'Notification': - return array( - 1 => "Test PLugin", - ); - break; + case 'Central' : + case 'Preference': + case 'Notification': + return array(1 => "Test PLugin"); } return false; } + // Define headings actions added by the plugin -function plugin_headings_actions_example($item){ +function plugin_headings_actions_example($item) { - switch (get_class($item)){ + switch (get_class($item)) { case 'Profile' : case 'Computer' : - return array( - 1 => "plugin_headings_example", - ); + return array(1 => "plugin_headings_example"); - break; case 'ComputerDisk' : case 'Supplier' : - return array( - 1 => "plugin_headings_example", - 2 => "plugin_headings_example", - ); + return array(1 => "plugin_headings_example", + 2 => "plugin_headings_example"); - break; case 'Central' : - return array( - 1 => "plugin_headings_example", - ); - break; case 'Preference' : - return array( - 1 => "plugin_headings_example", - ); - break; case 'Notification' : - return array( - 1 => "plugin_headings_example", - ); - break; - + return array(1 => "plugin_headings_example"); } return false; } + // Example of an action heading -function plugin_headings_example($item, $withtemplate=0){ +function plugin_headings_example($item, $withtemplate=0) { global $LANG; - if (!$withtemplate){ - echo "