git-svn-id: https://forge.glpi-project.org/svn/example/trunk@113 349b9182-4a13-0410-896f-e5e9767dd1b3
This commit is contained in:
remicollet 2009-12-12 07:17:01 +00:00
parent f33753092c
commit 89d7d18237
3 changed files with 36 additions and 36 deletions

View File

@ -83,15 +83,14 @@ function plugin_example_getAddSearchOptions($itemtype){
} }
function plugin_example_giveItem($type,$ID,$data,$num){ function plugin_example_giveItem($type,$ID,$data,$num){
global $CFG_GLPI, $INFOFORM_PAGES;
$searchopt=&Search::getOptions($type); $searchopt=&Search::getOptions($type);
$table=$searchopt[$ID]["table"]; $table=$searchopt[$ID]["table"];
$field=$searchopt[$ID]["field"]; $field=$searchopt[$ID]["field"];
switch ($table.'.'.$field){ switch ($table.'.'.$field){
case "glpi_plugin_example_example.name" : case "glpi_plugin_example_examples.name" :
$out= "<a href=\"".$CFG_GLPI["root_doc"]."/".$INFOFORM_PAGES[$type]."?id=".$data['id']."\">"; $out= "<a href=\"".getItemTypeFormURL('PluginExampleExample')."?id=".$data['id']."\">";
$out.= $data["ITEM_$num"]; $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>"; $out.= "</a>";
@ -261,28 +260,28 @@ function plugin_example_MassiveActionsProcess($data){
switch ($data['action']){ switch ($data['action']){
case 'plugin_example_DoIt': case 'plugin_example_DoIt':
if ($data['device_type']==COMPUTER_TYPE){ if ($data['itemtype']=='Computer'){
$ci =new CommonItem(); $comp = new Computer;
addMessageAfterRedirect("Right it is the type I want..."); addMessageAfterRedirect("Right it is the type I want...");
addMessageAfterRedirect("But... I say I will do nothing for :"); addMessageAfterRedirect("But... I say I will do nothing for :");
foreach ($data['item'] as $key => $val){ foreach ($data['item'] as $key => $val){
if ($val==1) { if ($val==1) {
if ($ci->getFromDB($data["device_type"],$key)){ if ($comp->getFromDB($key)){
addMessageAfterRedirect("- ".$ci->getField("name")); addMessageAfterRedirect("- ".$comp->getField("name"));
} }
} }
} }
} }
break; break;
case 'do_nothing': case 'do_nothing':
if ($data['device_type']=='PluginExampleExample'){ if ($data['itemtype']=='PluginExampleExample'){
$ci =new CommonItem(); $ex =new PluginExampleExample();
addMessageAfterRedirect("Right it is the type I want..."); addMessageAfterRedirect("Right it is the type I want...");
addMessageAfterRedirect("But... I say I will do nothing for :"); addMessageAfterRedirect("But... I say I will do nothing for :");
foreach ($data['item'] as $key => $val){ foreach ($data['item'] as $key => $val){
if ($val==1) { if ($val==1) {
if ($ci->getFromDB($data["device_type"],$key)){ if ($ex->getFromDB($key)){
addMessageAfterRedirect("- ".$ci->getField("name")); addMessageAfterRedirect("- ".$ex->getField("name"));
} }
} }
} }
@ -292,8 +291,8 @@ function plugin_example_MassiveActionsProcess($data){
} }
// How to display specific update fields ? // How to display specific update fields ?
function plugin_example_MassiveActionsFieldsDisplay($type,$table,$field,$linkfield){ function plugin_example_MassiveActionsFieldsDisplay($type,$table,$field,$linkfield){
global $LINK_ID_TABLE;
if ($table==$LINK_ID_TABLE[$type]){ if ($table==getTableForItemType($type)){
// Table fields // Table fields
switch ($table.".".$field){ switch ($table.".".$field){
case 'glpi_plugin_example.serial': case 'glpi_plugin_example.serial':
@ -703,8 +702,8 @@ function plugin_example_install(){
global $DB; global $DB;
if (!TableExists("glpi_plugin_example_example")){ if (!TableExists("glpi_plugin_example_examples")){
$query="CREATE TABLE `glpi_plugin_example_example` ( $query="CREATE TABLE `glpi_plugin_example_examples` (
`id` int(11) NOT NULL auto_increment, `id` int(11) NOT NULL auto_increment,
`name` varchar(255) collate utf8_unicode_ci default NULL, `name` varchar(255) collate utf8_unicode_ci default NULL,
`serial` varchar(255) collate utf8_unicode_ci NOT NULL, `serial` varchar(255) collate utf8_unicode_ci NOT NULL,
@ -715,8 +714,8 @@ function plugin_example_install(){
PRIMARY KEY (`id`) 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_example ". $DB->error()); $DB->query($query) or die("error creating glpi_plugin_example_examples ". $DB->error());
$query="INSERT INTO `glpi_plugin_example_example` (`id`, `name`, `serial`, `plugin_example_dropdown_id`, $query="INSERT INTO `glpi_plugin_example_examples` (`id`, `name`, `serial`, `plugin_example_dropdown_id`,
`is_deleted`, `is_template`, `template_name`) VALUES `is_deleted`, `is_template`, `template_name`) VALUES
(1, 'example 1', 'serial 1', 1, 0, 0, NULL), (1, 'example 1', 'serial 1', 1, 0, 0, NULL),
(2, 'example 2', 'serial 2', 2, 0, 0, NULL), (2, 'example 2', 'serial 2', 2, 0, 0, NULL),

View File

@ -37,7 +37,7 @@
class PluginExampleExample extends CommonDBTM { class PluginExampleExample extends CommonDBTM {
// From CommonDBTM // From CommonDBTM
public $table = 'glpi_plugin_example_example'; public $table = 'glpi_plugin_example_examples';
public $type = 'PluginExampleExample'; public $type = 'PluginExampleExample';
// Should return the localized name of the type // Should return the localized name of the type
@ -47,13 +47,28 @@ class PluginExampleExample extends CommonDBTM {
return 'Example Type'; return 'Example Type';
} }
static function canCreate() {
if (isset($_SESSION["glpi_plugin_example_profile"])) {
return ($_SESSION["glpi_plugin_example_profile"]['example']=='w');
}
return false;
}
static function canView() {
if (isset($_SESSION["glpi_plugin_example_profile"])) {
return ($_SESSION["glpi_plugin_example_profile"]['example']=='w'
|| $_SESSION["glpi_plugin_example_profile"]['example']=='r');
}
return false;
}
function getSearchOptions() { function getSearchOptions() {
global $LANG; global $LANG;
$tab = array(); $tab = array();
$tab['common']="Header Needed"; $tab['common']="Header Needed";
$tab[1]['table']='glpi_plugin_example_example'; $tab[1]['table']='glpi_plugin_example_examples';
$tab[1]['field']='name'; $tab[1]['field']='name';
$tab[1]['linkfield']='name'; $tab[1]['linkfield']='name';
$tab[1]['name']=$LANG['plugin_example']["name"]; $tab[1]['name']=$LANG['plugin_example']["name"];
@ -63,13 +78,13 @@ class PluginExampleExample extends CommonDBTM {
$tab[2]['linkfield']='plugin_example_dropdown_id'; $tab[2]['linkfield']='plugin_example_dropdown_id';
$tab[2]['name']='Dropdown'; $tab[2]['name']='Dropdown';
$tab[3]['table']='glpi_plugin_example_example'; $tab[3]['table']='glpi_plugin_example_examples';
$tab[3]['field']='serial'; $tab[3]['field']='serial';
$tab[3]['linkfield']='serial'; $tab[3]['linkfield']='serial';
$tab[3]['name']='Serial'; $tab[3]['name']='Serial';
$tab[3]['usehaving']=true; $tab[3]['usehaving']=true;
$tab[30]['table']='glpi_plugin_example_example'; $tab[30]['table']='glpi_plugin_example_examples';
$tab[30]['field']='id'; $tab[30]['field']='id';
$tab[30]['linkfield']=''; $tab[30]['linkfield']='';
$tab[30]['name']=$LANG["common"][2]; $tab[30]['name']=$LANG["common"][2];

View File

@ -61,7 +61,7 @@ function plugin_init_example() {
'searchpage' => 'front/dropdown.php')); 'searchpage' => 'front/dropdown.php'));
// Display a menu entry ? // Display a menu entry ?
if (plugin_example_haveTypeRight('PluginExampleExample','r')) { // Right set in change_profile hook if (isset($_SESSION["glpi_plugin_example_profile"])) { // Right set in change_profile hook
$PLUGIN_HOOKS['menu_entry']['example'] = 'front/example.php'; $PLUGIN_HOOKS['menu_entry']['example'] = 'front/example.php';
$PLUGIN_HOOKS['submenu_entry']['example']['options']['optionname']['title']="Search"; $PLUGIN_HOOKS['submenu_entry']['example']['options']['optionname']['title']="Search";
@ -176,19 +176,5 @@ function plugin_example_check_config($verbose=false){
return false; return false;
} }
// Define rights for the plugin types
function plugin_example_haveTypeRight($type,$right){
if (!isset($_SESSION["glpi_plugin_example_profile"])) {
// No right
return false;
}
switch ($type){
case 'PluginExampleExample' :
// Evaluate the right from data saved in session by change_profile hook
return ($right=='r' || $_SESSION["glpi_plugin_example_profile"]=='w');
}
}
?> ?>