From dffa43b1611b6a00d55a77ae15a5d79dc095e962 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 11 Jun 2005 11:38:19 +0000 Subject: [PATCH] Qual: Factorisation par une fonction des pages affichant la liste des produits/services --- htdocs/lib/functions.inc.php | 179 +++++++++++++++++++++++------------ 1 file changed, 121 insertions(+), 58 deletions(-) diff --git a/htdocs/lib/functions.inc.php b/htdocs/lib/functions.inc.php index fca4cbb6501..9be06fd7e63 100644 --- a/htdocs/lib/functions.inc.php +++ b/htdocs/lib/functions.inc.php @@ -88,14 +88,14 @@ function unaccent($str) /** \brief Envoi des messages dolibarr dans syslog ou dans un fichier - Pour syslog: facility défini par MAIN_SYSLOG_FACILITY + Pour syslog: facility défini par SYSLOG_FACILITY Pour fichier: fichier défini par SYSLOG_FILE - \param message message a envoyer a syslog - \param level Niveau de l'erreur + \param message Message a envoyer a syslog + \param level Niveau de l'erreur \remarks Cette fonction a un effet que si le module syslog est activé. Warning, les fonctions syslog sont buggués sous Windows et génèrent des fautes de protection mémoire. Pour résoudre, utiliser le loggage fichier, - au lieu du loggage syslog, en positionnant la constante MAIN_SYSLOG_FILE. + au lieu du loggage syslog, en positionnant la constante SYSLOG_FILE. */ function dolibarr_syslog($message, $level=LOG_ERR) { @@ -109,7 +109,7 @@ function dolibarr_syslog($message, $level=LOG_ERR) fclose($file); } else { - print "Error: Failed to open file ".SYSLOG_FILE; + print $langs->trans("ErrorFailedToOpenFile",SYSLOG_FILE); } } else @@ -120,6 +120,11 @@ function dolibarr_syslog($message, $level=LOG_ERR) { $facility = MAIN_SYSLOG_FACILITY; } + elseif (defined("SYSLOG_FACILITY") && SYSLOG_FACILITY && defined(SYSLOG_FACILITY)) + { + // Exemple: SYSLOG_FACILITY vaut LOG_USER qui vaut 8. On a besoin de 8 dans $facility. + $facility = constant(SYSLOG_FACILITY); + } else { $facility = LOG_USER; @@ -182,9 +187,32 @@ function dolibarr_fiche_head($links, $active=0, $title='') print "
\n
\n"; } +/** + \brief Récupère une constante depuis la base de données. + \see dolibarr_del_const, dolibarr_sel_const + \param db Handler d'accès base + \param name Nom de la constante + \return string Valeur de la constante +*/ +function dolibarr_get_const($db, $name) +{ + $value=''; + + $sql ="SELECT value"; + $sql.=" FROM llx_const"; + $sql.=" WHERE name = '$name';"; + $resql=$db->query($sql); + if ($resql) + { + $obj=$db->fetch_object($resql); + $value=$obj->value; + } + return $value; +} + /** \brief Insertion d'une constante dans la base de données. - \see dolibarr_del_const + \see dolibarr_del_const, dolibarr_gel_const \param db handler d'accès base \param name nom de la constante \param value valeur de la constante @@ -218,7 +246,7 @@ function dolibarr_set_const($db, $name, $value, $type='chaine', $visible=0, $not /** \brief Effacement d'une constante dans la base de données - \see dolibarr_set_const + \see dolibarr_get_const, dolibarr_sel_const \param db handler d'accès base \param name nom ou rowid de la constante \return int 0 si KO, 1 si OK @@ -265,6 +293,24 @@ function dolibarr_print_ca($ca) return $cat; } + +/** + \brief Effectue un décalage de date par rapport à une durée + \param time Date timestamp ou au format YYYY-MM-DD + \param duration_value Valeur de la durée à ajouter + \param duration_unit Unité de la durée à ajouter (d, m, y) + \return int Nouveau timestamp +*/ +function dolibarr_time_plus_duree($time,$duration_value,$duration_unit) +{ + $deltastring="+$duration_value"; + if ($duration_unit == 'd') { $deltastring.=" day"; } + if ($duration_unit == 'm') { $deltastring.=" month"; } + if ($duration_unit == 'y') { $deltastring.=" year"; } + return strtotime($deltastring,$time); +} + + /** \brief Formattage de la date \param time date timestamp ou au format YYYY-MM-DD @@ -599,24 +645,28 @@ function img_previous($alt = "default") /** \brief Affiche logo bas - \param alt Texte sur le alt de l'image + \param alt Texte sur le alt de l'image + \param selected Affiche version "selected" du logo */ -function img_down($alt = "default") +function img_down($alt = "default", $selected=1) { - global $conf,$langs; - if ($alt=="default") $alt=$langs->trans("Down"); - return ''.$alt.''; + global $conf,$langs; + if ($alt=="default") $alt=$langs->trans("Down"); + if ($selected) return ''.$alt.''; + else return ''.$alt.''; } /** \brief Affiche logo haut - \param alt Texte sur le alt de l'image + \param alt Texte sur le alt de l'image + \param selected Affiche version "selected" du logo */ -function img_up($alt = "default") +function img_up($alt = "default", $selected=1) { - global $conf,$langs; - if ($alt=="default") $alt=$langs->trans("Up"); - return ''.$alt.''; + global $conf,$langs; + if ($alt=="default") $alt=$langs->trans("Up"); + if ($selected) return ''.$alt.''; + else return ''.$alt.''; } @@ -1061,15 +1111,16 @@ function transcoS2L($zonein,$devise) /** \brief Affichage de la ligne de titre d'un tabelau - \param name - \param file - \param field + \param name libelle champ + \param file url pour clic sur tri + \param field champ de tri \param begin ("" par defaut) \param options ("" par defaut) - \param td paramètres de l'attribut td ("" par defaut) + \param td options de l'attribut td ("" par defaut) \param sortfield nom du champ sur lequel est effectué le tri du tableau + \param sortorder ordre du tri */ -function print_liste_field_titre($name, $file, $field, $begin="", $options="", $td="", $sortfield="") +function print_liste_field_titre($name, $file, $field, $begin="", $options="", $td="", $sortfield="", $sortorder="") { global $conf; // Le champ de tri est mis en évidence. @@ -1083,8 +1134,28 @@ function print_liste_field_titre($name, $file, $field, $begin="", $options="", $ print ''; } print $name." "; - print ''.img_down("A-Z").''; - print ''.img_up("Z-A").''; + if (! $sortorder) + { + print ''.img_down("A-Z",1).''; + print ''.img_up("Z-A",1).''; + } + else + { + if ($field != $sortfield) { + print ''.img_down("A-Z",1).''; + print ''.img_up("Z-A",1).''; + } + else { + if ($sortorder == 'DESC' ) { + print ''.img_down("A-Z",1).''; + print ''.img_up("Z-A",0).''; + } + if ($sortorder == 'ASC' ) { + print ''.img_down("A-Z",0).''; + print ''.img_up("Z-A",1).''; + } + } + } print ""; } @@ -1128,59 +1199,51 @@ function dol_delete_file($file) \param titre titre de la page \param page numéro de la page \param file lien - \param options - \param sortfield - \param sortorder + \param options options cellule td + \param sortfield champ de tri + \param sortorder ordre de tri \param form \param num nombre d'élément total */ function print_barre_liste($titre, $page, $file, $options='', $sortfield='', $sortorder='', $form='', $num=-1) - { - global $conf; +{ + global $conf; - if ($num > $conf->liste_limit or $num == -1) + if ($num > $conf->liste_limit or $num == -1) { - $nextpage = 1; + $nextpage = 1; } - else + else { - $nextpage = 0; + $nextpage = 0; } - print ''; + print '
'; - if ($page > 0 || $num > $conf->liste_limit) - { - print ''; - } - else - { - print ''; - } - - if ($form) - { - print ''; - } - - print ''; + } + else + { + print ''; } - if (strlen($sortorder)) + if ($form) { - $options .= "&sortorder=$sortorder"; + print ''; } - // Affichage des fleches de navigation + print '
'.$titre.' - page '.($page+1); - print '
'.$titre.'
'.$form.''; - - if (strlen($sortfield)) + if ($page > 0 || $num > $conf->liste_limit) { - $options .= "&sortfield=$sortfield"; + print '
'.$titre.' - page '.($page+1); + print '
'.$titre.'
'.$form.''; - print_fleche_navigation($page,$file,$options,$nextpage); + if ($sortfield) $options .= "&sortfield=$sortfield"; + if ($sortorder) $options .= "&sortorder=$sortorder"; - print '

'; + // Affichage des fleches de navigation + print_fleche_navigation($page,$file,$options,$nextpage); + + print '
'; } /**