Changeset 62550 in spip-zone


Ignore:
Timestamp:
Jun 14, 2012, 7:48:31 PM (7 years ago)
Author:
fabrice.albert@…
Message:

Formulaires geolocui et markers

Location:
_plugins_/gmap/trunk
Files:
12 added
8 deleted
5 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/gmap/trunk/inc/gmap_db_utils.php

    r62494 r62550  
    1515 
    1616// Création d'un type de marqueur
    17 function gmap_cree_type($nom, $descriptif, $objet = "", $visible = "oui", $priorite = 2)
    18 {
     17function gmap_cree_type($nom, $descriptif, $objet = "", $visible = "oui", $priorite = 2) {
     18
    1919        sql_insertq("spip_types_geopoints", array(
    2020                "objet" => $objet,
     
    2323                "visible" => $visible,
    2424                "priorite" => intval($priorite)));
    25 }
    26 function gmap_update_type($id, $nom, $descriptif, $objet = "", $visible = "oui", $priorite = 2)
    27 {
     25               
     26}
     27function gmap_update_type($id, $nom, $descriptif, $objet = "", $visible = "oui", $priorite = 2) {
     28
    2829        sql_updateq("spip_types_geopoints", array(
    2930                "objet" => $objet,
     
    3233                "visible" => $visible,
    3334                "priorite" => $priorite),
    34                 'id_type_point=' . intval($id));
     35                'id_type_geopoint=' . intval($id));
     36               
    3537}
    3638
    3739// Destruction d'un type
    38 function gmap_delete_type($id)
    39 {
    40         sql_delete('spip_types_geopoints', 'id_type_point=' . intval($id));
     40function gmap_delete_type($id) {
     41
     42        sql_delete('spip_types_geopoints', 'id_type_geopoint=' . intval($id));
     43       
    4144}
    4245
    4346// Récupérer tous les types de points
    44 function gmap_get_all_types()
    45 {
     47function gmap_get_all_types() {
     48
    4649        $types = array();
    47         /*
    48         SELECT spip_types_geopoints.id_type_point AS id, spip_types_geopoints.nom AS nom, count(*)
    49          FROM spip_types_geopoints JOIN spip_geopoints ON spip_types_geopoints.id_type_point = spip_geopoints.id_type_point
    50          GROUP BY spip_types_geopoints.id_type_point
    51         */
     50
    5251        $rowset = sql_select(
    5352                array(
    54                         "spip_types_geopoints.id_type_point AS id",
     53                        "spip_types_geopoints.id_type_geopoint AS id",
    5554                        "spip_types_geopoints.objet AS objet",
    5655                        "spip_types_geopoints.nom AS nom",
     
    5857                        "spip_types_geopoints.visible AS visible",
    5958                        "spip_types_geopoints.priorite AS priorite",
    60                         "count(points.id_point) AS nb_points"),
     59                        "count(points.id_geopoint) AS nb_points"),
    6160                "spip_types_geopoints".
    62                 " LEFT JOIN spip_geopoints AS points ON spip_types_geopoints.id_type_point = points.id_type_point",
    63                 "", "spip_types_geopoints.id_type_point", "spip_types_geopoints.id_type_point");
     61                " LEFT JOIN spip_geopoints AS points ON spip_types_geopoints.id_type_geopoint = points.id_type_geopoint",
     62                "", "spip_types_geopoints.id_type_geopoint", "spip_types_geopoints.id_type_geopoint");
    6463        // L'alias sur les noms des tables est nécessaire parce que spip ne peut pas prendre en
    65         // charge tous les cas dans la transposition des nom de tables : un nom de table précédé
     64        // charge tous les cas dans la transposition des noms de tables : un nom de table précédé
    6665        // d'une parenthèse n'est pas transposé (cf. _SQL_PREFIXE_TABLE dans ecrire/req/mysql.php).
    67         while ($row = sql_fetch($rowset))
     66       
     67        while ($row = sql_fetch($rowset)) {
    6868                $types[] = $row;
     69        }
     70               
    6971        return $types;
    7072}
     
    7375
    7476// Recherche d'un type de pointeur d'après son nom
    75 function gmap_trouve_type_point($objet = "", $type = "defaut")
    76 {
     77function gmap_trouve_type_point($objet = "", $type = "defaut") {
     78
    7779        // Corriger la chaîne de type
    7880        if (!$type || ($type == ""))
     
    8183               
    8284        // Rechercher avec le nom de l'objet
    83         $rowsetType = sql_select("id_type_point", "spip_types_geopoints", "nom = '".$type."' AND objet='".$objet."'");
     85        $rowsetType = sql_select("id_type_geopoint", "spip_types_geopoints", "nom = '".$type."' AND objet='".$objet."'");
    8486        if ($rowType = sql_fetch($rowsetType))
    85                 $id_type = $rowType['id_type_point'];
     87                $id_type = $rowType['id_type_geopoint'];
    8688        sql_free($rowsetType);
    8789        if ($id_type)
     
    8991       
    9092        // Recherche sans le nom de l'objet
    91         $rowsetType = sql_select("id_type_point", "spip_types_geopoints", "nom = '".$type."' AND objet=''");
     93        $rowsetType = sql_select("id_type_geopoint", "spip_types_geopoints", "nom = '".$type."' AND objet=''");
    9294        if ($rowType = sql_fetch($rowsetType))
    93                 $id_type = $rowType['id_type_point'];
     95                $id_type = $rowType['id_type_geopoint'];
    9496        sql_free($rowsetType);
    9597        if ($id_type)
     
    104106
    105107// Récupérer les marqueurs d'un objet
    106 function gmap_get_types($objet)
    107 {
     108function gmap_get_types($objet) {
     109
    108110        $types = array();
    109         $rowset = sql_select("id_type_point AS id, nom", "spip_types_geopoints", "objet='".$objet."' OR objet=''");
     111       
     112        $rowset = sql_select("id_type_geopoint AS id, nom", "spip_types_geopoints", "objet='".$objet."' OR objet=''");
     113       
    110114        while ($row = sql_fetch($rowset))
    111115                $types[] = $row;
     116               
    112117        return $types;
    113118}
    114119
    115120// Ajout d'un point (sans se demander s'il existe ou pas)
    116 function gmap_add_point($objet, $id_objet, $lat, $long, $zoom, $type = "defaut")
    117 {
     121function gmap_add_point($objet, $id_objet, $lat, $long, $zoom, $type = "defaut") {
     122
    118123        $id = 0;
    119124
    120125        // Récupérer le type de pointeur
    121         $id_type_point = gmap_trouve_type_point($objet, $type);
     126        $id_type_geopoint = gmap_trouve_type_point($objet, $type);
    122127                       
    123128        // Insérer dans la table
     
    126131                "latitude" => $lat,
    127132                "zoom" => $zoom,
    128                 "id_type_point" => $id_type_point));
     133                "id_type_geopoint" => $id_type_geopoint));
    129134               
    130135        // Insérer dans la table des relations
    131         if ($id > 0)
    132         {
     136        if ($id > 0) {
    133137                sql_insertq("spip_geopoints_liens", array(
    134138                        'id_point' => $id,
     
    152156
    153157// Mise à jour d'un point
    154 function gmap_update_point($objet, $id_objet, $id, $lat, $long, $zoom, $type = "defaut")
    155 {
     158function gmap_update_point($objet, $id_objet, $id, $lat, $long, $zoom, $type = "defaut") {
     159
    156160        // Vérifier la cohérence de la liaison
    157         if (!gmap_check_point_owner($id, $objet, $id_objet))
    158         {
     161        if (!gmap_check_point_owner($id, $objet, $id_objet)) {
    159162                spip_log("Tentative de modification d'un point affecté à un autre objet", "gmap"._LOG_AVERTISSEMENT);
    160163                return FALSE;
     
    170173                        "latitude" => $lat,
    171174                        "zoom" => $zoom,
    172                         "id_type_point" => $id_type),
     175                        "id_type_geopoint" => $id_type),
    173176                "id_point=".$id);
    174177       
     
    177180
    178181// Suppression d'un point
    179 function gmap_delete_point($objet, $id_objet, $id)
    180 {
     182function gmap_delete_point($objet, $id_objet, $id) {
     183
    181184        // Vérifier la cohérence de la liaison
    182         if (!gmap_check_point_owner($id, $objet, $id_objet))
    183         {
     185        if (!gmap_check_point_owner($id, $objet, $id_objet)) {
    184186                spip_log("Tentative de modification d'un point affecté à un autre objet", "gmap"._LOG_AVERTISSEMENT);
    185187                return FALSE;
     
    194196
    195197// Vérification de la cohérence d'un id de point par rapport à l'objet
    196 function gmap_check_point_owner($id, $objet, $id_objet)
    197 {
     198function gmap_check_point_owner($id, $objet, $id_objet) {
     199
    198200        $row = sql_fetsel("objet, id_objet", "spip_geopoints_liens", "id_point=".$id);
    199201        if (!$row)
     
    268270        $rowset = sql_select(
    269271                array("points.id_point AS id", "points.longitude AS longitude", "points.latitude AS latitude", "points.zoom AS zoom", "types.nom AS type", "types.visible AS visible", "types.priorite AS priorite"),
    270                 "spip_geopoints_liens AS liens JOIN spip_geopoints AS points ON liens.id_point=points.id_point JOIN spip_types_geopoints AS types ON points.id_type_point = types.id_type_point",
     272                "spip_geopoints_liens AS liens JOIN spip_geopoints AS points ON liens.id_point=points.id_point JOIN spip_types_geopoints AS types ON points.id_type_geopoint = types.id_type_geopoint",
    271273                "liens.objet = '".$objet."' AND liens.id_objet = ".$id_objet);
    272274        while ($row = sql_fetch($rowset))
     
    449451        {
    450452                if (!strlen($joinType))
    451                         $joinType = " JOIN spip_types_geopoints AS types ON types.id_type_point = points.id_type_point";
     453                        $joinType = " JOIN spip_types_geopoints AS types ON types.id_type_geopoint = points.id_type_geopoint";
    452454                if (strlen($clauseWhere))
    453455                        $clauseWhere .= " AND ";
     
    484486                       
    485487                if (!strlen($joinType))
    486                         $joinType = " JOIN spip_types_geopoints AS types ON types.id_type_point = points.id_type_point";
     488                        $joinType = " JOIN spip_types_geopoints AS types ON types.id_type_geopoint = points.id_type_geopoint";
    487489                if (strlen($clauseWhere))
    488490                        $clauseWhere .= " AND ";
  • _plugins_/gmap/trunk/lang/gmap_fr.php

    r62494 r62550  
    121121        'erreur_aide_html_debut' => "Le fichier d'aide ",
    122122        'erreur_aide_html_fin' => " n'existe pas !",
     123        'erreur_logique_formulaire' => "Une erreur de logique interne interdit l'enregistrement des données",
     124        'erreur_type_nom_duplique' => "Deux des types saisis portent le même nom, vous ne pourriez plus les distinguer",
    123125        'explication_api_version' => "Version de l'API Google Maps v2 utilis&eacute;e (<a href=\"http://code.google.com/apis/maps/documentation/index.html#API_Updates\" class=\"spip_out\">info</a> et <a href=\"http://code.google.com/p/gmaps-api-issues/wiki/JavascriptMapsAPIChangelog\" class=\"spip_out\">changelogs</a>)",
    124126        'explication_api_version_v3' =>  "Version de l'API Google Maps v3 utilis&eacute;e (<a href=\"http://code.google.com/intl/fr-FR/apis/maps/documentation/javascript/basics.html#Versioning\" class=\"spip_out\">info</a>)",
     
    126128        'explication_clef_V3' => "Cette clef n'est n&eacute;cessaire qui si vous voulez utiliser le mode de visualisation Google Earth. C'est la clef \"Google API\" qui est utilis&eacute;e pour charger des scripts avec google.load. Si vous ne la renseignez pas, la fonctionnalit&eacute; \"Google Earth\" sera seulement d&eacute;sactiv&eacute;e",
    127129        'explication_defaults_center' => "Cliquez sur la carte ci-dessous, ou d&eacute;placez le marqueur pour d&eacute;finir la position du centre de la carte, vous pouvez &eacute;galement agir sur le zoom.",
    128         'explication_hack_modalbox' => "Cette fonction utilise ModalBox qui ne permet pas d'initialiser la carte et les autres scripts correctement.",
     130        'explication_hack_modalbox' => "Par d&eacute;faut, le lien de modification d'un document ouvre une bo&icirc;te modale pour &eacute;diter le document, mais les scripts de GMap, comme d'autres scripts ne peuvent pas &ecirc;tre initialis&eacute;s dans ce contexte. Cette option propose donc d'inhiber ce comportement pour que les documents soient toujours &eacute;dit&eacute;s sur la page qui leur est d&eacute;di&eacute;e.",
    129131        'explication_info_merge_more' => "Quand cette option est s&eacute;lectionn&eacute;e, le contenu des bulles d'information est fusionn&eacute; si plusieurs marqueurs se chevauchent.",
    130132        'explication_info_width' => "Largeur max des bulles...",
  • _plugins_/gmap/trunk/prive/formulaires/configurer_gmap_geolocui.html

    r62494 r62550  
    2424                                        <h3 class="legend"><:gmap:configuration_rubriques_liste:></h3>
    2525                                        <ul>
    26                                                 <li class="pleine_largeur">
    27                                                         <p class="texte"><:gmap:explication_restriction:></p>
    28                                                 </li>
     26                                                <li class="pleine_largeur texte"><:gmap:explication_restriction:></li>
    2927                                                #SET{name,tout_le_site}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
    3028                                                <li class="editer pleine_largeur editer_#GET{name}[ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
     
    5654</script>
    5755                                                #SET{name,les_rubriques}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
    58                                                 <li class="editer pleine_largeur editer_#GET{name}[ (#GET{obli})][ (#GET{erreurs}|oui)erreur] choix_liste_rubriques">
     56                                                <li class="editer pleine_largeur editer_#GET{name}[ (#GET{obli})][ (#GET{erreurs}|oui)erreur]" id="choix_liste_rubriques">
    5957                                                        <p class="explications"><:gmap:explication_liste_rubriques:></p>[
    6058                                                        <span class='erreur_message'>(#GET{erreurs})</span>
  • _plugins_/gmap/trunk/prive/formulaires/configurer_gmap_geolocui.php

    r62494 r62550  
    6161        }
    6262       
    63         $hack_modalbox = gmap_lire_config('gmap_edit_params', 'hack_modalbox', "oui");
     63        $valeurs['hack_modalbox'] = gmap_lire_config('gmap_edit_params', 'hack_modalbox', "oui");
    6464       
    6565        return $valeurs;
     
    9696       
    9797        // Contournement ModalBox.
    98         gmap_ecrire_config('gmap_objets_geo', 'hack_modalbox', ((_request('hack_modalbox') === "oui") ? "oui" : "non"));
     98        gmap_ecrire_config('gmap_edit_params', 'hack_modalbox', ((_request('hack_modalbox') === "oui") ? "oui" : "non"));
    9999
    100100        return array('message_ok'=>_T('config_info_enregistree'),'editable'=>true);
  • _plugins_/gmap/trunk/prive/style/gmap_private.css

    r62494 r62550  
    9292}
    9393table.edit_markers tr input.text {
    94         font-family: Verdana, Arial, Helvetica, sans-serif;
    9594        font-size: 0.95em;
    96     border-style: etched;
     95    border-style: inset;
    9796        border-width: 1px;
    9897        border-color: rgb(167,167,167);
    9998    background-color: rgb(255,255,255);
     99        padding: 0;
    100100}
    101101table.edit_markers tr.active input.text {
     
    112112}
    113113table.edit_markers tr select.text {
    114         font-family: Verdana, Arial, Helvetica, sans-serif;
    115114        font-size: 1em;
    116     border-style: etched;
     115    border-style: inset;
    117116        border-width: 1px;
    118117        border-color: rgb(167,167,167);
    119118    background-color: rgb(255,255,255);
     119        padding: 0;
    120120}
    121121table.edit_markers tr.active select.text {
     
    282282
    283283.tool-container input, .tool-container select {
    284         font-family: Verdana, Arial, Helvetica, sans-serif;
    285284        font-size: 0.9em;
    286285}
     
    317316/* Saisies */
    318317.configurer_gmap input.small {
    319         font-family: Verdana, Arial, Helvetica, sans-serif;
    320318        font-size: 0.9em;
    321319}
    322320.configurer_gmap select.small {
    323         font-family: Verdana, Arial, Helvetica, sans-serif;
    324321        font-size: 0.8em;
    325322}
     
    367364        padding: 0;
    368365        padding-left: 130px;
     366}
     367/* Pas très propre, mais comme les ul des formulaires de configuration définissent
     368        la margin à-10px, sinon le picker est en retrait à gauche... */
     369.configurer_gmap ul.item_picked {
     370        margin: 0;
     371}
     372.configurer_gmap fieldset h3.legend {
     373        margin-bottom: 0.5em;
    369374}
    370375
     
    442447        padding: 0;
    443448}
    444 table.edit_types th{
     449table.edit_types th {
    445450    text-align: left;
    446451        padding: 1px 3px;
    447452}
    448 table.edit_types td{
     453table.edit_types td {
    449454        padding: 1px 3px;
    450455}
     
    456461}
    457462table.edit_types tr input {
    458         font-family: Verdana, Arial, Helvetica, sans-serif;
    459463        font-size: 1em;
    460     border-style: etched;
     464    border-style: inset;
    461465        border-width: 1px;
    462466        border-color: rgb(167,167,167);
    463467    background-color: rgb(255,255,255);
     468        padding: 0;
    464469}
    465470table.edit_types tr input.nom {
     
    473478}
    474479table.edit_types tr select {
    475         font-family: Verdana, Arial, Helvetica, sans-serif;
    476480        font-size: 1em;
    477     border-style: etched;
     481    border-style: inset;
    478482        border-width: 1px;
    479483        border-color: rgb(167,167,167);
    480484    background-color: rgb(255,255,255);
     485        padding: 0;
     486}
     487table.edit_types tr select.visible {
     488        width: 4em;
    481489}
    482490table.edit_types .btn_delete {
Note: See TracChangeset for help on using the changeset viewer.