mirror of
https://gitlab.easter-eggs.com/ee/ldapsaisie.git
synced 2024-11-26 11:52:59 +01:00
LSattr_html :: postaladdress : improve it and add default configuration value
This commit is contained in:
parent
2094b6f5e8
commit
e1cdd85819
2 changed files with 57 additions and 10 deletions
|
@ -5,10 +5,22 @@
|
||||||
en plus de l'adresse, un lien composé à partir d'informations de l'objet permettant
|
en plus de l'adresse, un lien composé à partir d'informations de l'objet permettant
|
||||||
par exemple d'afficher un lien vers une carte géocalisant l'adresse postale.</para>
|
par exemple d'afficher un lien vers une carte géocalisant l'adresse postale.</para>
|
||||||
|
|
||||||
|
<para>Par défaut, le lien ajouté sera un lien de recherche de l'adresse postale
|
||||||
|
générée à partir de la valeur de l'attribut (en remplaçant les retours à la ligne
|
||||||
|
(<literal>\n</literal>) par des espaces) via le service
|
||||||
|
<ulink url='http://nominatim.openstreetmap.org/'>Nominatim d'OpenStreetMap</ulink>.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<note><simpara>Dans le cadre du fonctionnement par défaut et pour maîtriser les
|
||||||
|
valeurs stockées dans l'annuaire, il faut coupler ce type d'attribut HTML avec le
|
||||||
|
type d'attribut LDAP
|
||||||
|
<link linkend='config-LSattr_ldap_postaladdress'>postaladdress</link></simpara></note>
|
||||||
|
|
||||||
<programlisting linenumbering="unnumbered">
|
<programlisting linenumbering="unnumbered">
|
||||||
<citetitle>Structure</citetitle>...
|
<citetitle>Structure</citetitle>...
|
||||||
<![CDATA['html_options' => array(
|
<![CDATA['html_options' => array(
|
||||||
'map_url_pattern_format' => '[LSformat]',
|
'map_url_pattern_format' => '[LSformat]',
|
||||||
|
'map_url_pattern_generate_function' => '[callable]',
|
||||||
'map_url_format' => '[LSformat]',
|
'map_url_format' => '[LSformat]',
|
||||||
),]]>
|
),]]>
|
||||||
...
|
...
|
||||||
|
@ -25,12 +37,29 @@
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term>map_url_pattern_generate_function</term>
|
||||||
|
<listitem>
|
||||||
|
<simpara>Ce paramètre permet de définir une fonction qui sera utilisée à la place
|
||||||
|
du paramètre <literal>map_url_pattern_format</literal> pour générer la valeur de
|
||||||
|
l'adresse postale qui sera insérée dans l'URL du lien ajouté dans l'interface.
|
||||||
|
Cette fonction prendra en paramètre l'objet <emphasis>LSformElement</emphasis>
|
||||||
|
courant et devra retourner une chaîne de caractères correspondant à l'adresse
|
||||||
|
postale à insérer dans le lien de l'interface. Par défaut, la fonction
|
||||||
|
<literal>LSformElement_postaladdress__generate_pattern</literal> est utilisée.
|
||||||
|
</simpara>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term>map_url_format</term>
|
<term>map_url_format</term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<simpara>Ce &LSformat; doit permettre de générer l'URL du lien ajouté dans
|
<simpara>Ce &LSformat; doit permettre de générer l'URL du lien ajouté dans
|
||||||
l'interface à partir de la valeur de l'adresse postale générée via le paramètre
|
l'interface. Il sera composé avec les informations de l'objet LDAP, y compris
|
||||||
<literal>map_url_pattern_format</literal>.</simpara>
|
le mot clé <emphasis>%{pattern}</emphasis> correspondant à la valeur de l'adresse
|
||||||
|
postale générée à l'aide des paramètres précédents. Par défaut, la format suivant
|
||||||
|
sera utilisé :
|
||||||
|
<literal>http://nominatim.openstreetmap.org/search.php?q=%{pattern}</literal></simpara>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
|
|
|
@ -42,15 +42,27 @@ class LSformElement_postaladdress extends LSformElement_textarea {
|
||||||
function getDisplay(){
|
function getDisplay(){
|
||||||
$return = parent :: getDisplay();
|
$return = parent :: getDisplay();
|
||||||
if ($this -> isFreeze()) {
|
if ($this -> isFreeze()) {
|
||||||
if (isset($this -> params['html_options']['map_url_format']) && !empty($this->values)) {
|
if (!empty($this->values)) {
|
||||||
if (isset($this -> params['html_options']['map_url_pattern_format'])) {
|
$map_url_format=(isset($this -> params['html_options']['map_url_format'])?$this -> params['html_options']['map_url_format']:'http://nominatim.openstreetmap.org/search.php?q=%{pattern}');
|
||||||
|
if (isset($this -> params['html_options']['map_url_pattern_generate_function'])) {
|
||||||
|
if (is_callable($this -> params['html_options']['map_url_pattern_generate_function'])) {
|
||||||
|
$this -> attr_html -> attribute -> ldapObject -> registerOtherValue('pattern',call_user_func($this -> params['html_options']['map_url_pattern_generate_function'],$this));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
LSerror::addErrorCode('LSformElement_postaladdress_01', $this -> params['html_options']['map_url_pattern_generate_function']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
elseif (isset($this -> params['html_options']['map_url_pattern_format'])) {
|
||||||
$pattern=$this -> attr_html -> attribute -> ldapObject -> getFData($this -> params['html_options']['map_url_pattern_format']);
|
$pattern=$this -> attr_html -> attribute -> ldapObject -> getFData($this -> params['html_options']['map_url_pattern_format']);
|
||||||
$pattern=str_replace("\n"," ",$pattern);
|
$pattern=str_replace("\n"," ",$pattern);
|
||||||
$pattern=urlencode($pattern);
|
$pattern=urlencode($pattern);
|
||||||
$this -> attr_html -> attribute -> ldapObject -> registerOtherValue('pattern',$pattern);
|
$this -> attr_html -> attribute -> ldapObject -> registerOtherValue('pattern',$pattern);
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
$this -> attr_html -> attribute -> ldapObject -> registerOtherValue('pattern',LSformElement_postaladdress__generate_pattern($this));
|
||||||
|
}
|
||||||
LSsession :: addJSconfigParam('LSformElement_postaladdress_'.$this -> name, array (
|
LSsession :: addJSconfigParam('LSformElement_postaladdress_'.$this -> name, array (
|
||||||
'map_url' => $this -> attr_html -> attribute -> ldapObject -> getFData($this -> params['html_options']['map_url_format'])
|
'map_url' => $this -> attr_html -> attribute -> ldapObject -> getFData($map_url_format)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
LSsession :: addHelpInfos(
|
LSsession :: addHelpInfos(
|
||||||
|
@ -66,4 +78,10 @@ class LSformElement_postaladdress extends LSformElement_textarea {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
function LSformElement_postaladdress__generate_pattern($LSformElement) {
|
||||||
|
return str_replace("\n"," ",$LSformElement->attr_html->attribute->getDisplayValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
LSerror :: defineError('LSformElement_postaladdress_01',
|
||||||
|
_("LSformElement_postaladdress : Map URL pattern generate function is not callabled (%{function}).")
|
||||||
|
);
|
||||||
|
|
Loading…
Reference in a new issue