Changeset 47779 in spip-zone


Ignore:
Timestamp:
May 14, 2011, 11:08:06 AM (8 years ago)
Author:
jean-marc.viglino@…
Message:

[MAJ] Modification de l'affichage des infobulles, ajout de l'affichage au survol
[BUG] Correction d'une erreur a la suppression des calques

Location:
_plugins_/spip_geoportail
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/spip_geoportail/action/geoportail_config.php

    r46378 r47779  
    5757                if (isset($_POST['setpopup']))
    5858                {       ecrire_meta('geoportail_popup',$_POST['popup']);
     59                        ecrire_meta('geoportail_hover',$_POST['hover']);
    5960                        ecrire_metas();
    6061                }
  • _plugins_/spip_geoportail/css/geoportail_carte.css

    r47549 r47779  
    7474        background:transparent;
    7575}
    76 #popup .spip_logos
     76
     77#popup .spip_logos,
     78#popup.Anchored_hover .document .spip_logos
    7779{       margin:0 0.5em 0 0;
    7880        float:left;
     
    9294{       margin:auto;
    9395        float:none;
     96}
     97
     98#popup.Anchored_hover .olPopupContent
     99{       overflow:hidden;
    94100}
    95101
  • _plugins_/spip_geoportail/exec/geoportail_config_options.php

    r47206 r47779  
    6363                $geoportail_provider = $GLOBALS['meta']['geoportail_provider'];
    6464                $geoportail_popup = $GLOBALS['meta']['geoportail_popup'];
     65                $ghover = ($GLOBALS['meta']['geoportail_hover'])?"CHECKED":"";
    6566
    6667                /* Type d'objet a georef */
     
    8384                                ."<input type='radio' name='popup' class='fondl'id='Anchored' value='Anchored'".($geoportail_popup=='Anchored'?" checked /><label for='Anchored' style='font-weight:bold'>":"/><label for='Anchored'>")._T('geoportail:popup_anchored')."</label> &nbsp;"
    8485                                ."<input type='radio' name='popup' class='fondl' id='FramedCloud' value='FramedCloud'".($geoportail_popup=='FramedCloud'?" checked /><label for='FramedCloud' style='font-weight:bold'>":"/><label for='FramedCloud'>")._T('geoportail:popup_framecloud')."</label> &nbsp;"
    85                                 ."<input type='submit' name='setpopup' class='fondo' style='margin-left:1em;' value='"._T('bouton_valider')."' />"
     86                                ."</p><p>"
     87                                ."<input type='checkbox' name='hover' id='hover' $ghover><label for=hover>"._T('geoportail:geoportail_hover')."</label>"
     88                                ."<input type='submit' name='setpopup' class='fondo' style='margin-left:3em;' value='"._T('bouton_valider')."' />"
    8689                                ."</p>"
    8790                        .fin_cadre_relief(true)
  • _plugins_/spip_geoportail/geoportail_final.php

    r47768 r47779  
    1616
    1717<!-- API Geoportail -->'
    18 .($GLOBALS['meta']['geoportail_debug']?
     18.($GLOBALS['geoportail_debug']?
    1919'<script type="text/javascript" src="http://depot.ign.fr/geoportail/api/js/1.2/lib/geoportal/lib/Geoportal.js" charset=utf-8>// <![CDATA['
    2020:
  • _plugins_/spip_geoportail/head.php

    r46378 r47779  
    99        // Type de popup
    1010        $popup = $GLOBALS['meta']['geoportail_popup'];
    11         $popup = "jQuery.geoportail.spip_popup = '".($popup?$popup:"Anchored")."';";
     11        $popup = "jQuery.geoportail.spip_popup = '".($popup?$popup:"Anchored")."';"
     12                ." jQuery.geoportail.hover = ".($GLOBALS['meta']['geoportail_hover'] ?"true;":"false;");
    1213
    1314        $flux .=
  • _plugins_/spip_geoportail/js/geoportail.js

    r47549 r47779  
    377377                {       for(j=0; j<couches.length; j++)
    378378                        {       if (map.getMap().layers[i].name == couches[j])
    379                                 {       map.getMap().removeLayer(map.getMap().layers[i]);
     379                                {       // map.getMap().removeLayer(map.getMap().layers[i]);
     380                                        map.getMap().layers[i].displayInLayerSwitcher = false;
     381                                        map.getMap().layers[i].setVisibility (false);
    380382                                        break;
    381383                                }
     
    10321034        },
    10331035       
    1034         // Fonction d'affichage d'un popup sur une carte
    1035         popupFeature: function(feature)
    1036         {       // OpenLayers.Popup.FramedCloud
    1037                 // OpenLayers.Popup.AnchoredBubble
    1038                 // var spip_popup = OpenLayers.Class(OpenLayers.Popup.Anchored, { 'autoSize': true });
    1039                 var spip_popup = OpenLayers.Class(OpenLayers.Popup[jQuery.geoportail.spip_popup], { 'autoSize': true, 'displayClass':jQuery.geoportail.spip_popup });
    1040                 var html = "";
    1041                 var att = feature.attributes;
     1036        /** Fonction d'affichage d'un popup sur une carte
     1037        * - feature : l'objet
     1038        * - pos : position du curseur
     1039        * - hover : survol
     1040        */
     1041        popupFeature: function(feature, pos, hover)
     1042        {       var att = feature.attributes;
    10421043                // Fonction popup perso
    10431044                if (typeof (att.popup) == 'function')
    1044                 {       att.popup(feature);
     1045                {       att.popup(feature, pos, hover);
    10451046                        return;
    10461047                }
     1048                // Popup par defaut
     1049                var spip_popup;
     1050                if (hover) spip_popup = OpenLayers.Class(OpenLayers.Popup.Anchored, { 'autoSize': true, 'displayClass':"Anchored Anchored_hover" });
     1051                else spip_popup = OpenLayers.Class(OpenLayers.Popup[jQuery.geoportail.spip_popup], { 'autoSize': true, 'displayClass':jQuery.geoportail.spip_popup });
     1052                var html = "";
    10471053                var lien = null;
    10481054                if (att.url)
    10491055                {       // Affichage des images
    1050                         if (att.extension in {'jpg':'','gif':'','png':''}) lien = "<a href=\"javascript:jQuery.geoportail.afficheImage('" + att.url + "','"+att.name+"')\">";
     1056                        if (att.extension in {'jpg':'','gif':'','png':''}) lien = "<a href=\"javascript:jQuery.geoportail.afficheImage('" + att.url + "','"+att.name.replace(/"/g,'\\\'')+"')\">";
    10511057                        else lien = "<a href='" + att.url + "'>";
    10521058                }
    10531059                if (att.logo) html += (lien ? lien : "") + att.logo + (lien ? "</a>" : "");
    1054                 if (att.img) html += (lien ? lien : "") + "<img src='"+att.img+"' class='spip_logos' />" + (lien ? "</a>" : "");
     1060                else if (att.img) html += (lien ? lien : "") + "<img src='"+att.img+"' class='spip_logos' />" + (lien ? "</a>" : "");
    10551061                if (att.name) html += "<p class=titre>"+ (lien ? lien : "") + att.name + (lien ? "</a>" : "") + "</p>";
    1056                 if (att.description) html += att.description;
     1062                if (!hover && att.description) html += att.description;
    10571063                if (!html) return;
    10581064                html = "<div class='"+(att.classe ? att.classe : "")+"'>"+html+"</div>";
    1059                 popup = new spip_popup("popup",
    1060                                                         feature.geometry.getBounds().getCenterLonLat(),
    1061                                                         new OpenLayers.Size(400,400),
     1065                var popup = new spip_popup("popup",
     1066                                                        pos ? pos:feature.geometry.getBounds().getCenterLonLat(),
     1067                                                        new OpenLayers.Size(200,200),
    10621068                                                        html,
    1063                                                         null, true,
    1064                                                         function(evt) {
    1065                                                                 if (this.feature) $.geoportail.unpopupFeature(this.feature);
    1066                                                 });
    1067 
    1068                 popup.maxSize = new OpenLayers.Size(400, 200);
     1069                                                        pos ? {size:new OpenLayers.Size(5,5), offset: new OpenLayers.Pixel(-3,-3) } : null,
     1070                                                        (hover?false:true),
     1071                                                        function(evt) { if (this.feature) $.geoportail.unpopupFeature(this.feature); }
     1072                                                );
     1073                // Hauteur max
     1074                var h = 200;
     1075                if (hover)
     1076                {       // Pour le survol : hauteur calculee sur le logo
     1077                        h = Number(att.logo.replace (/(.*height=.)([0-9]+)(.*)/,"$2"));
     1078                        h = (h?h+10:40);
     1079                }
     1080                popup.maxSize = new OpenLayers.Size(400, h);
    10691081                popup.minSize = new OpenLayers.Size(220, 0);
    10701082                popup.feature = feature; //mimic Geoportal.Popup (See closeFeatureInfo)
     1083                popup.hover = hover;
    10711084                feature.popup = popup;
    1072                 //popup.setBackgroundColor("#ffffcc");
    10731085                feature.layer.map.addPopup(popup);
    10741086        },
    10751087
    1076         unpopupFeature: function(feature) {
    1077                 Geoportal.Control.unselectFeature(feature);
     1088        unpopupFeature: function(feature)
     1089        {       Geoportal.Control.unselectFeature(feature);
    10781090                feature.layer.drawFeature(feature, 'default');
    10791091                feature.popup = null;
     
    11261138@param l : le layer
    11271139*/
    1128 function geoportail_selectionnable (l)
     1140function geoportail_selectionnable (l, hover)
    11291141{       if (!(l instanceof Array)) l = [l];
     1142        if (typeof(hover) == 'undefined') hover = $.geoportail.hover;
    11301143        // Controle pour la selection
    11311144        options = {
    1132                 clickout: true, toggle: false,
    1133                 multiple: false, hover: false,
    1134                 onSelect: $.geoportail.popupFeature,
    1135                 onUnselect: $.geoportail.unpopupFeature
     1145                        clickout: true, toggle: false,
     1146                        multiple: false, hover: (hover ? true : false),
     1147                        /*
     1148                        onSelect: $.geoportail.popupFeature,
     1149                        */
     1150                        onUnselect: $.geoportail.unpopupFeature,
     1151                        callbacks:
     1152                        {       click: function (feature)
     1153                                {       // Position du curseur
     1154                                        var pos = this.layer.map.getLonLatFromPixel(this.handlers.feature.evt.xy);
     1155                                        // Selectionner
     1156                                        this.unselectAll();
     1157                                        this.select(feature);
     1158                                        $.geoportail.popupFeature(feature, pos, false);
     1159                                },
     1160                                clickout: $.geoportail.unpopupFeature,
     1161                                over:  hover ? function (feature, e)
     1162                                {       // Position du curseur
     1163                                        var pos = this.layer.map.getLonLatFromPixel(this.handlers.feature.evt.xy);
     1164                                        // Selectionner
     1165                                        this.unselectAll();
     1166                                        this.select(feature);
     1167                                        $.geoportail.popupFeature(feature, pos, true);
     1168                                }: null,
     1169                                out: function (feature) { if (feature.popup && feature.popup.hover) this.unselectAll(); }
     1170                        }
    11361171                }
    11371172        var layers;
  • _plugins_/spip_geoportail/lang/geoportail_fr.php

    r47093 r47779  
    2525'geoportail_provider'   => 'Fournisseur par d&eacute;faut',
    2626'geoprovider_info'              => 'Choisissez le fournisseur des cartes qui s\'afficheront dans l\'espace priv&eacute; et par d&eacute;faut lorsqu\'aucun mode n\'est pr&eacute;cis&eacute;.',
    27 'geoportail_popup'      => 'Forme des popup',
     27'geoportail_popup'              => 'Forme des infobulles',
    2828'popup_anchored'                => 'postIt!',
    2929'popup_framecloud'              => 'bulles',
     30'geoportail_hover'      => 'Afficher une information au survol.',
    3031'geopopup_info'         => 'Sous quelle forme vont s\'afficher les infobulles sur les cartes&nbsp;?',
    3132'geoportail_objet'      => 'Types d\'objets &agrave; g&eacute;or&eacute;f&eacute;rencer',
  • _plugins_/spip_geoportail/modeles/geoportail_articles.html

    r45231 r47779  
    5454                feature.attributes.name = "[(#TITRE|attribut_html)]";
    5555                feature.attributes.url = "[(#URL_ARTICLE|url_absolue)]";
    56                 feature.attributes.description = "[(#INTRODUCTION|addslashes|replace{\n,''}|replace{\r,''}|couper{100})]";
     56                feature.attributes.description = "[(#INTRODUCTION|couper{100}|addslashes|replace{\n,''}|replace{\r,''})]";
    5757                map.rlayer.addFeatures(feature);
    5858        }
  • _plugins_/spip_geoportail/modeles/geoportail_auteurs.html

    r45231 r47779  
    2525        map.rlayer = l;
    2626        map.getMap().addLayer(l);
    27        
    28         // Controle pour la selection
    29         options = {
    30                 clickout: true, toggle: false,
    31                 multiple: false, hover: false,
    32                 onSelect: $.geoportail.popupFeature,
    33                 onUnselect: $.geoportail.unpopupFeature
    34                 }
    35         var selectControl = new OpenLayers.Control.SelectFeature(map.rlayer, options);
    36         map.getMap().addControl(selectControl);
    37         map.rlayer.selectControl = selectControl;
    38         selectControl.activate();
     27        // Couche selectable
     28        map.selectionnable(l);
    3929       
    4030        // Ajouter les auteurs
Note: See TracChangeset for help on using the changeset viewer.