LSsearch : add formaterFunction parameter for extraDisplayedColumns
authorBenjamin Renard <brenard@easter-eggs.com>
Fri, 21 Aug 2015 13:15:14 +0000 (15:15 +0200)
committerBenjamin Renard <brenard@easter-eggs.com>
Fri, 21 Aug 2015 13:15:14 +0000 (15:15 +0200)
doc/conf/LSobject/LSsearch.docbook
public_html/includes/class/class.LSsearchEntry.php

index 99d0c87..d387a32 100644 (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]',
     )
   ),
@@ -284,6 +285,16 @@ contexte dans lequel cette recherche est effectuée.</para>
       </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>
           <simpara>Ce paramètre permet de définir un style CSS personnalisé pour la colonne.
index 90a398e..4924541 100644 (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}.")
+);