From bb13f528806eff163fb122b3eb38e78c114507a4 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur <eldy@users.sourceforge.net> Date: Mon, 18 Jul 2011 03:49:10 +0000 Subject: [PATCH] Fix: img extension was not correctly managed --- htdocs/lib/functions.lib.php | 42 +++++++++++++++++++++--------------- 1 file changed, 25 insertions(+), 17 deletions(-) diff --git a/htdocs/lib/functions.lib.php b/htdocs/lib/functions.lib.php index fbc9572e7b7..bc023bef077 100644 --- a/htdocs/lib/functions.lib.php +++ b/htdocs/lib/functions.lib.php @@ -29,7 +29,7 @@ * \file htdocs/lib/functions.lib.php * \brief A set of functions for Dolibarr * This file contains all frequently used functions. - * \version $Id: functions.lib.php,v 1.547 2011/07/18 00:48:33 eldy Exp $ + * \version $Id: functions.lib.php,v 1.548 2011/07/18 03:49:10 eldy Exp $ */ // For compatibility during upgrade @@ -1559,34 +1559,40 @@ function dol_trunc($string,$size=40,$trunc='right',$stringencoding='UTF-8') /** - * Show a picto according to module or object (generic function) - * @param alt Text of alt on image - * @param object Objet pour lequel il faut afficher le logo (example: user, group, action, bill, contract, propal, product, ...) - * Pour les modules externe utiliser nomimage@mymodule pour rechercher dans le repertoire "img" du module - * @param options Add more attribute on img tag - * @return string Return img tag + * Show a picto called object_picto (generic function) + * @param alt Text of alt on image + * @param picto Name of image to show object_picto (example: user, group, action, bill, contract, propal, product, ...) + * For external modules use imagename@mymodule to search into directory "img" of module. + * @param options Add more attribute on img tag + * @param pictoisfullpath If 1, image path is a full path + * @return string Return img tag * @see img_picto, img_picto_common */ -function img_object($alt, $object, $options='') +function img_object($alt, $picto, $options='', $pictoisfullpath=0) { global $conf,$langs; - $path = 'theme/'.$conf->theme; + $path = 'theme/'.$conf->theme; $url = DOL_URL_ROOT; - if (preg_match('/^([^@]+)@([^@]+)$/i',$object,$regs)) + if (preg_match('/^([^@]+)@([^@]+)$/i',$picto,$regs)) { - $object = $regs[1]; + $picto = $regs[1]; $path = $regs[2]; + if (! preg_match('/(\.png|\.gif)$/i',$picto)) $picto.='.png'; // If img file not into standard path, we use alternate path - if (defined('DOL_URL_ROOT_ALT') && DOL_URL_ROOT_ALT && ! file_exists(DOL_DOCUMENT_ROOT.'/'.$path.'/img/object_'.$object.'.png')) $url = DOL_URL_ROOT_ALT; + if (defined('DOL_URL_ROOT_ALT') && DOL_URL_ROOT_ALT && ! file_exists(DOL_DOCUMENT_ROOT.'/'.$path.'/img/object_'.$picto)) $url = DOL_URL_ROOT_ALT; } - - return '<img src="'.$url.'/'.$path.'/img/object_'.$object.'.png" border="0" alt="'.dol_escape_htmltag($alt).'" title="'.dol_escape_htmltag($alt).'"'.($options?' '.$options:'').'>'; + else + { + if (! preg_match('/(\.png|\.gif)$/i',$picto)) $picto.='.png'; + } + if ($pictoisfullpath) return '<img src="'.$picto.'" border="0" alt="'.dol_escape_htmltag($alt).'" title="'.dol_escape_htmltag($alt).'"'.($options?' '.$options:'').'>'; + return '<img src="'.$url.'/'.$path.'/img/object_'.$picto.'" border="0" alt="'.dol_escape_htmltag($alt).'" title="'.dol_escape_htmltag($alt).'"'.($options?' '.$options:'').'>'; } /** - * Show picto (generic function) + * Show picto whatever it's its name (generic function) * @param alt Text on alt and title of image * @param picto Name of image file to show (If no extension provided, we use '.png'). Image must be stored into img directory. * Example: picto.png if picto.png is stored into htdocs/theme/mytheme/img @@ -1612,8 +1618,10 @@ function img_picto($alt, $picto, $options='', $pictoisfullpath=0) // If img file not into standard path, we use alternate path if (defined('DOL_URL_ROOT_ALT') && DOL_URL_ROOT_ALT && ! file_exists(DOL_DOCUMENT_ROOT.'/'.$path.'/img/'.$picto)) $url = DOL_URL_ROOT_ALT; } - - if (! preg_match('/(\.png|\.gif)$/i',$picto)) $picto.='.png'; + else + { + if (! preg_match('/(\.png|\.gif)$/i',$picto)) $picto.='.png'; + } if ($pictoisfullpath) return '<img src="'.$picto.'" border="0" alt="'.dol_escape_htmltag($alt).'" title="'.dol_escape_htmltag($alt).'"'.($options?' '.$options:'').'>'; return '<img src="'.$url.'/'.$path.'/img/'.$picto.'" border="0" alt="'.dol_escape_htmltag($alt).'" title="'.dol_escape_htmltag($alt).'"'.($options?' '.$options:'').'>'; } -- GitLab