Coding standard (yllen)

git-svn-id: https://forge.glpi-project.org/svn/example/trunk@117 349b9182-4a13-0410-896f-e5e9767dd1b3
This commit is contained in:
remicollet 2009-12-13 17:07:33 +00:00
parent c16272abf4
commit 41a5750e6f
6 changed files with 629 additions and 628 deletions

309
hook.php
View File

@ -48,12 +48,11 @@ function plugin_change_profile_example() {
} 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"));
}
@ -71,17 +70,17 @@ function plugin_example_getAddSearchOptions($itemtype){
global $LANG;
$sopt = array();
if ($itemtype == COMPUTER_TYPE) {
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);
@ -90,40 +89,41 @@ function plugin_example_giveItem($type,$ID,$data,$num){
switch ($table.'.'.$field) {
case "glpi_plugin_example_examples.name" :
$out= "<a href=\"".getItemTypeFormURL('PluginExampleExample')."?id=".$data['id']."\">";
$out = "<a href='".getItemTypeFormURL('PluginExampleExample')."?id=".$data['id']."'>";
$out .= $data["ITEM_$num"];
if ($_SESSION["glpiis_ids_visible"]||empty($data["ITEM_$num"])) $out.= " (".$data["id"].")";
if ($_SESSION["glpiis_ids_visible"] || empty($data["ITEM_$num"])) {
$out .= " (".$data["id"].")";
}
$out .= "</a>";
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 " 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;
break;
}
return false;
}
function plugin_example_addWhere($link,$nott,$type,$ID,$val) {
$searchopt = &Search::getOptions($type);
@ -138,14 +138,14 @@ function plugin_example_addWhere($link,$nott,$type,$ID,$val){
// case "glpi_plugin_example.name" :
// $ADD = "";
// if ($nott && $val!="NULL") {
// $ADD=" OR $table.$field IS NULL";
// $ADD = " OR `$table`.`$field` IS NULL";
// }
// return $link." ($table.$field $SEARCH ".$ADD." ) ";
// break;
// 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) {
@ -160,18 +160,16 @@ function plugin_example_addHaving($link,$nott,$type,$ID,$val,$num){
switch ($table.".".$field) {
case "glpi_plugin_example.serial" :
$ADD = "";
if (($nott&&$val!="NULL")||$val=='^$') {
if (($nott && $val!="NULL")
|| $val == '^$') {
$ADD = " OR ITEM_$num IS NULL";
}
return " $LINK ( ITEM_".$num.$SEARCH." $ADD ) ";
break;
}
return "";
}
function plugin_example_addSelect($type,$ID,$num) {
$searchopt = &Search::getOptions($type);
@ -183,11 +181,11 @@ function plugin_example_addSelect($type,$ID,$num){
// switch ($table.".".$field) {
// case "glpi_plugin_example.name" :
// return $table.".".$field." AS ITEM_$num, ";
// break;
// }
return "";
}
function plugin_example_addOrderBy($type,$ID,$order,$key=0) {
$searchopt = &Search::getOptions($type);
@ -199,53 +197,52 @@ function plugin_example_addOrderBy($type,$ID,$order,$key=0){
// switch ($table.".".$field) {
// case "glpi_plugin_example.name" :
// return " ORDER BY $table.$field $order ";
// break;
// }
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;
case 'Computer' :
return array("plugin_example_DoIt" => "plugin_example_DoIt");
// 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("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:
case 'Computer' :
switch ($action) {
case "plugin_example_DoIt" :
echo "&nbsp;<input type=\"submit\" name=\"massiveaction\" class=\"submit\" value=\"".$LANG["buttons"][2]."\" >&nbsp;but do nothing :)";
echo "&nbsp;<input type='submit' name='massiveaction' class='submit' value='".
$LANG["buttons"][2]."'>&nbsp;but do nothing :)";
break;
}
break;
case 'PluginExampleExample' :
switch ($action) {
// No case for add_document : use GLPI core one
case "do_nothing" :
echo "&nbsp;<input type=\"submit\" name=\"massiveaction\" class=\"submit\" value=\"".$LANG["buttons"][2]."\" >&nbsp;but do nothing :)";
echo "&nbsp;<input type='submit' name='massiveaction' class='submit' value='".
$LANG["buttons"][2]."'>&nbsp;but do nothing :)";
break;
}
break;
@ -253,11 +250,11 @@ function plugin_example_MassiveActionsDisplay($type,$action){
return "";
}
// How to process specific actions ?
function plugin_example_MassiveActionsProcess($data) {
global $LANG;
switch ($data['action']) {
case 'plugin_example_DoIt' :
if ($data['itemtype'] == 'Computer') {
@ -273,6 +270,7 @@ function plugin_example_MassiveActionsProcess($data){
}
}
break;
case 'do_nothing' :
if ($data['itemtype'] == 'PluginExampleExample') {
$ex = new PluginExampleExample();
@ -289,6 +287,8 @@ function plugin_example_MassiveActionsProcess($data){
break;
}
}
// How to display specific update fields ?
function plugin_example_MassiveActionsFieldsDisplay($type,$table,$field,$linkfield) {
@ -301,7 +301,6 @@ function plugin_example_MassiveActionsFieldsDisplay($type,$table,$field,$linkfie
// Dropdown::showYesNo($linkfield);
// Need to return true if specific display
return true;
break;
}
} else {
@ -313,24 +312,26 @@ function plugin_example_MassiveActionsFieldsDisplay($type,$table,$field,$linkfie
//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;
}
//////////////////////////////
// Hook done on before update item case
function plugin_pre_item_update_example($input) {
if (isset($input["_item_type_"]))
if (isset($input["_item_type_"])) {
switch ($input["_item_type_"]) {
case COMPUTER_TYPE :
case 'Computer' :
// Manipulate data if needed
addMessageAfterRedirect("Pre Update Computer Hook",true);
break;
}
}
return $input;
}
@ -338,121 +339,143 @@ function plugin_pre_item_update_example($input){
// Hook done on update item case
function plugin_item_update_example($parm) {
if (isset($parm["type"]))
if (isset($parm["type"])) {
switch ($parm["type"]){
case COMPUTER_TYPE :
case 'Computer' :
addMessageAfterRedirect("Update Computer Hook",true);
return true;
break;
}
}
return false;
}
// Hook done on before add item case
function plugin_pre_item_add_example($input) {
if (isset($input["_item_type_"]))
if (isset($input["_item_type_"])) {
switch ($input["_item_type_"]) {
case COMPUTER_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) {
if (isset($parm["type"]))
if (isset($parm["type"])) {
switch ($parm["type"]) {
case COMPUTER_TYPE :
case 'Computer' :
addMessageAfterRedirect("Add Computer Hook",true);
return true;
break;
}
}
return false;
}
// Hook done on before delete item case
function plugin_pre_item_delete_example($input) {
if (isset($input["_item_type_"]))
if (isset($input["_item_type_"])) {
switch ($input["_item_type_"]) {
case COMPUTER_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"]))
if (isset($parm["type"])) {
switch ($parm["type"]) {
case COMPUTER_TYPE :
case 'Computer' :
addMessageAfterRedirect("Delete Computer Hook",true);
return true;
break;
}
}
return false;
}
// Hook done on before purge item case
function plugin_pre_item_purge_example($input) {
if (isset($input["_item_type_"]))
if (isset($input["_item_type_"])) {
switch ($input["_item_type_"]) {
case COMPUTER_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"]))
if (isset($parm["type"])) {
switch ($parm["type"]) {
case COMPUTER_TYPE :
case 'Computer' :
addMessageAfterRedirect("Purge Computer Hook",true);
return true;
break;
}
}
return false;
}
// Hook done on before restore item case
function plugin_pre_item_restore_example($input) {
if (isset($input["_item_type_"]))
if (isset($input["_item_type_"])) {
switch ($input["_item_type_"]) {
case COMPUTER_TYPE :
case 'Computer' :
// Manipulate data if needed
addMessageAfterRedirect("Pre Restore Computer Hook");
break;
}
}
return $input;
}
// Hook done on restore item case
function plugin_item_restore_example($parm) {
if (isset($parm["type"]))
if (isset($parm["type"])) {
switch ($parm["type"]) {
case COMPUTER_TYPE :
case 'Computer' :
addMessageAfterRedirect("Restore Computer Hook");
return true;
break;
}
}
return false;
}
// Hook done on restore item case
function plugin_item_transfer_example($parm) {
addMessageAfterRedirect("Transfer Computer Hook ".$parm['type']." ".$parm['id']." -> ".$parm['newID']);
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"]
@ -462,7 +485,6 @@ function plugin_planning_populate_example($parm){
// 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");
@ -474,124 +496,99 @@ function plugin_planning_populate_example($parm){
return $parm;
}
// Display the planning item
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
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";
case "begin" :
echo $LANG["buttons"][33]." ".date("H:i",strtotime($parm["begin"])).": ";
break;
case "end";
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' :
$prof = new Profile();
if ($item->fields['interface'] == 'central') {
return array(
1 => "Test PLugin",
);
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) {
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) {
global $LANG;
if (!$withtemplate) {
echo "<div align='center'>";
echo "<div class='center'>";
switch (get_class($item)) {
case 'Central' :
echo "Plugin central action ".$LANG['plugin_example']["test"];
@ -603,12 +600,11 @@ function plugin_headings_example($item, $withtemplate=0){
echo "<form action='Where to post form'>";
echo "<table class='tab_cadre_fixe'>";
echo "<tr><th colspan='3'>".$data['name'];
echo " - ".$data['version'];
echo "<tr><th colspan='3'>".$data['name']." - ".$data['version'];
echo "</th></tr>";
echo "<tr class='tab_bg_1'><td>Name of the pref";
echo "</td><td>Input to set the pref</td>";
echo "<tr class='tab_bg_1'><td>Name of the pref</td>";
echo "<td>Input to set the pref</td>";
echo "<td><input class='submit' type='submit' name='submit' value='submit'></td>";
echo "</tr>";
@ -622,13 +618,14 @@ function plugin_headings_example($item, $withtemplate=0){
break;
default :
echo "Plugin function with headings CLASS=".get_class($item)." ID=".$item->getField('id');
echo "Plugin function with headings CLASS=".get_class($item)." id=".$item->getField('id');
break;
}
echo "</div>";
}
}
/**
* Execute 1 task manage by the plugin
*
@ -640,12 +637,14 @@ function plugin_headings_example($item, $withtemplate=0){
* 0 : nothing to do
*/
function plugin_example_cron_sample1_run($task) {
$task->log("Example log message from hook");
$task->setVolume(mt_rand(0,$task->fields['param']));
return 1;
}
/**
* Give localized information about 1 task
*
@ -658,10 +657,8 @@ function plugin_example_cron_info($name) {
switch ($name) {
case 'sample1' :
return array (
'description' => $LANG['plugin_example']['test'] . " (hook)", // Mandatory
return array('description' => $LANG['plugin_example']['test'] . " (hook)", // Mandatory
'parameter' => $LANG['plugin_example']['test']); // Optional
break;
}
return array();
}
@ -669,6 +666,7 @@ function plugin_example_cron_info($name) {
// Do special actions for dynamic report
function plugin_example_dynamicReport($parm) {
if ($parm["item_type"] == 'PluginExampleExample') {
// Do all what you want for export depending on $parm
echo "Personalized export for type ".$parm["display_type"];
@ -684,58 +682,65 @@ function plugin_example_dynamicReport($parm){
return false;
}
// Add parameters to printPager in search system
function plugin_example_addParamFordynamicReport($device_type){
if ($device_type=='PluginExampleExample'){
function plugin_example_addParamFordynamicReport($itemtype) {
if ($itemtype == 'PluginExampleExample') {
// Return array data containing all params to add : may be single data or array data
// Search config are available from session variable
return array(
'add1' => $_SESSION['glpisearch'][$device_type]['order'],
'add2' => array('tutu'=>'Second Add','Other Data'));
return array('add1' => $_SESSION['glpisearch'][$itemtype]['order'],
'add2' => array('tutu'=>'Second Add',
'Other Data'));
}
// Return false or a non array data if not needed
return false;
}
// Install process for plugin : need to return true if succeeded
function plugin_example_install() {
global $DB;
if (!TableExists("glpi_plugin_example_examples")) {
$query = "CREATE TABLE `glpi_plugin_example_examples` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(255) collate utf8_unicode_ci default NULL,
`serial` varchar(255) collate utf8_unicode_ci NOT NULL,
`plugin_example_dropdowns_id` int(11) NOT NULL default '0',
`is_deleted` smallint(6) NOT NULL default '0',
`is_template` smallint(6) NOT NULL default '0',
`is_deleted` tinyint(1) NOT NULL default '0',
`is_template` tinyint(1) NOT NULL default '0',
`template_name` varchar(255) collate utf8_unicode_ci default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
";
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci";
$DB->query($query) or die("error creating glpi_plugin_example_examples ". $DB->error());
$query="INSERT INTO `glpi_plugin_example_examples` (`id`, `name`, `serial`, `plugin_example_dropdowns_id`,
`is_deleted`, `is_template`, `template_name`) VALUES
(1, 'example 1', 'serial 1', 1, 0, 0, NULL),
$query = "INSERT INTO `glpi_plugin_example_examples`
(`id`, `name`, `serial`, `plugin_example_dropdowns_id`, `is_deleted`,
`is_template`, `template_name`)
VALUES (1, 'example 1', 'serial 1', 1, 0, 0, NULL),
(2, 'example 2', 'serial 2', 2, 0, 0, NULL),
(3, 'example 3', 'serial 3', 1, 0, 0, NULL);";
(3, 'example 3', 'serial 3', 1, 0, 0, NULL)";
$DB->query($query) or die("error populate glpi_plugin_example ". $DB->error());
}
if (!TableExists("glpi_plugin_example_dropdowns")){
if (!TableExists("glpi_plugin_example_dropdowns")) {
$query = "CREATE TABLE `glpi_plugin_example_dropdowns` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(255) collate utf8_unicode_ci default NULL,
`comment` text collate utf8_unicode_ci,
PRIMARY KEY (`id`),
KEY `name` (`name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;";
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci";
$DB->query($query) or die("error creating glpi_plugin_example_dropdowns". $DB->error());
$query="INSERT INTO `glpi_plugin_example_dropdowns` (`id`, `name`, `comment`) VALUES
(1, 'dp 1', 'comment 1'),
(2, 'dp2', 'comment 2');";
$query = "INSERT INTO `glpi_plugin_example_dropdowns`
(`id`, `name`, `comment`)
VALUES (1, 'dp 1', 'comment 1'),
(2, 'dp2', 'comment 2')";
$DB->query($query) or die("error populate glpi_plugin_example_dropdowns". $DB->error());
}
@ -748,22 +753,23 @@ function plugin_example_install(){
return true;
}
// Uninstall process for plugin : need to return true if succeeded
function plugin_example_uninstall() {
global $DB;
// Old version tables
if (TableExists("glpi_dropdown_plugin_example")) {
$query="DROP TABLE `glpi_dropdown_plugin_example`;";
$query = "DROP TABLE `glpi_dropdown_plugin_example`";
$DB->query($query) or die("error deleting glpi_dropdown_plugin_example");
}
if (TableExists("glpi_plugin_example")) {
$query="DROP TABLE `glpi_plugin_example`;";
$query = "DROP TABLE `glpi_plugin_example`";
$DB->query($query) or die("error deleting glpi_plugin_example");
}
// Current version tables
if (TableExists("glpi_plugin_example_example")) {
$query="DROP TABLE `glpi_plugin_example_example`;";
$query = "DROP TABLE `glpi_plugin_example_example`";
$DB->query($query) or die("error deleting glpi_plugin_example_example");
}
if (TableExists("glpi_plugin_example_dropdowns")) {
@ -773,8 +779,9 @@ function plugin_example_uninstall(){
return true;
}
function plugin_example_AssignToTicket($types)
{
function plugin_example_AssignToTicket($types) {
$types['PluginExampleExample'] = "Example";
return $types;
}

View File

@ -42,8 +42,6 @@ class PluginExampleExample extends CommonDBTM {
// Should return the localized name of the type
static function getTypeName() {
global $LANG;
return 'Example Type';
}
@ -104,10 +102,8 @@ class PluginExampleExample extends CommonDBTM {
switch ($name) {
case 'sample2' :
return array (
'description' => $LANG['plugin_example']['test']." (class)",
return array('description' => $LANG['plugin_example']['test']." (class)",
'parameter' => $LANG['plugin_example']['test']);
break;
}
return array();
}
@ -123,6 +119,7 @@ class PluginExampleExample extends CommonDBTM {
* 0 : nothing to do
*/
static function cronSample2($task) {
$task->log("Example log message from class");
$task->setVolume(mt_rand(0,10));

View File

@ -33,6 +33,6 @@
// Purpose of file:
// ----------------------------------------------------------------------
$LANG['plugin_example']["test"]="test english";
$LANG['plugin_example']["test"] = "english test";
$LANG['plugin_example']["name"] = "Name";
?>

View File

@ -34,6 +34,6 @@
// ----------------------------------------------------------------------
$LANG['plugin_example']["test"]="test french";
$LANG['plugin_example']["test"] = "test français";
$LANG['plugin_example']["name"] = "Nom";
?>

View File

@ -38,20 +38,17 @@ function plugin_init_example() {
global $PLUGIN_HOOKS,$LANG,$CFG_GLPI;
// Params : plugin name - string type - ID - Array of attributes
Plugin::registerClass('PluginExampleExample', array(
'classname' => 'PluginExampleExample',
Plugin::registerClass('PluginExampleExample',
array('classname' => 'PluginExampleExample',
'formpage' => 'front/example.form.php',
'deleted_tables' => false,
'template_tables' => false,
'specif_entities_tables' => false,
'recursive_type' => false,
//'linkuser_types' => true,
//'linkgroup_types' => true
));
'recursive_type' => false));
// Params : plugin name - string type - ID - Array of attributes
Plugin::registerClass('PluginExampleDropdown', array(
'classname' => 'PluginExampleDropdown',
Plugin::registerClass('PluginExampleDropdown',
array('classname' => 'PluginExampleDropdown',
'typename' => 'Example Dropdown Type',
'formpage' => 'front/dropdown.form.php'));
@ -82,7 +79,6 @@ function plugin_init_example() {
// Change entity
//$PLUGIN_HOOKS['change_entity']['example'] = 'plugin_change_entity_example';
// Onglets management
$PLUGIN_HOOKS['headings']['example'] = 'plugin_get_headings_example';
$PLUGIN_HOOKS['headings_action']['example'] = 'plugin_headings_actions_example';
@ -106,13 +102,13 @@ function plugin_init_example() {
$PLUGIN_HOOKS['item_transfer']['example'] = 'plugin_item_transfer_example';
//redirect appel http://localhost/glpi/index.php?redirect=plugin_example_2 (ID 2 du form)
$PLUGIN_HOOKS['redirect_page']['example']="example.form.php";
$PLUGIN_HOOKS['redirect_page']['example'] = 'example.form.php';
//function to populate planning
$PLUGIN_HOOKS['planning_populate']['example']="plugin_planning_populate_example";
$PLUGIN_HOOKS['planning_populate']['example'] = 'plugin_planning_populate_example';
//function to display planning items
$PLUGIN_HOOKS['display_planning']['example']="plugin_display_planning_example";
$PLUGIN_HOOKS['display_planning']['example'] = 'plugin_display_planning_example';
// Massive Action definition
$PLUGIN_HOOKS['use_massive_action']['example'] = 1;
@ -120,35 +116,36 @@ function plugin_init_example() {
$PLUGIN_HOOKS['assign_to_ticket']['example'] = 1;
// Add specific files to add to the header : javascript or css
$PLUGIN_HOOKS['add_javascript']['example']="example.js";
$PLUGIN_HOOKS['add_css']['example']="example.css";
$PLUGIN_HOOKS['add_javascript']['example'] = 'example.js';
$PLUGIN_HOOKS['add_css']['example'] = 'example.css';
// Retrieve others datas from LDAP
//$PLUGIN_HOOKS['retrieve_more_data_from_ldap']['example']="plugin_retrieve_more_data_from_ldap_example";
// Reports
$PLUGIN_HOOKS['reports']['example'] = array('report.php'=>'New Report', 'report.php?other'=>'New Report 2',);
$PLUGIN_HOOKS['reports']['example'] = array('report.php' => 'New Report',
'report.php?other' => 'New Report 2');
// Stats
$PLUGIN_HOOKS['stats']['example'] = array('stat.php'=>'New stat', 'stat.php?other'=>'New stats 2',);
$PLUGIN_HOOKS['stats']['example'] = array('stat.php' => 'New stat',
'stat.php?other' => 'New stats 2',);
}
// Get the name and the version of the plugin - Needed
function plugin_version_example() {
return array(
'name' => 'Plugin Example',
return array('name' => 'Plugin Example',
'version' => '0.2.0',
'author' => 'Julien Dombre',
'homepage'=> 'http://glpi-project.org',
'minGlpiVersion' => '0.80',// For compatibility / no install in version < 0.72
);
'homepage' => 'https://forge.indepnet.net/projects/show/example',
'minGlpiVersion' => '0.80');// For compatibility / no install in version < 0.72
}
// Optional : check prerequisites before install : may print errors or add to message after redirect
function plugin_example_check_prerequisites() {
if (GLPI_VERSION >= 0.80) {
return true;
} else {