Salut à tous,
En pièce jointe, le patch pour le backport du ticket 2635 dans la branche 0.78.
https://forge.indepnet.net/issues/2635
Peut-on l'intégrer dans le svn courant de cette branche ?
@+
François
--
François Legastelois ([email protected])
teclib' - Consultant Applications OpenSource - http://www.teclib.com
tel : 01 79 97 02 78 / poste : 1103
diff -Naur --exclude=.svn --exclude=.DS_Store --exclude=plugins glpi_078_svn/inc/common.function.php glpi_078_svn_proposal_patch/inc/common.function.php
--- glpi_078_svn/inc/common.function.php 2011-02-04 10:33:35.000000000 +0100
+++ glpi_078_svn_proposal_patch/inc/common.function.php 2011-02-11 10:55:15.000000000 +0100
@@ -1807,32 +1807,54 @@
case "helpdesk" :
switch ($data[0]) {
case "plugin":
- if (isset($data[3])) {
- $forcetab='forcetab='.$data[3];
+ $plugin = $data[1];
+ $valid = false;
+ if (isset($PLUGIN_HOOKS['redirect_page'][$plugin])
+ && !empty($PLUGIN_HOOKS['redirect_page'][$plugin])) {
+ // Simple redirect
+ if (!is_array($PLUGIN_HOOKS['redirect_page'][$plugin])) {
+ if (isset($data[2]) && $data[2]>0) {
+ $valid = true;
+ $id = $data[2];
+ $page = $PLUGIN_HOOKS['redirect_page'][$plugin];
+ }
+ $forcetabnum = 3 ;
+ } else { // Complex redirect
+ if (isset($data[2]) && !empty($data[2])
+ && isset($data[3]) && $data[3]>0
+ && isset($PLUGIN_HOOKS['redirect_page'][$plugin][$data[2]])
+ && !empty($PLUGIN_HOOKS['redirect_page'][$plugin][$data[2]])) {
+ $valid = true;
+ $id = $data[3];
+ $page = $PLUGIN_HOOKS['redirect_page'][$plugin][$data[2]];
+ }
+ $forcetabnum = 4 ;
+ }
}
- if (isset($data[2]) && $data[2]>0
- && isset($PLUGIN_HOOKS['redirect_page'][$data[1]])
- && !empty($PLUGIN_HOOKS['redirect_page'][$data[1]])) {
+ if (isset($data[$forcetabnum])) {
+ $forcetab = 'forcetab='.$data[$forcetabnum];
+ }
- glpi_header($CFG_GLPI["root_doc"]."/plugins/".$data[1]."/".
- $PLUGIN_HOOKS['redirect_page'][$data[1]]."?id=".$data[2]."&$forcetab");
+ if ($valid) {
+ glpi_header($CFG_GLPI["root_doc"]."/plugins/$plugin/$page?id=$id&$forcetab");
} else {
glpi_header($CFG_GLPI["root_doc"]."/front/helpdesk.public.php?$forcetab");
}
break;
// Use for compatibility with old name
- case "tracking":
- case "ticket":
- glpi_header($CFG_GLPI["root_doc"]."/front/ticket.form.php?id=".
- $data[1]."&$forcetab");
+ case "tracking" :
+ case "ticket" :
+ glpi_header($CFG_GLPI["root_doc"]."/front/ticket.form.php?id=".$data[1].
+ "&$forcetab");
break;
- case "preference":
+
+ case "preference" :
glpi_header($CFG_GLPI["root_doc"]."/front/preference.php?$forcetab");
break;
- default:
+ default :
glpi_header($CFG_GLPI["root_doc"]."/front/helpdesk.public.php?$forcetab");
break;
}
@@ -1840,38 +1862,56 @@
case "central" :
switch ($data[0]) {
- case "plugin":
- if (isset($data[3])) {
- $forcetab='forcetab='.$data[3];
- }
- if (isset($data[2]) && $data[2]>0
- && isset($PLUGIN_HOOKS['redirect_page'][$data[1]])
- && !empty($PLUGIN_HOOKS['redirect_page'][$data[1]])) {
-
- $data2=explode("-",$data[1]);
- if(count($data2)>=1) {
- glpi_header($CFG_GLPI["root_doc"]."/plugins/".$data2[0]."/".
- $PLUGIN_HOOKS['redirect_page'][$data[1]]."?id=".$data[2]."&$forcetab");
- } else {
- glpi_header($CFG_GLPI["root_doc"]."/plugins/".$data[1]."/".
- $PLUGIN_HOOKS['redirect_page'][$data[1]]."?id=".$data[2]."&$forcetab");
+ case "plugin" :
+ $plugin = $data[1];
+ $valid = false;
+ if (isset($PLUGIN_HOOKS['redirect_page'][$plugin])
+ && !empty($PLUGIN_HOOKS['redirect_page'][$plugin])) {
+ // Simple redirect
+ if (!is_array($PLUGIN_HOOKS['redirect_page'][$plugin])) {
+ if (isset($data[2]) && $data[2]>0) {
+ $valid = true;
+ $id = $data[2];
+ $page = $PLUGIN_HOOKS['redirect_page'][$plugin];
+ }
+ $forcetabnum = 3 ;
+ } else { // Complex redirect
+ if (isset($data[2]) && !empty($data[2])
+ && isset($data[3]) && $data[3]>0
+ && isset($PLUGIN_HOOKS['redirect_page'][$plugin][$data[2]])
+ && !empty($PLUGIN_HOOKS['redirect_page'][$plugin][$data[2]])) {
+ $valid = true;
+ $id = $data[3];
+ $page = $PLUGIN_HOOKS['redirect_page'][$plugin][$data[2]];
+ }
+ $forcetabnum = 4 ;
}
+
+ }
+
+ if (isset($data[$forcetabnum])) {
+ $forcetab = 'forcetab='.$data[$forcetabnum];
+ }
+
+ if ($valid) {
+ glpi_header($CFG_GLPI["root_doc"]."/plugins/$plugin/$page?id=$id&$forcetab");
} else {
glpi_header($CFG_GLPI["root_doc"]."/front/central.php?$forcetab");
}
break;
- case "preference":
+ case "preference" :
glpi_header($CFG_GLPI["root_doc"]."/front/preference.php?$forcetab");
break;
// Use for compatibility with old name
- case "tracking":
+ case "tracking" :
$data[0] = "ticket";
+
default :
if (!empty($data[0] )&& $data[1]>0) {
glpi_header($CFG_GLPI["root_doc"]."/front/".$data[0].".form.php?id=".
- $data[1]."&$forcetab");
+ $data[1]."&$forcetab");
} else {
glpi_header($CFG_GLPI["root_doc"]."/front/central.php?$forcetab");
}
_______________________________________________
Glpi-dev mailing list
[email protected]
https://mail.gna.org/listinfo/glpi-dev