From 3d52a5ce5755e89d3f6fa04a12877659ba1e6ef9 Mon Sep 17 00:00:00 2001 From: Benjamin Renard Date: Fri, 21 Aug 2015 15:15:14 +0200 Subject: [PATCH] LSsearch : add formaterFunction parameter for extraDisplayedColumns --- doc/conf/LSobject/LSsearch.docbook | 11 +++++++++++ .../includes/class/class.LSsearchEntry.php | 17 ++++++++++++++++- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/doc/conf/LSobject/LSsearch.docbook b/doc/conf/LSobject/LSsearch.docbook index 99d0c87c..d387a321 100644 --- a/doc/conf/LSobject/LSsearch.docbook +++ b/doc/conf/LSobject/LSsearch.docbook @@ -52,6 +52,7 @@ configuration des &LSobjects;, dans la variable LSsearch '[LSformat 2]' ), 'formaterLSformat' => '[LSformat]', + 'formaterFunction' => '[fonction de formatage]', 'cssStyle' => '[CSS style]', ) ), @@ -283,6 +284,16 @@ contexte dans lequel cette recherche est effectuée. + + formaterFunction + + Le nom d'une fonction optionnelle à exécuter pour mettre en forme le résultat + obtenu des &LSformats; précédents. Cette fonction ne sera appelée que si le résultat + obtenu précédement n'est pas vide. La fonction prendra en paramètre la valeur à mettre + en forme et retournera la valeur mise en forme. + + + cssStyle diff --git a/public_html/includes/class/class.LSsearchEntry.php b/public_html/includes/class/class.LSsearchEntry.php index 90a398ef..49245414 100644 --- a/public_html/includes/class/class.LSsearchEntry.php +++ b/public_html/includes/class/class.LSsearchEntry.php @@ -207,6 +207,16 @@ class LSsearchEntry { $this -> registerOtherValue('val',$ret); $ret=$this -> getFData($this->LSsearch->extraDisplayedColumns[$key]['formaterLSformat']); } + if (!empty($ret) && isset($this->LSsearch->extraDisplayedColumns[$key]['formaterFunction'])) { + if (is_callable($this->LSsearch->extraDisplayedColumns[$key]['formaterFunction'])) { + $ret=call_user_func($this->LSsearch->extraDisplayedColumns[$key]['formaterFunction'],$ret); + } + else { + $func=$this->LSsearch->extraDisplayedColumns[$key]['formaterFunction']; + if(is_array($func)) $func=print_r($func,1); + LSerror::addErrorCode('LSsearchEntry_01',array('func' => $func, 'column' => $key)); + } + } $this -> cache[$key] = $ret; return $ret; } @@ -233,4 +243,9 @@ class LSsearchEntry { } -?> +/** + * Error Codes + **/ +LSerror :: defineError('LSsearchEntry_01', +_("LSsearchEntry : Invalid formaterFunction %{func} for extraDisplayedColumns %{column}.") +);