« WATERBEAR:Localisation » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
Ligne 15 : | Ligne 15 : | ||
<nowiki>$url="http://localhost/localisation/recherche.php?maximumResponses=".$maximumResponses."&terr=".$terr."&text=".$texte."&type=street";</nowiki> | <nowiki>$url="http://localhost/localisation/recherche.php?maximumResponses=".$maximumResponses."&terr=".$terr."&text=".$texte."&type=street";</nowiki> | ||
La partie <nowiki>http://localhost/localisation/</nowiki> est à adapter selon votre implémentation dans le serveur WEB. | La partie <nowiki>http://localhost/localisation/</nowiki> est à adapter selon votre implémentation dans le serveur WEB. | ||
Comme nous ne sommes pas limités à la France, il devient utile à nécessaire de signaler le pays. Nous allons ajouter le code du pays en deux lettres (BE ou FR) devant le code postal et intégré à celui-ci. | |||
Pour l'implémentation, il faut agir dans le code PHP du logiciel à deux endroits: | |||
* La première intervention se passe lors de l'affichage de la listes des rues trouvées. La chaine du type "<rue> : <code postal> <commune>" devient "<rue> : <code pays> <code postal> <commune>". Ceci se passe dans le script PHP "include/plugins/catalogue/recherches/autocomplete_rue_ign.php". | |||
A la ligne 21 de la fonction "plugin_catalogue_recherches_autocomplete_rue_ign", la ligne: | |||
<nowiki>$nom=$proposition["street"]." : ".$proposition["zipcode"]." ".$proposition["city"];</nowiki> | |||
devient | |||
<nowiki>$nom=$proposition["street"]." : ".$proposition["countrycode"]." ".$proposition["zipcode"]." ".$proposition["city"];</nowiki> | |||
La zone "countrycode" a été insérée. | |||
* La seconde intervention concerne de découpage et l'affectation de ces différentes information de la chaine ci-dessus. Il faut repérer la présence éventuelle de ce code de pays et l'intégrer au code postal. C'est le script PHP "include/plugins/catalogue/catalogage/grilles/actions_grilles/wizard_lecteur_analyse_adresse.php" qui est concerné. | |||
A la ligne 38, les deux lignes: | |||
$CP= trim($elements[0]); | |||
$ville= trim($elements[1]); | |||
sont à remplacer par le bloc: | |||
if (strlen(trim($elements[0])) < 4) | |||
{ | |||
$elements=explode(" ", trim($segments[1]), 3); | |||
$CP= trim($elements[0])." ".trim($elements[1]); | |||
$ville= trim($elements[2]); | |||
} | |||
else | |||
{ | |||
$CP= trim($elements[0]); | |||
$ville= trim($elements[1]); | |||
} | |||
=Scripts= | |||
Les scripts PHP ont été modifiés dans le logiciel. Ils ont été ajoutés à l'ensemble qui est téléchargeable au lien suivant: | |||
[[Media:WATERBEAR:Waterbear.modif.zip|Télécharger le fichier ZIP des modifications de Waterbear]] | |||
Un autre fichier ne comprenant que ces scripts est téléchargeable au lien suivant: | |||
[[Media:WATERBEAR:Waterbear.geo.zip|Télécharger le fichier ZIP des scripts de géolocalisation]] | |||
Version du 28 février 2021 à 12:27
But
Dans l'article Api de localisation de Rues/Communes, nous avons mis en oeuvre un module d'aide à la recherche d'adresse. Nous allons l'appliquer au remplissage de l'adresse d'un lecteur.
Mise en oeuvre
Lorsque vous voulez ajouter un utilisateur, vous avez une section consacrée à son adresse. La zone "9a accès" fait appel à une API de l'IGN française ayant des droits d'accès limités ou payants. D'autre part, il est limité à la France. Votre API, elle intègre la France et la Belgique et est ouverte à l'ajout d'autres pays. Elle a été conçue afin d'être compatible à celle de l'IGN français.
Pour l'activer, il faut changer une ligne dans le code PHP du logiciel de Waterbear. Le fichier concerné est "include/classes/geoportail.php".
La ligne 35 de ce fichier sous la fonction "completion_ws":
$url="http://wxs.ign.fr/".$clef."/ols/apis/completion?text=".$texte."&maximumResponses=".$maximumResponses."&type=".$type."&terr=".$terr;
est à mettre en commentaire (double slash "//" en début de ligne) et à remplacer par:
$url="http://localhost/localisation/recherche.php?maximumResponses=".$maximumResponses."&terr=".$terr."&text=".$texte."&type=street";
La partie http://localhost/localisation/ est à adapter selon votre implémentation dans le serveur WEB.
Comme nous ne sommes pas limités à la France, il devient utile à nécessaire de signaler le pays. Nous allons ajouter le code du pays en deux lettres (BE ou FR) devant le code postal et intégré à celui-ci.
Pour l'implémentation, il faut agir dans le code PHP du logiciel à deux endroits:
- La première intervention se passe lors de l'affichage de la listes des rues trouvées. La chaine du type "<rue> :
<commune>" devient "<rue> :
<commune>". Ceci se passe dans le script PHP "include/plugins/catalogue/recherches/autocomplete_rue_ign.php".
A la ligne 21 de la fonction "plugin_catalogue_recherches_autocomplete_rue_ign", la ligne:
$nom=$proposition["street"]." : ".$proposition["zipcode"]." ".$proposition["city"];
devient
$nom=$proposition["street"]." : ".$proposition["countrycode"]." ".$proposition["zipcode"]." ".$proposition["city"];
La zone "countrycode" a été insérée.
- La seconde intervention concerne de découpage et l'affectation de ces différentes information de la chaine ci-dessus. Il faut repérer la présence éventuelle de ce code de pays et l'intégrer au code postal. C'est le script PHP "include/plugins/catalogue/catalogage/grilles/actions_grilles/wizard_lecteur_analyse_adresse.php" qui est concerné.
A la ligne 38, les deux lignes:
$CP= trim($elements[0]);
$ville= trim($elements[1]);
sont à remplacer par le bloc:
if (strlen(trim($elements[0])) < 4)
{
$elements=explode(" ", trim($segments[1]), 3);
$CP= trim($elements[0])." ".trim($elements[1]);
$ville= trim($elements[2]);
}
else
{
$CP= trim($elements[0]);
$ville= trim($elements[1]);
}
Scripts
Les scripts PHP ont été modifiés dans le logiciel. Ils ont été ajoutés à l'ensemble qui est téléchargeable au lien suivant:
Télécharger le fichier ZIP des modifications de Waterbear
Un autre fichier ne comprenant que ces scripts est téléchargeable au lien suivant:
Télécharger le fichier ZIP des scripts de géolocalisation