LSsearch : add formaterFunction parameter for extraDisplayedColumns

This commit is contained in:
Benjamin Renard 2015-08-21 15:15:14 +02:00
parent ce5e1b420a
commit 3d52a5ce57
2 changed files with 27 additions and 1 deletions

View file

@ -52,6 +52,7 @@ configuration des &LSobjects;, dans la variable <varname>LSsearch</varname>
'[LSformat 2]'
),
'formaterLSformat' => '[LSformat]',
'formaterFunction' => '[fonction de formatage]',
'cssStyle' => '[CSS style]',
)
),
@ -283,6 +284,16 @@ contexte dans lequel cette recherche est effectuée.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>formaterFunction</term>
<listitem>
<simpara>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.</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>cssStyle</term>
<listitem>

View file

@ -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}.")
);