mirror of
https://gitlab.easter-eggs.com/ee/ldapsaisie.git
synced 2024-12-23 08:53:47 +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
|
||||
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">
|
||||
<citetitle>Structure</citetitle>...
|
||||
<![CDATA['html_options' => array(
|
||||
'map_url_pattern_format' => '[LSformat]',
|
||||
'map_url_pattern_generate_function' => '[callable]',
|
||||
'map_url_format' => '[LSformat]',
|
||||
),]]>
|
||||
...
|
||||
|
@ -25,12 +37,29 @@
|
|||
</listitem>
|
||||
</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>
|
||||
<term>map_url_format</term>
|
||||
<listitem>
|
||||
<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
|
||||
<literal>map_url_pattern_format</literal>.</simpara>
|
||||
l'interface. Il sera composé avec les informations de l'objet LDAP, y compris
|
||||
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>
|
||||
</varlistentry>
|
||||
|
||||
|
|
|
@ -42,15 +42,27 @@ class LSformElement_postaladdress extends LSformElement_textarea {
|
|||
function getDisplay(){
|
||||
$return = parent :: getDisplay();
|
||||
if ($this -> isFreeze()) {
|
||||
if (isset($this -> params['html_options']['map_url_format']) && !empty($this->values)) {
|
||||
if (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=str_replace("\n"," ",$pattern);
|
||||
$pattern=urlencode($pattern);
|
||||
$this -> attr_html -> attribute -> ldapObject -> registerOtherValue('pattern',$pattern);
|
||||
if (!empty($this->values)) {
|
||||
$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=str_replace("\n"," ",$pattern);
|
||||
$pattern=urlencode($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 (
|
||||
'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(
|
||||
|
@ -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