Changeset 7128 for extensions/GMaps


Ignore:
Timestamp:
10/08/10 03:02:29 (9 years ago)
Author:
grum
Message:

Connect the plugin to the RBuilder component + fixe some small bugs

Location:
extensions/GMaps
Files:
2 added
11 edited

Legend:

Unmodified
Added
Removed
  • extensions/GMaps/gmaps.css

    r7125 r7128  
    5151} 
    5252 
    53  
     53#iDialogGMapNfo { 
     54  height:18px; 
     55  margin:5px 5px 0 60px; 
     56  text-align:left; 
     57} 
     58#iDialogGMapNfo span { 
     59  position:relative; 
     60  top:-3px; 
     61  margin-left:3px; 
     62} 
     63#iDialogGMapWaiting { 
     64  position:absolute; 
     65  z-index:1500; 
     66  background:#000000; 
     67  opacity:0.55; 
     68  filter:alpha(opacity:55); 
     69} 
  • extensions/GMaps/gmaps2.css

    r7125 r7128  
    118118} 
    119119 
     120#gmapsNbPhotos { 
     121  font-size:80%; 
     122  font-weight:normal; 
     123  margin-left:3px; 
     124  position:relative; 
     125  top:-3px; 
     126} 
     127#gmapsLoading { 
     128  background:none repeat scroll 0 0 #FFFFFF; 
     129  position:absolute; 
     130  top:0; 
     131  width:90%; 
     132} 
     133#gmapsLoading span { 
     134  margin-left:3px; 
     135  position:relative; 
     136  top:-3px; 
     137} 
    120138 
     139#iDialogGMapWaiting { 
     140  position:absolute; 
     141  z-index:1500; 
     142  background:#000000; 
     143  opacity:0.55; 
     144  filter:alpha(opacity:55); 
     145} 
  • extensions/GMaps/gmaps_aip.class.inc.php

    r7125 r7128  
    5353    $this->tabsheet->add('kml_files', 
    5454                          l10n('gmaps_kml_files_management'), 
    55                           $this->getAdminLink()."&fGMaps_tabsheet=kml_files"); 
     55                          $this->getAdminLink()."&fGMaps_tabsheet=kml_files"); */ 
    5656    $this->tabsheet->add('search', 
    5757                          l10n('gmaps_search'), 
    5858                          $this->getAdminLink()."&fGMaps_tabsheet=search"); 
    59     $this->tabsheet->add('help', 
     59/*    $this->tabsheet->add('help', 
    6060                          l10n('gmaps_help'), 
    6161                          $this->getAdminLink()."&fGMaps_tabsheet=help"); 
     
    7474  public function initEvents() 
    7575  { 
     76    parent::initEvents(); 
     77 
     78    if($_REQUEST['fGMaps_tabsheet']=='search') 
     79    { 
     80      // load request builder JS only on the search page 
     81      GPCRequestBuilder::loadJSandCSS(); 
     82    } 
    7683    add_event_handler('loc_end_page_header', array(&$this->css, 'applyCSS')); 
    7784    GPCCss::applyGpcCss(); 
    78  
    79     parent::initEvents(); 
    8085  } 
    8186 
     
    254259    global $template; 
    255260 
    256     /*$template->set_filename('body_page', 
    257                 dirname($this->getFileLocation()).'/admin/plugin_admin_maps.tpl'); 
    258  
    259  
    260     $template->assign_var_from_handle('GMAPS_BODY_PAGE', 'body_page');*/ 
     261    $template->set_filename('body_page', 
     262                dirname($this->getFileLocation()).'/admin/gmaps_search.tpl'); 
     263 
     264    $template->assign('gmaps_search_page', GPCRequestBuilder::displaySearchPage($this->getPluginName())); 
     265 
     266    $template->assign_var_from_handle('GMAPS_BODY_PAGE', 'body_page'); 
    261267  } 
    262268 
  • extensions/GMaps/gmaps_ajax.php

    r7125 r7128  
    7272 
    7373           $_REQUEST['ajaxfct']=='public.maps.init' or 
    74            $_REQUEST['ajaxfct']=='public.maps.getMarkers' or 
    75            $_REQUEST['ajaxfct']=='public.maps.getMarkerInfos' 
     74           $_REQUEST['ajaxfct']=='public.maps.getMarkers' //or 
     75           //$_REQUEST['ajaxfct']=='public.maps.getMarkerInfos' 
    7676           )) $_REQUEST['ajaxfct']=''; 
    7777 
     
    234234              $_REQUEST['ajaxfct']=''; 
    235235            } 
     236            else 
     237            { 
     238              if(!isset($_REQUEST['datas']['levelInfo'])) $_REQUEST['datas']['levelInfo']=1; 
     239 
     240              if(!($_REQUEST['datas']['levelInfo']==0 or 
     241                   $_REQUEST['datas']['levelInfo']==1)) $_REQUEST['datas']['levelInfo']=1; 
     242            } 
    236243          } 
    237244        } 
     
    246253            $_REQUEST['ajaxfct']=''; 
    247254          } 
     255 
     256 
    248257        } 
    249258 
     
    787796     *                       'width' : width of maps in pixels 
    788797     *                       'height' : height of maps in pixels 
     798     *                       'levelInfo' : 0 = don't return pictures info (name, url, ...) 
     799     *                                     1 = return pictures informations 
    789800     * @return Array|String : a JSON string of an array of points (nbPictures, lat, lng) 
    790801     */ 
     
    793804      global $user, $page; 
    794805 
    795       $returned=array(); 
     806      $returned=array( 
     807        'markers' => array(), 
     808        'datas' => array( 
     809          'nbPhotos' => 0 
     810        ) 
     811      ); 
    796812 
    797813      /* 
     
    907923        { 
    908924          $coords=array( 
    909             'nbImagesTxt' => '', 
     925            'nbImgTxt' => '', 
    910926            'nbImages' => 0, 
    911             'latitude' => 0, 
    912             'longitude' => 0, 
    913             'imagesTnFile' => array(), 
    914             'imagesCatsNames' => array(), 
    915             'imagesName' => array(), 
    916             'imagesCatsUrl' => array(), 
     927            'lat' => 0,                   // 'lat' rather than 'latitude' 
     928            'lng' => 0,                   // 'lng' rather than 'longitude' 
     929            'imgTn' => array(), 
     930            'imgCatsNames' => array(), 
     931            'imgName' => array(), 
     932            'imgCatsUrl' => array(), 
    917933          ); 
    918934 
     
    938954            } 
    939955 
     956            if(count($tmpCatsId)<=1) $tmpCatsNames=''; 
     957 
    940958            $coords['nbImages']++; 
    941             $coords['latitude']+=$point['latitude']; 
    942             $coords['longitude']+=$point['longitude']; 
    943             $coords['imagesTnFile'][]=$point['imageTnFile']; 
    944             $coords['imagesCatsNames'][]=$tmpCatsNames; 
    945             $coords['imagesName'][]=$point['imageName']; 
    946             $coords['imagesCatsUrl'][]=$tmpCatsUrl; 
    947           } 
    948           $coords['latitude']=$coords['latitude']/count($group); 
    949           $coords['longitude']=$coords['longitude']/count($group); 
    950           $coords['uniqueId']=md5($coords['latitude'].$coords['latitude']); 
     959 
     960            $coords['lat']+=$point['latitude']; 
     961            $coords['lng']+=$point['longitude']; 
     962 
     963            if($datas['levelInfo']==1) 
     964            { 
     965              $coords['imgTn'][]=substr($point['imageTnFile'],12); 
     966              $coords['imgCatsNames'][]=$tmpCatsNames; 
     967              $coords['imgName'][]=$point['imageName']; 
     968              $coords['imgCatsUrl'][]=$tmpCatsUrl; 
     969            } 
     970          } 
     971          $coords['lat']=$coords['lat']/count($group); 
     972          $coords['lng']=$coords['lng']/count($group); 
     973          $coords['uniqueId']=md5($coords['lat'].$coords['lng']); 
    951974 
    952975          if($coords['nbImages']==1) 
    953976          { 
    954             $coords['nbImagesTxt']=l10n('gmaps_1_picture'); 
     977            $coords['nbImgTxt']=l10n('gmaps_1_picture'); 
    955978          } 
    956979          else 
    957980          { 
    958             $coords['nbImagesTxt']=sprintf(l10n('gmaps_nb_pictures'), $coords['nbImages']); 
    959           } 
    960  
    961           $returned[]=$coords; 
    962         } 
     981            $coords['nbImgTxt']=sprintf(l10n('gmaps_nb_pictures'), $coords['nbImages']); 
     982          } 
     983 
     984 
     985 
     986          $returned['markers'][]=$coords; 
     987          $returned['datas']['nbPhotos']+=$coords['nbImages']; 
     988        } 
     989      } 
     990 
     991      if($returned['datas']['nbPhotos']>1) 
     992      { 
     993        $returned['datas']['nbPhotos']=sprintf(l10n('gmaps_nb_pictures'), $returned['datas']['nbPhotos']); 
     994      } 
     995      else 
     996      { 
     997        $returned['datas']['nbPhotos']=l10n('gmaps_1_picture'); 
    963998      } 
    964999 
  • extensions/GMaps/gmaps_install.class.inc.php

    r7125 r7128  
    130130 
    131131      GPCCore::register($this->getPluginName(), GMAPS_VERSION, GMAPS_GPC_NEEDED); 
     132      GPCRequestBuilder::register($this->getPluginName(), dirname($this->getFileLocation()).'/gmaps_rb_callback.class.inc.php'); 
    132133      return(''); 
    133134    } 
  • extensions/GMaps/gmaps_pip.class.inc.php

    r7125 r7128  
    209209      lang:{ 
    210210        boundmap:'".l10n('gmaps_i_boundmap')."', 
    211         boundkml:'".l10n('gmaps_i_boundkml')."' 
     211        boundkml:'".l10n('gmaps_i_boundkml')."', 
     212        loading:'".l10n('gmaps_loading')."' 
    212213      }, 
    213214      requestId:'', 
     
    246247    if($this->picture['geolocated']==false) return(false); 
    247248 
    248     if(count($this->picture['content']['MP'])>0) 
     249    if(isset($this->picture['content']['MP']) and count($this->picture['content']['MP'])>0) 
    249250    { 
    250251      // there is maps in meta display mode 
     
    270271    } 
    271272 
    272     if(count($this->picture['content']['IP'])>0) 
     273    if(isset($this->picture['content']['IP']) and count($this->picture['content']['IP'])>0) 
    273274    { 
    274275      // there is maps in icon display mode 
     
    361362        'height' => $map['height'], 
    362363        'style' => $map['style'], 
    363         'mode' => $map['displayType'] 
     364        'displayType' => $map['displayType'] 
    364365      ); 
    365366 
  • extensions/GMaps/gmaps_root.class.inc.php

    r7125 r7128  
    276276  } //class 
    277277 
     278 
     279 
     280class GMaps_functions 
     281  { 
     282    static private $tables = Array(); 
     283    static private $config = Array(); 
     284 
     285    /** 
     286     * initialise the class 
     287     * 
     288     * @param String $prefixeTable : the piwigo prefixe used on tables name 
     289     * @param String $pluginNameFile : the plugin name used for tables name 
     290     */ 
     291    static public function init($prefixeTable) 
     292    { 
     293      GPCCore::loadConfig(GMaps_root::$pluginNameFile, self::$config); 
     294      $list=GMaps_root::$pluginTables; 
     295 
     296      for($i=0;$i<count($list);$i++) 
     297      { 
     298        self::$tables[$list[$i]]=$prefixeTable.GMaps_root::$pluginNameFile.'_'.$list[$i]; 
     299      } 
     300    } 
     301 
     302 
     303    /** 
     304     *  return all HTML&JS code necessary to display a dialogbox to choose 
     305     *  geographic area 
     306     */ 
     307    static public function dialogBoxGMaps() 
     308    { 
     309      global $template; 
     310 
     311      $template->set_filename('gmaps_choose', 
     312                    dirname(__FILE__).'/templates/gmaps_dialog_area_choose.tpl'); 
     313 
     314      $datas=Array(); 
     315 
     316      $template->assign('datas', $datas); 
     317 
     318      return($template->parse('gmaps_choose', true)); 
     319    } 
     320 
     321    /** 
     322     * convert a decimal degree to D°M'S' 
     323     * 
     324     * @param Float $value : the value to convert 
     325     * @return String : value converted in DMS 
     326     */ 
     327    static public function DDtoDMS($value) 
     328    { 
     329      $degrees=(int)$value; 
     330      $value=($value-$degrees)*60; 
     331      $minutes=(int)$value; 
     332      $seconds=($value-$minutes)*60; 
     333 
     334      return(sprintf('%d° %d\' %.2f"', $degrees, $minutes, $seconds)); 
     335    } 
     336 
     337  } //GMaps_functions 
     338 
     339 
     340 
    278341?> 
  • extensions/GMaps/js/gmapsCategory.js

    r7125 r7128  
    6565    width:$(map.getDiv()).width(), 
    6666    height:$(map.getDiv()).height(), 
    67     distanceTreshold:25 
     67    distanceTreshold:20 
    6868  } 
    6969 
    7070  currentMapLoad=map; 
     71 
     72  $('#gmapsLoading').css('display', 'inline-block'); 
     73  $('#gmapsNbPhotos').html(''); 
     74  $('#iDialogGMapWaiting').css( 
     75    { 
     76      width:$('#iGMapsIcon').width()+'px', 
     77      height:$('#iGMapsIcon').height()+'px', 
     78      top:$('#iGMapsIcon').position().top+'px', 
     79      left:$('#iGMapsIcon').position().left+'px', 
     80      display:'block' 
     81    } 
     82  ); 
    7183 
    7284  $.ajax( 
     
    8092        { 
    8193          tmp=$.parseJSON(msg); 
    82           tmp.sort(compareMarkers); 
    83           applyMarkers(currentMapLoad, tmp); 
     94          tmp.markers.sort(compareMarkers); 
     95          applyMarkers(currentMapLoad, tmp.markers); 
     96          $('#gmapsLoading').css('display', 'none'); 
     97          $('#gmapsNbPhotos').html('['+tmp.datas.nbPhotos+']'); 
     98          $('#iDialogGMapWaiting').css('display', 'none'); 
    8499        } 
    85100    } 
     
    128143    var marker = new google.maps.Marker( 
    129144      { 
    130         position:new google.maps.LatLng(markers[i].latitude, markers[i].longitude), 
     145        position:new google.maps.LatLng(markers[i].lat, markers[i].lng), 
    131146        map: currentMapLoad, 
    132         title:markers[i].nbImagesTxt 
     147        title:markers[i].nbImgTxt 
    133148      } 
    134149    ); 
     
    204219{ 
    205220  gmaps.currentInfo.displayed=index; 
    206   if(gmaps.currentInfo.imagesName[index]=='') 
     221  if(gmaps.currentInfo.imgName[index]=='') 
    207222  { 
    208223    $('#ciGMIWC_title').html('&nbsp;'); 
     
    210225  else 
    211226  { 
    212     $('#ciGMIWC_title').html(gmaps.currentInfo.imagesName[index]); 
    213   } 
    214   $('#ciGMIWC_img').attr('src', gmaps.currentInfo.imagesTnFile[index]); 
     227    $('#ciGMIWC_title').html(gmaps.currentInfo.imgName[index]); 
     228  } 
     229  $('#ciGMIWC_img').attr('src', './galleries/'+gmaps.currentInfo.imgTn[index]); 
    215230 
    216231  $('#ciGMIWC_img').unbind(); 
    217   if(gmaps.currentInfo.imagesCatsUrl[index].length==1) 
     232  if(gmaps.currentInfo.imgCatsUrl[index].length==1) 
    218233  { 
    219234    $('#ciGMIWC_img').bind('click', 
    220235      function () 
    221236      { 
    222         window.location=gmaps.currentInfo.imagesCatsUrl[gmaps.currentInfo.displayed][0]; 
     237        window.location=gmaps.currentInfo.imgCatsUrl[gmaps.currentInfo.displayed][0]; 
    223238      } 
    224239    ); 
     
    227242  { 
    228243    $('#ciGMIWC_showcatList').html(''); 
    229     for(var i=0;i<gmaps.currentInfo.imagesCatsUrl[index].length;i++) 
     244    for(var i=0;i<gmaps.currentInfo.imgCatsUrl[index].length;i++) 
    230245    { 
    231246      $('#ciGMIWC_showcatList') 
    232         .append('<li><a href="'+gmaps.currentInfo.imagesCatsUrl[index][i]+'">'+gmaps.currentInfo.imagesCatsNames[index][i]+'</a></li>'); 
     247        .append('<li><a href="'+gmaps.currentInfo.imgCatsUrl[index][i]+'">'+gmaps.currentInfo.imgCatsNames[index][i]+'</a></li>'); 
    233248    } 
    234249    $('#ciGMIWC_img, #ciGMIWC_showcat') 
     
    239254  if(gmaps.currentInfo.nbImages>1) 
    240255  { 
    241     $('#ciGMIWC_picnum').html((index+1)+'/'+gmaps.currentInfo.nbImagesTxt); 
     256    $('#ciGMIWC_picnum').html((index+1)+'/'+gmaps.currentInfo.nbImgTxt); 
    242257    $('#ciWALeft, #ciWARight').css('display', 'inline-block'); 
    243258  } 
    244259  else 
    245260  { 
    246     $('#ciGMIWC_picnum').html(gmaps.currentInfo.nbImagesTxt); 
     261    $('#ciGMIWC_picnum').html(gmaps.currentInfo.nbImgTxt); 
    247262    $('#ciWALeft, #ciWARight').css('display', 'none'); 
    248263  } 
     
    416431      } 
    417432 
     433      $('div.gmapsPopup div.ui-dialog-titlebar') 
     434      .append('<span id="gmapsLoading" style="display:none;"><img src="./plugins/GrumPluginClasses/icons/processing.gif"><span>'+gmaps.lang.loading+'</span></span>'); 
     435 
     436      $('#ui-dialog-title-iGMapsIconContent') 
     437      .append('<span id="gmapsNbPhotos"></span>'); 
     438 
    418439 
    419440    } 
  • extensions/GMaps/language/fr_FR/plugin.lang.php

    r7125 r7128  
    121121$lang['gmaps_i_show_this_picture_in']="Voir cette photo dans la catégorie :"; 
    122122 
     123$lang['gmaps_north']="Nord"; 
     124$lang['gmaps_south']="Sud"; 
     125$lang['gmaps_east']="Est"; 
     126$lang['gmaps_west']="Ouest"; 
     127$lang['gmaps_add_geographic_area']="Ajouter une zone géographique"; 
     128$lang['gmaps_choose_geographic_area']="Sélectionner la zone géographique"; 
     129$lang['gmaps_search_by_geographic_area']="Effectuer une recherche par zone géographique"; 
     130$lang['gmaps_geographic_coords_between']="Les coordonnées géographiques sont situées entre :"; 
     131$lang['gmaps_of_lat']="de latitude"; 
     132$lang['gmaps_of_lng']="de longitude"; 
     133$lang['gmaps_and']="et"; 
     134 
     135 
    123136?> 
  • extensions/GMaps/templates/gmaps_category.tpl

    r7125 r7128  
    88  <div id='iGMapsIconContent' style='display:none;'> 
    99      <div id='iGMapsIcon' style='width:{$map.width}px;height:{$map.height}px;{$map.style}'></div> 
     10      <div id='iDialogGMapWaiting' style="display:none;"></div> 
    1011  </div> 
    1112{/foreach} 
  • extensions/GMaps/templates/gmaps_picture_icon.tpl

    r7125 r7128  
    77<div id='iGMapsIconContent' style='display:none;'> 
    88    <div id='iGMapsIcon' style='width:{$map.width}px;height:{$map.height}px;{$map.style}'></div> 
     9    <div id='iDialogGMapWaiting' style="display:none;"></div> 
    910</div> 
Note: See TracChangeset for help on using the changeset viewer.