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 (flegastel...@teclib.com) 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 Glpi-dev@gna.org https://mail.gna.org/listinfo/glpi-dev