mirror of
https://gitlab.easter-eggs.com/ee/ldapsaisie.git
synced 2024-11-22 09:59:06 +01:00
LSsearch : improve and add doc for formaterLSformat extraDisplayedColumns's parameter
This commit is contained in:
parent
9a09cf491e
commit
3f350d331c
3 changed files with 43 additions and 1 deletions
|
@ -50,7 +50,8 @@ configuration des &LSobjects;, dans la variable <varname>LSsearch</varname>
|
||||||
'alternativeLSformats' => array (
|
'alternativeLSformats' => array (
|
||||||
'[LSformat 1]',
|
'[LSformat 1]',
|
||||||
'[LSformat 2]'
|
'[LSformat 2]'
|
||||||
)
|
),
|
||||||
|
'formaterLSformat' => '[LSformat]',
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
'customActions' => array (
|
'customActions' => array (
|
||||||
|
@ -268,6 +269,19 @@ contexte dans lequel cette recherche est effectuée.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term>formaterLSformat</term>
|
||||||
|
<listitem>
|
||||||
|
<simpara>&LSformat; optionnel permettant de mettre en forme le résultat obtenu des
|
||||||
|
&LSformats; précédents. Ce &LSformat; ne sera utilisé que si le résultat obtenu
|
||||||
|
précédement n'est pas vide. Il est ainsi possible d'utiliser les paramètres <literal>
|
||||||
|
LSformat</literal> et <literal>alternativeLSformats</literal> afin de récupérer la
|
||||||
|
valeur à afficher, puis de la mettre en forme grâce à ce &LSformat;. Ce format est
|
||||||
|
composé à partir des attributs des objets LDAP dans leur format brut et de la valeur
|
||||||
|
retournés précedement accessible via la variable <literal>val</literal>.</simpara>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
</variablelist>
|
</variablelist>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
|
@ -807,6 +807,12 @@ class LSsearch {
|
||||||
else {
|
else {
|
||||||
$attrs=array_merge($attrs,getFieldInFormat($conf['alternativeLSformats']));
|
$attrs=array_merge($attrs,getFieldInFormat($conf['alternativeLSformats']));
|
||||||
}
|
}
|
||||||
|
if(isset($conf['formaterLSformat'])) {
|
||||||
|
$attrs=array_unique(array_merge($attrs,getFieldInFormat($conf['formaterLSformat'])));
|
||||||
|
if(($key = array_search('val', $attrs)) !== false) {
|
||||||
|
unset($attrs[$key]);
|
||||||
|
}
|
||||||
|
}
|
||||||
if(is_array($retval['attributes'])) {
|
if(is_array($retval['attributes'])) {
|
||||||
$retval['attributes']=array_merge($attrs,$retval['attributes']);
|
$retval['attributes']=array_merge($attrs,$retval['attributes']);
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,6 +47,9 @@ class LSsearchEntry {
|
||||||
|
|
||||||
// Cache
|
// Cache
|
||||||
private $cache=array();
|
private $cache=array();
|
||||||
|
|
||||||
|
// Other values
|
||||||
|
private $other_values=array();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor
|
* Constructor
|
||||||
|
@ -81,11 +84,26 @@ class LSsearchEntry {
|
||||||
if (in_array($key,array_keys($this -> attrs))) {
|
if (in_array($key,array_keys($this -> attrs))) {
|
||||||
return $this -> attrs[$key];
|
return $this -> attrs[$key];
|
||||||
}
|
}
|
||||||
|
elseif (array_key_exists($key,$this->other_values)) {
|
||||||
|
return $this->other_values[$key];
|
||||||
|
}
|
||||||
elseif ($key=='subDn' || $key=='subDnName') {
|
elseif ($key=='subDn' || $key=='subDnName') {
|
||||||
return $this -> subDn;
|
return $this -> subDn;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add value in array $this -> other_values
|
||||||
|
*
|
||||||
|
* @param[in] $name string The value name
|
||||||
|
* @param[in] $value mixed The value
|
||||||
|
*
|
||||||
|
* @retval void
|
||||||
|
**/
|
||||||
|
function registerOtherValue($name,$value) {
|
||||||
|
$this -> other_values[$name]=$value;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get formated text value of entry
|
* Get formated text value of entry
|
||||||
*
|
*
|
||||||
|
@ -185,6 +203,10 @@ class LSsearchEntry {
|
||||||
if (!empty($ret)) break;
|
if (!empty($ret)) break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (!empty($ret) && isset($this->LSsearch->extraDisplayedColumns[$key]['formaterLSformat'])) {
|
||||||
|
$this -> registerOtherValue('val',$ret);
|
||||||
|
$ret=$this -> getFData($this->LSsearch->extraDisplayedColumns[$key]['formaterLSformat']);
|
||||||
|
}
|
||||||
$this -> cache[$key] = $ret;
|
$this -> cache[$key] = $ret;
|
||||||
return $ret;
|
return $ret;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue