From 9619b09e37d28474740b698f816733ab989f87db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Salvador?= Date: Wed, 10 Jul 2013 15:27:32 +0200 Subject: [PATCH] rewriting to fit the new way to use hooks --- htdocs/core/class/hookmanager.class.php | 2 +- htdocs/core/class/html.formfile.class.php | 67 +++++++++++++---------- 2 files changed, 38 insertions(+), 31 deletions(-) diff --git a/htdocs/core/class/hookmanager.class.php b/htdocs/core/class/hookmanager.class.php index 773bd512d70..deac8b79211 100755 --- a/htdocs/core/class/hookmanager.class.php +++ b/htdocs/core/class/hookmanager.class.php @@ -131,7 +131,7 @@ class HookManager // Define type of hook ('output', 'returnvalue' or 'addreplace'). 'addreplace' should be type for all hooks. 'output' and 'returnvalue' are deprecated. $hooktype='output'; if (preg_match('/^pdf_/',$method)) $hooktype='returnvalue'; // pdf_xxx except pdf_writelinedesc are returnvalue hooks. When there is 2 hooks of this type, only last one win. - if (in_array($method,array('doActions','formObjectOptions','moveUploadedFile','pdf_writelinedesc','paymentsupplierinvoices','printSearchForm'))) $hooktype='addreplace'; + if (in_array($method,array('doActions','formObjectOptions','moveUploadedFile','pdf_writelinedesc','paymentsupplierinvoices','printSearchForm', 'formattachOptions', 'formBuilddocLineOptions'))) $hooktype='addreplace'; // Loop on each hook to qualify modules that declared context $modulealreadyexecuted=array(); diff --git a/htdocs/core/class/html.formfile.class.php b/htdocs/core/class/html.formfile.class.php index 5e17cf830a8..84946405a93 100644 --- a/htdocs/core/class/html.formfile.class.php +++ b/htdocs/core/class/html.formfile.class.php @@ -77,22 +77,22 @@ class FormFile { $maxlength=$size; - print "\n\n\n"; + $out = "\n\n\n"; if (empty($title)) $title=$langs->trans("AttachANewFile"); if ($title != 'none') print_titre($title); - print '
'; - print ''; - print ''; - print ''; + $out .= ''; + $out .= ''; + $out .= ''; + $out .= ''; - print ''; - print ''; + $out .= '
'; + $out .= ''; - if (! empty($options)) print ''; + if (! empty($options)) $out .= ''; - print '"; - print "
'.$options.''.$options.''; + $out .= ''; $max=$conf->global->MAIN_UPLOAD_DOC; // En Kb $maxphp=@ini_get('upload_max_filesize'); // En inconnu @@ -103,20 +103,20 @@ class FormFile if ($max > 0) { - print ''; + $out .= ''; } - print 'global->MAIN_UPLOAD_DOC) || empty($perm)?' disabled="disabled"':''); - print '>'; - print '   '; - print 'global->MAIN_UPLOAD_DOC) || empty($perm)?' disabled="disabled"':''); - print '>'; + $out .= 'global->MAIN_UPLOAD_DOC) || empty($perm)?' disabled="disabled"':''); + $out .= '>'; + $out .= '   '; + $out .= 'global->MAIN_UPLOAD_DOC) || empty($perm)?' disabled="disabled"':''); + $out .= '>'; if ($addcancel) { - print '   '; - print ''; + $out .= '   '; + $out .= ''; } if (! empty($conf->global->MAIN_UPLOAD_DOC)) @@ -124,24 +124,28 @@ class FormFile if ($perm) { $langs->load('other'); - print ' ('.$langs->trans("MaxSize").': '.$max.' '.$langs->trans("Kb"); - print ' '.info_admin($langs->trans("ThisLimitIsDefinedInSetup",$max,$maxphp),1); - print ')'; + $out .= ' ('.$langs->trans("MaxSize").': '.$max.' '.$langs->trans("Kb"); + $out .= ' '.info_admin($langs->trans("ThisLimitIsDefinedInSetup",$max,$maxphp),1); + $out .= ')'; } } else { - print ' ('.$langs->trans("UploadDisabled").')'; + $out .= ' ('.$langs->trans("UploadDisabled").')'; } - print "
"; + $out .= ""; + $out .= ""; - print '
'; - if (empty($sectionid)) print '
'; + $out .= ''; + if (empty($sectionid)) $out .= '
'; - print "\n\n\n"; + $out .= "\n\n\n"; $parameters = array('socid'=>(isset($GLOBALS['socid'])?$GLOBALS['socid']:''),'id'=>(isset($GLOBALS['id'])?$GLOBALS['id']:''), 'url'=>$url); - print $hookmanager->executeHooks('formattachOptions',$parameters,$object); + $res = $hookmanager->executeHooks('formattachOptions',$parameters,$object); + if(!$res) { + echo $out; + } + echo $hookmanager->resPrint; return 1; } @@ -539,7 +543,10 @@ class FormFile if (is_object($hookmanager)) { $parameters=array('socid'=>(isset($GLOBALS['socid'])?$GLOBALS['socid']:''),'id'=>(isset($GLOBALS['id'])?$GLOBALS['id']:''),'modulepart'=>$modulepart,'relativepath'=>$relativepath); - $out.= $hookmanager->executeHooks('formBuilddocLineOptions',$parameters,$file); + $res = $hookmanager->executeHooks('formBuilddocLineOptions',$parameters,$file); + if(!$res) { + $out .= $hookmanager->resPrint; + } } }