Changeset 7128


Ignore:
Timestamp:
Oct 8, 2010, 3:02:29 AM (14 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.