Changeset 7308


Ignore:
Timestamp:
Oct 20, 2010, 10:49:29 PM (14 years ago)
Author:
grum
Message:

fix bug and implement new features
bug:1926, bug:1927, bug:1929, bug:1930, bug:1931, bug:1939, bug:1946

Location:
extensions/GMaps
Files:
1 deleted
16 edited

Legend:

Unmodified
Added
Removed
  • extensions/GMaps/gmaps.css

    r7176 r7308  
    7070  margin-left:3px;
    7171}
    72 #iDialogGMapWaiting {
    73   position:absolute;
    74   z-index:1500;
    75   background:#000000;
    76   opacity:0.55;
    77   filter:alpha(opacity:55);
     72
     73
     74div.cfgBloc {
     75  margin-top:10px;
    7876}
    79 
    8077
    8178// fix IE8 compatibility bugs from GPC 3.2.0 (fixed in next release)
  • extensions/GMaps/gmaps2.css

    r7132 r7308  
    137137}
    138138
    139 #iDialogGMapWaiting {
    140   position:absolute;
    141   z-index:1500;
    142   background:#ffffff;
    143   opacity:0.55;
    144   filter:alpha(opacity:55);
    145 }
     139
  • extensions/GMaps/gmaps_aip.class.inc.php

    r7177 r7308  
    5757                          l10n('gmaps_search'),
    5858                          $this->getAdminLink()."&fGMaps_tabsheet=search");
     59    $this->tabsheet->add('config',
     60                          l10n('gmaps_config'),
     61                          $this->getAdminLink()."&fGMaps_tabsheet=config");
     62
    5963/*    $this->tabsheet->add('help',
    6064                          l10n('gmaps_help'),
     
    112116      case 'search':
    113117        $this->displaySearch();
     118        break;
     119      case 'config':
     120        $this->displayConfig();
    114121        break;
    115122      case 'help':
     
    335342
    336343
     344
     345
     346  /**
     347   * display the config page
     348   *
     349   */
     350  protected function displayConfig()
     351  {
     352    global $template;
     353
     354    $this->updateConfig();
     355    $this->configForTemplate();
     356
     357    $template->set_filename('body_page',
     358                dirname($this->getFileLocation()).'/admin/gmaps_config.tpl');
     359
     360    $template->assign_var_from_handle('GMAPS_BODY_PAGE', 'body_page');
     361  }
     362
     363  /**
     364   * update config values
     365   */
     366  protected function updateConfig()
     367  {
     368    global $infos;
     369
     370    if(!isset($_POST) or count($_POST)==0) return(false);
     371
     372
     373    if(isset($_POST['fBDPopupAutomaticSize']) and $_POST['fBDPopupAutomaticSize']>=0.5 and $_POST['fBDPopupAutomaticSize']<=0.95)
     374    {
     375      $this->config['popupAutomaticSize']=$_POST['fBDPopupAutomaticSize'];
     376    }
     377    else
     378    {
     379      return(false);
     380    }
     381
     382    if($this->saveConfig())
     383    {
     384      $this->displayResult(l10n('gmaps_config_saved'), true);
     385      return(true);
     386    }
     387    return(false);
     388  }
     389
     390
     391
     392
     393
     394
     395
    337396  /**
    338397   * build an ordered category list
     
    373432      {
    374433        $row['level']=1+substr_count($row['rank'], '.');
    375 
    376         /* rank is in formated without leading zero, giving bad order
    377          *  1
    378          *  1.10
    379          *  1.11
    380          *  1.2
    381          *  1.3
    382          *  ....
    383          *
    384          *  this loop cp,vert all sub rank in four 0 format, allowing to order
    385          *  categories easily
    386          *  0001
    387          *  0001.0010
    388          *  0001.0011
    389          *  0001.0002
    390          *  0001.0003
    391          */
    392         $row['rank']=explode('.', $row['rank']);
    393         foreach($row['rank'] as $key=>$rank)
    394         {
    395           $row['rank'][$key]=str_pad($rank, 4, '0', STR_PAD_LEFT);
    396         }
    397         $row['rank']=implode('.', $row['rank']);
    398 
    399434        $returned[]=$row;
    400435      }
     
    414449  public function compareCat($catA, $catB)
    415450  {
    416     if($catA['rank'] == $catB['rank'])
    417     {
    418       return(0);
    419     }
    420     return( ($catA['rank'] < $catB['rank'])?-1:1 );
     451    return(strnatcmp($catA['rank'], $catB['rank']));
    421452  }
    422453
  • extensions/GMaps/gmaps_ajax.php

    r7177 r7308  
    7777
    7878           $_REQUEST['ajaxfct']=='public.maps.init' or
    79            $_REQUEST['ajaxfct']=='public.maps.getMarkers' //or
    80            //$_REQUEST['ajaxfct']=='public.maps.getMarkerInfos'
     79           $_REQUEST['ajaxfct']=='public.maps.getMarkers'
    8180           )) $_REQUEST['ajaxfct']='';
    8281
     
    133132          else
    134133          {
    135             if(!(isset($_REQUEST['datas']['displayType']) &&
    136                  isset($_REQUEST['datas']['sizeMode']) &&
    137                  isset($_REQUEST['datas']['name']) &&
    138                  isset($_REQUEST['datas']['width']) &&
    139                  isset($_REQUEST['datas']['height']) &&
    140                  isset($_REQUEST['datas']['zoomLevel']) &&
    141                  isset($_REQUEST['datas']['mapType']) &&
    142                  isset($_REQUEST['datas']['mapTypeControl']) &&
    143                  isset($_REQUEST['datas']['navigationControl']) &&
    144                  isset($_REQUEST['datas']['scaleControl']) &&
    145                  isset($_REQUEST['datas']['streetViewControl']) &&
    146                  isset($_REQUEST['datas']['style'])))
     134            if(!(isset($_REQUEST['datas']['displayType']) and
     135                 isset($_REQUEST['datas']['sizeMode']) and
     136                 isset($_REQUEST['datas']['name']) and
     137                 isset($_REQUEST['datas']['width']) and
     138                 isset($_REQUEST['datas']['height']) and
     139                 isset($_REQUEST['datas']['zoomLevel']) and
     140                 isset($_REQUEST['datas']['mapType']) and
     141                 isset($_REQUEST['datas']['mapTypeControl']) and
     142                 isset($_REQUEST['datas']['navigationControl']) and
     143                 isset($_REQUEST['datas']['scaleControl']) and
     144                 isset($_REQUEST['datas']['streetViewControl']) and
     145                 isset($_REQUEST['datas']['style']) and
     146                 isset($_REQUEST['datas']['zoomLevelMaxActivated'])
     147                 ))
    147148            {
    148149              $_REQUEST['ajaxfct']='';
     
    187188              if(!($_REQUEST['datas']['streetViewControl']=='y' or
    188189                   $_REQUEST['datas']['streetViewControl']=='n')) $_REQUEST['datas']['streetViewControl']='n';
     190
     191              if(!($_REQUEST['datas']['zoomLevelMaxActivated']=='y' or
     192                   $_REQUEST['datas']['zoomLevelMaxActivated']=='n')) $_REQUEST['datas']['zoomLevelMaxActivated']='n';
    189193            }
    190194          }
     
    204208          else
    205209          {
    206             if(!(isset($_REQUEST['datas']['categoryId']) &&
    207                  isset($_REQUEST['datas']['mapId']) &&
    208                  isset($_REQUEST['datas']['applySubCat']) &&
    209                  isset($_REQUEST['datas']['kmlFileId']) &&
    210                  isset($_REQUEST['datas']['kmlFileUrl']) &&
    211                  isset($_REQUEST['datas']['icon']) &&
    212                  isset($_REQUEST['datas']['marker']) &&
     210            if(!(isset($_REQUEST['datas']['categoryId']) and
     211                 isset($_REQUEST['datas']['mapId']) and
     212                 isset($_REQUEST['datas']['applySubCat']) and
     213                 isset($_REQUEST['datas']['kmlFileId']) and
     214                 isset($_REQUEST['datas']['kmlFileUrl']) and
     215                 isset($_REQUEST['datas']['icon']) and
     216                 isset($_REQUEST['datas']['marker']) and
    213217                 isset($_REQUEST['datas']['title']) ))
    214218            {
     
    262266          else
    263267          {
    264             if(!(isset($_REQUEST['datas']['requestId']) &&
    265                  isset($_REQUEST['datas']['bounds']) &&
    266                  isset($_REQUEST['datas']['width']) &&
    267                  isset($_REQUEST['datas']['height']) &&
    268                  isset($_REQUEST['datas']['distanceTreshold']) &&
    269                  isset($_REQUEST['datas']['bounds']['north']) &&
    270                  isset($_REQUEST['datas']['bounds']['south']) &&
    271                  isset($_REQUEST['datas']['bounds']['east']) &&
     268            if(!(isset($_REQUEST['datas']['requestId']) and
     269                 isset($_REQUEST['datas']['callId']) and
     270                 isset($_REQUEST['datas']['bounds']) and
     271                 isset($_REQUEST['datas']['width']) and
     272                 isset($_REQUEST['datas']['height']) and
     273                 isset($_REQUEST['datas']['distanceTreshold']) and
     274                 isset($_REQUEST['datas']['bounds']['north']) and
     275                 isset($_REQUEST['datas']['bounds']['south']) and
     276                 isset($_REQUEST['datas']['bounds']['east']) and
    272277                 isset($_REQUEST['datas']['bounds']['west']) ))
    273278            {
    274279              $_REQUEST['ajaxfct']='';
    275280            }
    276             else
    277             {
    278               if(!isset($_REQUEST['datas']['levelInfo'])) $_REQUEST['datas']['levelInfo']=1;
    279 
    280               if(!($_REQUEST['datas']['levelInfo']==0 or
    281                    $_REQUEST['datas']['levelInfo']==1)) $_REQUEST['datas']['levelInfo']=1;
    282             }
    283281          }
    284282        }
     
    293291            $_REQUEST['ajaxfct']='';
    294292          }
    295 
    296 
    297         }
    298 
     293        }
    299294      }
    300295    } //checkRequest
     
    353348          $result=$this->ajax_gmaps_public_mapsGetMarkers($_REQUEST['datas']);
    354349          break;
     350        case 'public.maps.getMarkersInfos':
     351          $result=$this->ajax_gmaps_public_mapsGetMarkersInfos($_REQUEST['datas']);
     352          break;
    355353      }
    356354      GPCAjax::returnResult($result);
     
    378376      $datas=Array();
    379377
    380       $sql="SELECT id, name, displayType, sizeMode, width, height, zoomLevel, mapType, mapTypeControl, navigationControl, scaleControl, streetViewControl
     378      $sql="SELECT id, name, displayType, sizeMode, width, height, zoomLevel,
     379                   mapType, mapTypeControl, navigationControl, scaleControl,
     380                   streetViewControl, zoomLevelMaxActivated
    381381            FROM ".$this->tables['maps']."
    382382            ORDER BY displayType ASC, name ASC";
     
    443443                $properties['scaleControl']."', '".
    444444                $properties['streetViewControl']."', '".
    445                 mysql_escape_string($properties['style'])."');";
     445                mysql_escape_string($properties['style'])."', '".
     446                $properties['zoomLevelMaxActivated']."');";
    446447        $result=pwg_query($sql);
    447448        $id=pwg_db_insert_id();
     
    461462                $properties['scaleControl']."', streetViewControl='".
    462463                $properties['streetViewControl']."', style='".
    463                 mysql_escape_string($properties['style'])."'
     464                mysql_escape_string($properties['style'])."', zoomLevelMaxActivated='".
     465                $properties['zoomLevelMaxActivated']."'
    464466              WHERE id='$id';";
    465467        $result=pwg_query($sql);
     
    490492        'navigationControl' => 0,
    491493        'scaleControl' => 'y',
    492         'streetViewControl' => 'n'
     494        'streetViewControl' => 'n',
     495        'zoomLevelMaxActivated' => 'n',
     496        'associations' => 0,
    493497      );
    494498
    495       $sql="SELECT id, displayType, sizeMode, name, width, height, zoomLevel, mapType, mapTypeControl, navigationControl, scaleControl, streetViewControl
    496             FROM ".$this->tables['maps']."
    497             WHERE id='$id';";
     499      $sql="SELECT pgmm.id, pgmm.displayType, pgmm.sizeMode, pgmm.name,
     500                   pgmm.width, pgmm.height, pgmm.zoomLevel, pgmm.mapType,
     501                   pgmm.mapTypeControl, pgmm.navigationControl,
     502                   pgmm.scaleControl, pgmm.streetViewControl,
     503                   pgmm.zoomLevelMaxActivated,
     504                   COUNT(pgcm.id) AS nbAssoc
     505            FROM ".$this->tables['maps']." pgmm
     506                  LEFT JOIN ".$this->tables['category_maps']." pgcm
     507                    ON pgcm.mapId=pgmm.id
     508            WHERE pgmm.id='$id'
     509            GROUP BY pgmm.id;";
    498510      $result=pwg_query($sql);
    499511      if($result)
     
    781793        while($row=pwg_db_fetch_assoc($result))
    782794        {
    783           $row['fileSize']=$this->formatOctet($row['fileSize']);
     795          $row['fileSize']=GPCCore::formatOctet($row['fileSize']);
    784796          $datas[]=$row;
    785797        }
     
    852864        }
    853865
    854         $file=dirname(__FILE__).'/kml/'.$file;
     866        $file=GPCCore::getPiwigoSystemPath().self::KML_DIRECTORY.$file;
    855867
    856868        if(file_exists($file)) unlink($file);
     
    858870        {
    859871          $currentInfo=$this->ajax_gmaps_admin_kmlFilesGetFile($id, false);
    860           if(file_exists(dirname(__FILE__).'/kml/'.$currentInfo['file'])) unlink(dirname(__FILE__).'/kml/'.$currentInfo['file']);
     872          if(file_exists(self::KML_DIRECTORY.$currentInfo['file'])) unlink(GPCCore::getPiwigoSystemPath().self::KML_DIRECTORY.$currentInfo['file']);
    861873        }
    862874
     
    933945        while($row=pwg_db_fetch_assoc($result))
    934946        {
    935           $row['fileSizeUnits']=$this->formatOctet($row['fileSize']);
     947          $row['fileSizeUnits']=GPCCore::formatOctet($row['fileSize']);
    936948          $returned=$row;
    937949        }
     
    9891001      if($result)
    9901002      {
    991         if($file!='' and file_exists(dirname(__FILE__).'/kml/'.$file))
    992         {
    993           unlink(dirname(__FILE__).'/kml/'.$file);
     1003        if($file!='' and file_exists(GPCCore::getPiwigoSystemPath().self::KML_DIRECTORY.$file))
     1004        {
     1005          unlink(GPCCore::getPiwigoSystemPath().self::KML_DIRECTORY.$file);
    9941006        }
    9951007        return('ok');
     
    10921104              'latitude' => $coords[0],
    10931105              'longitude' => $coords[1],
    1094               'imageName' => mysql_escape_string($row['imageName']),
     1106              'imageName' => GPCCore::getUserLanguageDesc(mysql_escape_string($row['imageName'])),
    10951107              'imageTnFile' => dirname($row['path']).'/'.$conf['dir_thumbnail'].'/'.$conf['prefix_thumbnail'].get_filename_wo_extension(basename($row['path'])).'.'.$row['tn_ext'],
    10961108              'imageCatsId' => $row['imageCatsId'],
     
    11191131     *                       'width' : width of maps in pixels
    11201132     *                       'height' : height of maps in pixels
    1121      *                       'levelInfo' : 0 = don't return pictures info (name, url, ...)
    1122      *                                     1 = return pictures informations
    11231133     * @return Array|String : a JSON string of an array of points (nbPictures, lat, lng)
    11241134     */
     
    11281138
    11291139      $returned=array(
     1140        'callId' => $datas['callId'],
    11301141        'markers' => array(),
    11311142        'datas' => array(
     
    12001211        // works with the highest ratio
    12011212        $ratio=max($ratioW, $ratioH);
    1202 
    1203 
    1204         $points=array();
     1213        $datas['distanceTreshold']=pow($datas['distanceTreshold']*$ratio,2);
     1214
     1215
    12051216        $groups=array();
    12061217
    1207         while($row=pwg_db_fetch_assoc($result))
    1208         {
    1209           $points[]=$row;
    1210         }
    12111218
    12121219        /*
    12131220         *  build groups
    12141221         */
    1215         while(count($points)>0)
    1216         {
    1217           $currentGroup=array();
    1218           $currentGroup[]=array_shift($points);
    1219 
    1220           $i=0;
    1221           while($i<count($points))
    1222           {
    1223             $dist=sqrt(pow($points[$i]['latitude']-$currentGroup[0]['latitude'],2) + pow($points[$i]['longitude']-$currentGroup[0]['longitude'],2))/$ratio;
    1224 
    1225             if($dist <= $datas['distanceTreshold'])
    1226             {
    1227               $tmp=array_splice($points, $i, 1);
    1228               $currentGroup[]=$tmp[0];
    1229               $points=array_values($points); // reset array index...
    1230             }
    1231             else
    1232             {
    1233               $i++;
    1234             }
    1235           }
    1236 
    1237           $groups[]=$currentGroup;
    1238           unset($currentGroup);
    1239         }
     1222        while($row=pwg_db_fetch_assoc($result))
     1223        {
     1224          if(!$this->checkInGroup($row, $groups, $datas['distanceTreshold']))
     1225          {
     1226            $groups[]=array($row);
     1227          }
     1228        }
     1229
    12401230
    12411231        /*
     
    12471237          $coords=array(
    12481238            'nbImgTxt' => '',
    1249             'nbImages' => 0,
     1239            'nbImg' => 0,
    12501240            'lat' => 0,                   // 'lat' rather than 'latitude'
    12511241            'lng' => 0,                   // 'lng' rather than 'longitude'
     
    12701260                  'category' => array(
    12711261                    'id' => $id,
    1272                     'name' => $tmpCatsNames[$key],
     1262                    'name' => GPCCore::getUserLanguageDesc($tmpCatsNames[$key]),
    12731263                    'permalink' => (substr($tmpCatsPLinks[$key],0,1)=='*')?'':$tmpCatsPLinks[$key],
    12741264                  )
     
    12791269            if(count($tmpCatsId)<=1) $tmpCatsNames='';
    12801270
    1281             $coords['nbImages']++;
     1271            $coords['nbImg']++;
    12821272
    12831273            $coords['lat']+=$point['latitude'];
    12841274            $coords['lng']+=$point['longitude'];
    12851275
    1286             if($datas['levelInfo']==1)
    1287             {
    1288               $coords['imgTn'][]=substr($point['imageTnFile'],12);
    1289               $coords['imgCatsNames'][]=$tmpCatsNames;
    1290               $coords['imgName'][]=$point['imageName'];
    1291               $coords['imgCatsUrl'][]=$tmpCatsUrl;
    1292             }
     1276            $coords['imgTn'][]=substr($point['imageTnFile'],12);
     1277            $coords['imgCatsNames'][]=$tmpCatsNames;
     1278            $coords['imgName'][]=GPCCore::getUserLanguageDesc($point['imageName']);
     1279            $coords['imgCatsUrl'][]=$tmpCatsUrl;
    12931280          }
    12941281          $coords['lat']=$coords['lat']/count($group);
    12951282          $coords['lng']=$coords['lng']/count($group);
    1296           $coords['uniqueId']=md5($coords['lat'].$coords['lng']);
    1297 
    1298           if($coords['nbImages']==1)
     1283          $coords['uId']=md5($coords['lat'].$coords['lng']);
     1284
     1285          if($coords['nbImg']==1)
    12991286          {
    13001287            $coords['nbImgTxt']=l10n('gmaps_1_picture');
     
    13021289          else
    13031290          {
    1304             $coords['nbImgTxt']=sprintf(l10n('gmaps_nb_pictures'), $coords['nbImages']);
     1291            $coords['nbImgTxt']=sprintf(l10n('gmaps_nb_pictures'), $coords['nbImg']);
    13051292          }
    13061293
    13071294          $returned['markers'][]=$coords;
    1308           $returned['datas']['nbPhotos']+=$coords['nbImages'];
     1295          $returned['datas']['nbPhotos']+=$coords['nbImg'];
    13091296        }
    13101297      }
     
    13241311
    13251312      return(json_encode($returned));
     1313    } //ajax_gmaps_public_mapsGetMarkers
     1314
     1315    /**
     1316     * check if a point is inside an existing group, and add it
     1317     * @param Array $point : the point
     1318     * @param Array &$groups : the groups
     1319     * @param Float $maxDist : maximum distance to be inside group
     1320     * @return Bool : true if added in a group, otherwise false
     1321     */
     1322    private function checkInGroup($point, &$groups, $maxDist)
     1323    {
     1324      foreach($groups as $key=>$group)
     1325      {
     1326        $dist=pow($point['latitude']-$group[0]['latitude'],2) + pow($point['longitude']-$group[0]['longitude'],2);
     1327
     1328        if($dist<=$maxDist)
     1329        {
     1330          $groups[$key][]=$point;
     1331          return(true);
     1332        }
     1333      }
     1334      return(false);
    13261335    }
    1327 
    1328 
    1329 
    1330 
    1331      /**
    1332       * formats a file size into a human readable size
    1333       *
    1334       * @param String $format : "A"  : auto
    1335       *                         "Ai" : auto (io)
    1336       *                         "O"  : o
    1337       *                         "K"  : Ko
    1338       *                         "M"  : Mo
    1339       *                         "G"  : Go
    1340       *                         "Ki" : Kio
    1341       *                         "Mi" : Mio
    1342       *                         "Gi" : Gio
    1343       * @param String $thsep : thousand separator
    1344       * @param Integer $prec : number of decimals
    1345       * @param Bool $visible : display or not the unit
    1346       * @return String : a formatted file size
    1347       */
    1348      private function formatOctet($octets, $format="Ai", $thsep="", $prec=2, $visible=true)
    1349      {
    1350       if($format=="Ai")
    1351       {
    1352        if($octets<1024)
    1353        { $format="O"; }
    1354        elseif($octets<1024000)
    1355        { $format="Ki"; }
    1356        elseif($octets<1024000000)
    1357        { $format="Mi"; }
    1358        else
    1359        { $format="Gi"; }
    1360       }
    1361       elseif($format=="A")
    1362       {
    1363        if($octets<1000)
    1364        { $format="O"; }
    1365        elseif($octets<1000000)
    1366        { $format="Ki"; }
    1367        elseif($octets<1000000000)
    1368        { $format="Mi"; }
    1369        else
    1370        { $format="Gi"; }
    1371       }
    1372 
    1373       switch($format)
    1374       {
    1375        case "O":
    1376         $unit="o"; $div=1;
    1377         break;
    1378        case "K":
    1379         $unit="Ko"; $div=1000;
    1380         break;
    1381        case "M":
    1382         $unit="Mo"; $div=1000000;
    1383         break;
    1384        case "G":
    1385         $unit="Go"; $div=1000000000;
    1386         break;
    1387        case "Ki":
    1388         $unit="Kio"; $div=1024;
    1389         break;
    1390        case "Mi":
    1391         $unit="Mio"; $div=1024000;
    1392         break;
    1393        case "Gi":
    1394         $unit="Gio"; $div=1024000000;
    1395         break;
    1396       }
    1397 
    1398       $returned=number_format($octets/$div, $prec, '.', $thsep);
    1399       if($visible) $returned.=' '.$unit;
    1400       return($returned);
    1401      } //function formatOctet
    1402 
    1403 
    14041336
    14051337  } //class
  • extensions/GMaps/gmaps_install.class.inc.php

    r7177 r7308  
    4141    public function install()
    4242    {
     43      if(!file_exists(GPCCore::getPiwigoSystemPath().self::KML_DIRECTORY))
     44      {
     45        mkdir(GPCCore::getPiwigoSystemPath().self::KML_DIRECTORY, 0755, true);
     46      }
     47
    4348      $this->initConfig();
    4449      $this->loadConfig();
     
    6267  `streetViewControl` char(1) NOT NULL default 'n',
    6368  `style` varchar(512) NOT NULL,
     69  `zoomLevelMaxActivated` char(1) NOT NULL default 'n',
    6470  PRIMARY KEY  (`id`)
    6571)",
     
    131137      switch($this->config['installed'])
    132138      {
    133         // actually, there no migration possible from previous release
     139        case '01.00.00';
     140          $this->updateFrom_010000();
    134141        default:
    135142          // nothing to do...
     
    150157    }
    151158
     159
     160    /**
     161     * update from release 1.0.0
     162     *
     163     *  - create the /local/plugins/GMaps/kml directory
     164     *  - move kml files from /plugins/GMaps/kml directory to the new directory
     165     *  - remove the /plugins/GMaps/kml directory
     166     */
     167    private function updateFrom_010000()
     168    {
     169      mkdir(GPCCore::getPiwigoSystemPath().self::KML_DIRECTORY, 0755, true);
     170
     171      $directory=scandir(GMAPS_PATH.'kml/');
     172      foreach($directory as $file)
     173      {
     174        $ext=(pathinfo($file, PATHINFO_EXTENSION));
     175        if(preg_match('/.*(?:\.kml|\.kmz)$/i', $file))
     176        {
     177          rename(GMAPS_PATH.'kml/'.$file, GPCCore::getPiwigoSystemPath().self::KML_DIRECTORY.$file);
     178        }
     179      }
     180
     181      mkdir(GPCCore::getPiwigoSystemPath().self::KML_DIRECTORY);
     182
     183
     184      $tablesUpdate=array(
     185        $this->tables['images_tags'] => array(
     186          'zoomLevelMaxActivated' => " ADD COLUMN `zoomLevelMaxActivated` CHAR(1)  NOT NULL DEFAULT 'n' AFTER `style` ",
     187        )
     188      );
     189
     190      $tablef=new GPCTables(array($this->tables['maps']));
     191      $tablef->updateTablesFields($tablesUpdate);
     192
     193      unset($tablesUpdate);
     194    }
     195
    152196  } //class
    153197
  • extensions/GMaps/gmaps_pip.class.inc.php

    r7177 r7308  
    178178                title:'".addslashes( ($map['title']=='')?l10n('gmaps_geolocation'):$map['title']  )."',
    179179                markers:[],
    180                 fitToBounds:true
     180                fitToBounds:true,
     181                zoomLevelMaxActivated:".($map['zoomLevelMaxActivated']=='y'?'true':'false')."
    181182              }";
    182183
     
    224225      maps:
    225226      [".implode(',', $scripts)."],
     227      popupAutomaticSize:".$this->config['popupAutomaticSize'].",
     228      callId:0
    226229    }
    227230  </script>", false);
     
    304307      maps:
    305308      [".implode(',', $this->picture['properties'])."],
     309      popupAutomaticSize:".$this->config['popupAutomaticSize']."
    306310    }
    307311</script>", false);
  • extensions/GMaps/gmaps_root.class.inc.php

    r7177 r7308  
    1818  class GMaps_root extends CommonPlugin
    1919  {
     20    const KML_DIRECTORY='/local/plugins/GMaps/kml/';
    2021    protected $css;
    2122    protected $maps=array();
     
    121122      //global $user;
    122123      $this->config=array(
     124        'popupAutomaticSize' => 0.8
    123125      );
    124126    }
     
    214216              pgmm.width, pgmm.height, pgmm.zoomLevel,
    215217              pgmm.mapType, pgmm.mapTypeControl, pgmm.scaleControl, pgmm.streetViewControl,
    216               pgmm.navigationControl, pgmm.style,
     218              pgmm.navigationControl, pgmm.style, pgmm.zoomLevelMaxActivated,
    217219              IF(pgcm.categoryId=0, 0, pct.global_rank) AS priorityRank
    218220            FROM ((".$this->tables['category_maps']." pgcm
     
    245247        {
    246248          // if an kml file id is given, apply the url of the file (needs to give the complete URI for google)
    247           if($row['kmlFileId']>0 and $row['kmlFileUrlId']!='') $row['kmlFileUrl']=dirname($_SERVER['SCRIPT_URI']).'/plugins/GMaps/kml/'.$row['kmlFileUrlId'];
     249          if($row['kmlFileId']>0 and $row['kmlFileUrlId']!='') $row['kmlFileUrl']=dirname($_SERVER['SCRIPT_URI']).self::KML_DIRECTORY.$row['kmlFileUrlId'];
    248250
    249251          if($row['displayType']!='MP')
  • extensions/GMaps/gmaps_version.inc.php

    r7178 r7308  
    1515  if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
    1616
    17   define('GMAPS_VERSION',  '1.0.0');
    18   define('GMAPS_VERSION2', '01.00.00');
    19   define('GMAPS_GPC_NEEDED', '3.3.0');
     17  define('GMAPS_VERSION',  '1.1.0');
     18  define('GMAPS_VERSION2', '01.01.00');
     19  define('GMAPS_GPC_NEEDED', '3.3.2');
    2020  define('GMAPS_AMD_NEEDED', '0.5.2'); //advanced metadata plugin is needed
    2121?>
  • extensions/GMaps/js/gmapsCategory.js

    r7177 r7308  
    22 * -----------------------------------------------------------------------------
    33 * file: gmapsCategory.js
    4  * file version: 1.0.0
    5  * date: 2010-10-10
     4 * file version: 1.1.0
     5 * date: 2010-10-20
    66 */
    77
     
    8787function loadMarkers(map)
    8888{
     89  gmaps.callId++;
     90
    8991  datas={
    9092    requestId:gmaps.requestId,
     93    callId:gmaps.callId,
    9194    bounds:{
    9295        north:map.getBounds().getNorthEast().lat(),
     
    97100    width:$(map.getDiv()).width(),
    98101    height:$(map.getDiv()).height(),
    99     distanceTreshold:20
     102    distanceTreshold:20,
    100103  };
    101104
     
    104107  $('#gmapsLoading').css('display', 'inline-block');
    105108  $('#gmapsNbPhotos').html('');
    106   $('#iDialogGMapWaiting').css(
    107     {
    108       width:$('#iGMapsIcon').width()+'px',
    109       height:$('#iGMapsIcon').height()+'px',
    110       top:$('#iGMapsIcon').position().top+'px',
    111       left:$('#iGMapsIcon').position().left+'px',
    112       display:'block'
    113     }
    114   );
    115109
    116110  $.ajax(
     
    124118        {
    125119          tmp=$.parseJSON(msg);
    126           tmp.markers.sort(compareMarkers);
    127           applyMarkers(currentMapLoad, tmp.markers);
    128           $('#gmapsLoading').css('display', 'none');
    129           $('#gmapsNbPhotos').html('['+tmp.datas.nbPhotos+']');
    130           $('#iDialogGMapWaiting').css('display', 'none');
     120          if(gmaps.callId==tmp.callId)
     121          {
     122            tmp.markers.sort(compareMarkers);
     123            applyMarkers(currentMapLoad, tmp.markers);
     124            $('#gmapsLoading').css('display', 'none');
     125            $('#gmapsNbPhotos').html('['+tmp.datas.nbPhotos+']');
     126          }
    131127        }
    132128    }
     
    140136 * @param Array markers : array of markers properties
    141137 *                        each marker is an object with properties :
    142  *                          latitude, longitude, nbImages
     138 *                          latitude, longitude, nbImg
    143139 */
    144140function applyMarkers(map, markers)
     
    154150    while(i<map.markers.length)
    155151    {
    156       newListIndex=markerInList(map.markers[i].uniqueId, markers);
     152      newListIndex=markerInList(map.markers[i].uId, markers);
    157153      if(newListIndex==-1)
    158154      {
     
    189185      {
    190186        marker:marker,
    191         uniqueId:markers[i].uniqueId
     187        uId:markers[i].uId
    192188      }
    193189    );
     
    207203function compareMarkers(m1,m2)
    208204{
    209   if(m1.uniqueId<m2.uniqueId)
     205  if(m1.uId<m2.uId)
    210206  {
    211207    return(-1);
    212208  }
    213   else if(m1.uniqueId<m2.uniqueId)
     209  else if(m1.uId<m2.uId)
    214210  {
    215211    return(1);
     
    222218  for(var i=0;i<markerList.length;i++)
    223219  {
    224     if(markerList[i].uniqueId==uniqueId) return(i)
     220    if(markerList[i].uId==uniqueId) return(i)
    225221  }
    226222  return(-1);
     
    286282  }
    287283
    288   if(gmaps.currentInfo.nbImages>1)
     284  if(gmaps.currentInfo.nbImg>1)
    289285  {
    290286    $('#ciGMIWC_picnum').html((index+1)+'/'+gmaps.currentInfo.nbImgTxt);
     
    304300{
    305301  gmaps.currentInfo.displayed--;
    306   if(gmaps.currentInfo.displayed<0) gmaps.currentInfo.displayed=gmaps.currentInfo.nbImages-1;
     302  if(gmaps.currentInfo.displayed<0) gmaps.currentInfo.displayed=gmaps.currentInfo.nbImg-1;
    307303  displayPictureInfo(gmaps.currentInfo.displayed);
    308304}
     
    314310{
    315311  gmaps.currentInfo.displayed++;
    316   if(gmaps.currentInfo.displayed>=gmaps.currentInfo.nbImages) gmaps.currentInfo.displayed=0;
     312  if(gmaps.currentInfo.displayed>=gmaps.currentInfo.nbImg) gmaps.currentInfo.displayed=0;
    317313  displayPictureInfo(gmaps.currentInfo.displayed);
    318314}
    319315
    320316
     317/**
     318 * check if zoomLevel
     319 */
     320function fitToBounds(bounds)
     321{
     322  gmaps.maps[gmaps.currentMapLoadIndex].gMap.fitBounds(bounds);
     323
     324  if(gmaps.maps[gmaps.currentMapLoadIndex].zoomLevelMaxActivated &&
     325     gmaps.maps[gmaps.currentMapLoadIndex].gMap.getZoom() > gmaps.maps[gmaps.currentMapLoadIndex].zoomLevel)
     326  {
     327    gmaps.maps[gmaps.currentMapLoadIndex].gMap.setZoom(gmaps.maps[gmaps.currentMapLoadIndex].zoomLevel);
     328  }
     329}
     330
     331function initializeMapViewport(mode)
     332{
     333  if(gmaps.currentMapLoadIndex>-1 &&
     334     ($('#'+gmaps.maps[gmaps.currentMapLoadIndex].id+'Content').dialog('isOpen') && mode=='loaded' || mode=='open') &&
     335     (gmaps.maps[gmaps.currentMapLoadIndex].viewportInitialized==false)
     336    )
     337  {
     338    /*
     339     * if the container is not visible when map are built, they are
     340     * not initialized correctly
     341     *
     342     * when dialog is opened for the first time, proceed to map
     343     * finalization :
     344     *  - resize
     345     *  - center the map
     346     *  - add handlers on events 'dragend' and 'zoom_change'
     347     *    allowing to reload markers according to the new viewport
     348     */
     349    google.maps.event.trigger(gmaps.maps[gmaps.currentMapLoadIndex].gMap, 'resize');
     350
     351
     352    if(gmaps.maps[gmaps.currentMapLoadIndex].fitToBounds)
     353    {
     354      fitToBounds(gmaps.bounds)
     355    }
     356    else
     357    {
     358      gmaps.maps[gmaps.currentMapLoadIndex].gMap.setCenter(gmaps.bounds.getCenter());
     359    }
     360
     361    // reduce copyright size... ^_^
     362    $('#'+gmaps.maps[gmaps.currentMapLoadIndex].id+' span, #'+gmaps.maps[gmaps.currentMapLoadIndex].id+' a').css('font-size', '55.0%');
     363
     364    if(gmaps.maps[gmaps.currentMapLoadIndex].gMap.kmlFile!=null)
     365      gmaps.maps[gmaps.currentMapLoadIndex].gMap.kmlFile.setMap(gmaps.maps[gmaps.currentMapLoadIndex].gMap);
     366
     367    google.maps.event.addListener(
     368      gmaps.maps[gmaps.currentMapLoadIndex].gMap,
     369      'dragend',
     370      function()
     371      {
     372        loadMarkers(this);
     373        $('#gmapsBoundMap').css('display', 'inline');
     374        $('#gmapsBoundKml').css('display', 'inline');
     375      }
     376    );
     377
     378    google.maps.event.addListener(
     379      gmaps.maps[gmaps.currentMapLoadIndex].gMap,
     380      'zoom_changed',
     381      function()
     382      {
     383        loadMarkers(this);
     384        gmaps.infoWindow.close();
     385        $('#gmapsBoundMap').css('display', 'inline');
     386        $('#gmapsBoundKml').css('display', 'inline');
     387      }
     388    );
     389
     390    gmaps.maps[gmaps.currentMapLoadIndex].viewportInitialized=true;
     391  }
     392
     393  if(gmaps.currentMapLoadIndex>-1) loadMarkers(gmaps.maps[gmaps.currentMapLoadIndex].gMap);
     394}
     395
    321396$(window).load(function ()
    322397  {
    323     // all maps have the same intials bounds
     398    // all maps have the same initials bounds
    324399    gmaps.currentInfo=null;
     400    gmaps.currentMapLoadIndex=-1;
    325401
    326402    gmaps.bounds = new google.maps.LatLngBounds(
     
    351427        $('#'+gmaps.maps[i].id).css(
    352428          {
    353             width: ($(window).width()*0.8)+'px',
    354             height:($(window).height()*0.8)+'px'
     429            width: ($(window).width()*gmaps.popupAutomaticSize)+'px',
     430            height:($(window).height()*gmaps.popupAutomaticSize)+'px'
    355431          }
    356432        );
    357433      }
     434
     435      /*
     436       * initialize map on the server side (call the 'public.maps.init'
     437       * function
     438       */
     439      $.ajax(
     440        {
     441          type: "POST",
     442          url: "plugins/GMaps/gmaps_ajax.php",
     443          async: true,
     444          data: { ajaxfct:"public.maps.init", category:gmaps.categoryId },
     445          success:
     446            function(msg)
     447            {
     448              gmaps.requestId=msg;
     449              initializeMapViewport('loaded');
     450            }
     451        }
     452      );
     453
    358454
    359455      // initialize dialog box for maps
     
    370466            {
    371467              gmaps.currentMapLoadIndex=$(this).data('index');
    372 
    373               /*
    374                * initialize map on the server side (call the 'public.maps.init'
    375                * function
    376                */
    377               $.ajax(
    378                 {
    379                   type: "POST",
    380                   url: "plugins/GMaps/gmaps_ajax.php",
    381                   async: true,
    382                   data: { ajaxfct:"public.maps.init", category:gmaps.categoryId },
    383                   success:
    384                     function(msg)
    385                     {
    386                       gmaps.requestId=msg;
    387 
    388                       if(gmaps.maps[gmaps.currentMapLoadIndex].viewportInitialized==false)
    389                       {
    390                         /*
    391                          * if the container is not visible when map are built, they are
    392                          * not initialized correctly
    393                          *
    394                          * when dialog is opened for the first time, proceed to map
    395                          * finalization :
    396                          *  - resize
    397                          *  - center the map
    398                          *  - add handlers on events 'dragend' and 'zoom_change'
    399                          *    allowing to reload markers according to the new viewport
    400                          */
    401                         google.maps.event.trigger(gmaps.maps[gmaps.currentMapLoadIndex].gMap, 'resize');
    402 
    403 
    404                         if(gmaps.maps[gmaps.currentMapLoadIndex].fitToBounds)
    405                         {
    406                           gmaps.maps[gmaps.currentMapLoadIndex].gMap.fitBounds(gmaps.bounds);
    407                         }
    408                         else
    409                         {
    410                           gmaps.maps[gmaps.currentMapLoadIndex].gMap.setCenter(gmaps.bounds.getCenter());
    411                         }
    412 
    413                         // reduce copyright size... ^_^
    414                         $('#'+gmaps.maps[gmaps.currentMapLoadIndex].id+' span, #'+gmaps.maps[gmaps.currentMapLoadIndex].id+' a').css('font-size', '55.0%');
    415 
    416                         if(gmaps.maps[gmaps.currentMapLoadIndex].gMap.kmlFile!=null)
    417                           gmaps.maps[gmaps.currentMapLoadIndex].gMap.kmlFile.setMap(gmaps.maps[gmaps.currentMapLoadIndex].gMap);
    418 
    419                         google.maps.event.addListener(
    420                           gmaps.maps[gmaps.currentMapLoadIndex].gMap,
    421                           'dragend',
    422                           function()
    423                           {
    424                             loadMarkers(this);
    425                             $('#gmapsBoundMap').css('display', 'inline');
    426                             $('#gmapsBoundKml').css('display', 'inline');
    427                           }
    428                         );
    429 
    430                         google.maps.event.addListener(
    431                           gmaps.maps[gmaps.currentMapLoadIndex].gMap,
    432                           'zoom_changed',
    433                           function()
    434                           {
    435                             loadMarkers(this);
    436                             gmaps.infoWindow.close();
    437                             $('#gmapsBoundMap').css('display', 'inline');
    438                             $('#gmapsBoundKml').css('display', 'inline');
    439                           }
    440                         );
    441 
    442                         // loads the markers
    443                         loadMarkers(gmaps.maps[gmaps.currentMapLoadIndex].gMap);
    444                         gmaps.maps[gmaps.currentMapLoadIndex].viewportInitialized=true;
    445                       }
    446 
    447                     }
    448                 }
    449               );
     468              initializeMapViewport('open');
    450469            }
    451470        }
     
    453472
    454473      $('div.gmapsPopup div.ui-dialog-titlebar')
    455       .append('<a href="#" id="gmapsBoundMap" style="display:none;" onclick="gmaps.maps[gmaps.currentMapLoadIndex].gMap.fitBounds(gmaps.bounds); $(this).css(\'display\', \'none\').blur(); return(false);">'+
     474      .append('<a href="#" id="gmapsBoundMap" style="display:none;" onclick="fitToBounds(gmaps.bounds); $(this).css(\'display\', \'none\').blur(); return(false);">'+
    456475              '<span>&there4;</span></a>');
    457476      $('#gmapsBoundMap').attr('title', gmaps.lang.boundmap);
     
    460479      {
    461480        $('div.gmapsPopup div.ui-dialog-titlebar')
    462           .append('<a href="#" id="gmapsBoundKml" onclick="gmaps.maps[gmaps.currentMapLoadIndex].gMap.fitBounds(gmaps.maps[gmaps.currentMapLoadIndex].gMap.kmlFile.getDefaultViewport()); $(this).css(\'display\', \'none\').blur(); return(false);">'+
     481          .append('<a href="#" id="gmapsBoundKml" onclick="fitToBounds(gmaps.maps[gmaps.currentMapLoadIndex].gMap.kmlFile.getDefaultViewport()); $(this).css(\'display\', \'none\').blur(); return(false);">'+
    463482                  '<span>&sim;</span></a>');
    464483        $('#gmapsBoundKml').attr('title', gmaps.lang.boundkml);
  • extensions/GMaps/js/gmapsCategory.packed.js

    r7177 r7308  
    1 /* file: gmapsCategory.js - v1.0.0 | packed on 2010/10/13 with http://joliclic.free.fr/php/javascript-packer/ */
    2 eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('I O,W=[p,{w:32,h:32,x:15,y:31},{w:32,h:32,x:15,y:31},{w:32,h:32,x:10,y:31},{w:30,h:3P,x:4,y:39},];7 2A(k,1B){I 5=o g.3.2W($("#"+k.s).23(0),{3e:\'#38\',2Y:k.2X,2Z:k.2I,3V:2.B.2r(),1m:(k.1m==-1)?u:z,2R:(k.1m==-1)?u:z,1T:(k.1T==\'n\')?u:z,1V:(k.1V==\'n\')?u:z,1t:(k.1t==-1)?u:z,2S:{1z:k.1t},3d:\'\',});9(k.1O!=\'\'){F=o g.3.3i(k.1O,{3g:z})}E{F=p}1N=/^3a(\\d\\d)35.*/i;D=1N.36(k.P);9(D!=p)D=o 37(D[1]);9(D!=p){5.P=o g.3.34(\'1h/1p/2n/\'+k.P,o g.3.33(W[D].w,W[D].h),o g.3.29(0,0),o g.3.29(W[D].x,W[D].y))}E{5.P=p}5.F=F;5.f=o 3b();5.1B=1B;k.m=5;k.1J=u}7 1j(5){1a={1F:2.1F,B:{2s:5.1e().28().1M(),2E:5.1e().28().1G(),1S:5.1e().2a().1M(),2f:5.1e().2a().1G()},K:$(5.1Y()).K(),J:$(5.1Y()).J(),2K:20};O=5;$(\'#1y\').l(\'j\',\'R-14\');$(\'#1l\').M(\'\');$(\'#1U\').l({K:$(\'#1i\').K()+\'Q\',J:$(\'#1i\').J()+\'Q\',1R:$(\'#1i\').1D().1R+\'Q\',22:$(\'#1i\').1D().22+\'Q\',j:\'14\'});$.2k({2j:"2g",2h:"1h/1p/2i.2o",2p:z,1k:{2v:"2w.3.2U",1a:1a},2u:7(13){1b=$.2Q(13);1b.f.2M(21);1W(O,1b.f);$(\'#1y\').l(\'j\',\'G\');$(\'#1l\').M(\'[\'+1b.1a.2P+\']\');$(\'#1U\').l(\'j\',\'G\')}})}7 1W(5,f){9(O==p)H(u);9(5.f.N>0){I i=0;3r(i<5.f.N){1I=25(5.f[i].C,f);9(1I==-1){5.f[i].r.2m(p);5.f.1P(i,1)}E{f.1P(1I,1);i++}}}18(I i=0;i<f.N;i++){I r=o g.3.3I({1D:o g.3.1K(f[i].1M,f[i].1G),5:O,V:f[i].1w});9(5.P!=p)r.3k(5.P);r.1r=f[i];r.1r.t=0;5.f.3M({r:r,C:f[i].C});g.3.Y.12(r,\'2c\',7(){24(T)})}O=p}7 21(1H,1L){9(1H.C<1L.C){H(-1)}E 9(1H.C<1L.C){H(1)}H(0)}7 25(C,1x){18(I i=0;i<1x.N;i++){9(1x[i].C==C)H(i)}H(-1)}7 24(r){2.6=r.1r;2.L.2q();2.L.2B($(\'#2D\').3S().1Z(1o).23(0));2.L.2z(r.5,r);19(2.6.t)}7 1o(i,e){9(e.s!=\'\')e.s=\'c\'+e.s;$(e).3G().1Z(1o)}7 19(q){2.6.t=q;9(2.6.27[q]==\'\'){$(\'#26\').M(\'&3E;\')}E{$(\'#26\').M(2.6.27[q])}$(\'#Z\').1n(\'2l\',\'./3s/\'+2.6.3t[q]);$(\'#Z\').2C();9(2.6.17[q].N==1){$(\'#Z\').1A(\'2c\',7(){16.3q=2.6.17[2.6.t][0]})}E{$(\'#2d\').M(\'\');18(I i=0;i<2.6.17[q].N;i++){$(\'#2d\').S(\'<2b><a 1C="\'+2.6.17[q][i]+\'">\'+2.6.3m[q][i]+\'</a></2b>\')}$(\'#Z, #1s\').1A(\'3n\',7(){$(\'#1s\').l(\'j\',\'14\')}).1A(\'3u\',7(){$(\'#1s\').l(\'j\',\'G\')})}9(2.6.1u>1){$(\'#2e\').M((q+1)+\'/\'+2.6.1w);$(\'#1X, #1Q\').l(\'j\',\'R-14\')}E{$(\'#2e\').M(2.6.1w);$(\'#1X, #1Q\').l(\'j\',\'G\')}}7 3C(){2.6.t--;9(2.6.t<0)2.6.t=2.6.1u-1;19(2.6.t)}7 3D(){2.6.t++;9(2.6.t>=2.6.1u)2.6.t=0;19(2.6.t)}$(16).3w(7(){2.6=p;2.B=o g.3.3y(o g.3.1K(2.B.1S,2.B.2f),o g.3.1K(2.B.2s,2.B.2E));2.L=o g.3.3x();g.3.Y.12(2.L,\'3z\',7(){$(\'3A\').S($(\'#2D\'));2.L.2B(\'\');$(\'#Z\').2C()});18(I i=0;i<2.3.N;i++){2A(2.3[i],i);9(2.3[i].3B==\'A\'){$(\'#\'+2.3[i].s).l({K:($(16).K()*0.8)+\'Q\',J:($(16).J()*0.8)+\'Q\'})}$(\'#\'+2.3[i].s+\'3v\').11({3o:u,K:\'2y\',J:\'2y\',3l:z,3p:\'X\',3F:\'1d\',V:2.3[i].V,2z:7(){2.b=$(T).1k(\'q\');$.2k({2j:"2g",2h:"1h/1p/2i.2o",2p:z,1k:{2v:"2w.3.3U",3T:2.3O},2u:7(13){2.1F=13;9(2.3[2.b].1J==u){g.3.Y.3N(2.3[2.b].m,\'3H\');9(2.3[2.b].3L){2.3[2.b].m.1E(2.B)}E{2.3[2.b].m.3K(2.B.2r())}$(\'#\'+2.3[2.b].s+\' v, #\'+2.3[2.b].s+\' a\').l(\'3J-3R\',\'3Q.0%\');9(2.3[2.b].m.F!=p)2.3[2.b].m.F.2m(2.3[2.b].m);g.3.Y.12(2.3[2.b].m,\'2O\',7(){1j(T);$(\'#1g\').l(\'j\',\'R\');$(\'#1f\').l(\'j\',\'R\')});g.3.Y.12(2.3[2.b].m,\'2N\',7(){1j(T);2.L.2q();$(\'#1g\').l(\'j\',\'R\');$(\'#1f\').l(\'j\',\'R\')});1j(2.3[2.b].m);2.3[2.b].1J=z}}})}}).1k(\'q\',i);$(\'U.1d U.1c-11-1q\').S(\'<a 1C="#" s="1g" 1z="j:G;" 2t="2.3[2.b].m.1E(2.B); $(T).l(\\\'j\\\', \\\'G\\\').2x(); H(u);">\'+\'<v>&2L;</v></a>\');$(\'#1g\').1n(\'V\',2.1v.2V);9(2.3[i].m.F!=p){$(\'U.1d U.1c-11-1q\').S(\'<a 1C="#" s="1f" 2t="2.3[2.b].m.1E(2.3[2.b].m.F.2H()); $(T).l(\\\'j\\\', \\\'G\\\').2x(); H(u);">\'+\'<v>&2J;</v></a>\');$(\'#1f\').1n(\'V\',2.1v.3f)}$(\'U.1d U.1c-11-1q\').S(\'<v s="1y" 1z="j:G;"><2n 2l="./1h/3c/3h/3j.2F"><v>\'+2.1v.2G+\'</v></v>\');$(\'#1c-11-V-2T\').S(\'<v s="1l"></v>\')}});',62,244,'||gmaps|maps||map|currentInfo|function||if||currentMapLoadIndex||||markers|google|||display|properties|css|gMap||new|null|index|marker|id|displayed|false|span||||true||bounds|uniqueId|iM|else|kmlFile|none|return|var|height|width|infoWindow|html|length|currentMapLoad|markerImg|px|inline|append|this|div|title|markerImgProp||event|ciGMIWC_img||dialog|addListener|msg|block||window|imgCatsUrl|for|displayPictureInfo|datas|tmp|ui|gmapsPopup|getBounds|gmapsBoundKml|gmapsBoundMap|plugins|iGMapsIcon|loadMarkers|data|gmapsNbPhotos|navigationControl|attr|renameId|GMaps|titlebar|info|ciGMIWC_showcat|mapTypeControl|nbImages|lang|nbImgTxt|markerList|gmapsLoading|style|bind|gmapsIndex|href|position|fitBounds|requestId|lng|m1|newListIndex|viewportInitialized|LatLng|m2|lat|re|kmlFileUrl|splice|ciWARight|top|south|scaleControl|iDialogGMapWaiting|streetViewControl|applyMarkers|ciWALeft|getDiv|each||compareMarkers|left|get|displayWindowInfo|markerInList|ciGMIWC_title|imgName|getNorthEast|Point|getSouthWest|li|click|ciGMIWC_showcatList|ciGMIWC_picnum|west|POST|url|gmaps_ajax|type|ajax|src|setMap|img|php|async|close|getCenter|north|onclick|success|ajaxfct|public|blur|auto|open|createMap|setContent|unbind|iGMapsInfoWindowContent|east|gif|loading|getDefaultViewport|zoomLevel|sim|distanceTreshold|there4|sort|zoom_changed|dragend|nbPhotos|parseJSON|scrollwheel|mapTypeControlOptions|iGMapsIconContent|getMarkers|boundmap|Map|mapType|mapTypeId|zoom||||Size|MarkerImage|_|exec|Number|ffffff||mS|Array|GrumPluginClasses|markerTitle|backgroundColor|boundkml|preserveViewport|icons|KmlLayer|processing|setIcon|modal|imgCatsNames|mouseenter|autoOpen|closeText|location|while|galleries|imgTn|mouseleave|Content|load|InfoWindow|LatLngBounds|closeclick|body|sizeMode|displayPicturePrev|displayPictureNext|nbsp|dialogClass|children|resize|Marker|font|setCenter|fitToBounds|push|trigger|categoryId|40|55|size|clone|category|init|center'.split('|'),0,{}))
     1/* file: gmapsCategory.js - v1.1.0 | packed on 2010/10/20 with http://joliclic.free.fr/php/javascript-packer/ */
     2eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('E R,12=[q,{w:32,h:32,x:15,y:31},{w:32,h:32,x:15,y:31},{w:32,h:32,x:10,y:31},{w:30,h:40,x:4,y:39},];9 2h(g,1D){E 6=l f.3.2I($("#"+g.o).1W(0),{3d:\'#2U\',2K:g.3b,34:g.1s,2O:2.t.1S(),1u:(g.1u==-1)?u:z,2R:(g.1u==-1)?u:z,2p:(g.2p==\'n\')?u:z,2n:(g.2n==\'n\')?u:z,1p:(g.1p==-1)?u:z,2P:{1H:g.1p},2Q:\'\',});8(g.2m!=\'\'){D=l f.3.2N(g.2m,{2L:z})}F{D=q}2s=/^2M(\\d\\d)36.*/i;B=2s.3a(g.Q);8(B!=q)B=l 2Y(B[1]);8(B!=q){6.Q=l f.3.33(\'14/1K/2E/\'+g.Q,l f.3.2Z(12[B].w,12[B].h),l f.3.2z(0,0),l f.3.2z(12[B].x,12[B].y))}F{6.Q=q}6.D=D;6.b=l 2S();6.1D=1D;g.j=6;g.1k=u}9 1j(6){2.T++;16={1B:2.1B,T:2.T,t:{2B:6.1d().1O().1J(),2a:6.1d().1O().1I(),2C:6.1d().1Q().1J(),2A:6.1d().1Q().1I()},Z:$(6.1R()).Z(),Y:$(6.1R()).Y(),2H:20,};R=6;$(\'#1E\').k(\'m\',\'M-1l\');$(\'#1q\').I(\'\');$.2g({2w:"2f",2b:"14/1K/2c.2d",2e:z,1i:{2k:"2l.3.2T",16:16},2t:9(13){W=$.3c(13);8(2.T==W.T){W.b.2V(2v);29(R,W.b);$(\'#1E\').k(\'m\',\'K\');$(\'#1q\').I(\'[\'+W.16.2X+\']\')}}})}9 29(6,b){8(R==q)C(u);8(6.b.J>0){E i=0;38(i<6.b.J){1L=1Y(6.b[i].G,b);8(1L==-1){6.b[i].p.1P(q);6.b.26(i,1)}F{b.26(1L,1);i++}}}1b(E i=0;i<b.J;i++){E p=l f.3.2W({35:l f.3.1M(b[i].1J,b[i].1I),6:R,O:b[i].1n});8(6.Q!=q)p.37(6.Q);p.1G=b[i];p.1G.s=0;6.b.2J({p:p,G:b[i].G});f.3.U.17(p,\'1T\',9(){1X(S)})}R=q}9 2v(1t,1v){8(1t.G<1v.G){C(-1)}F 8(1t.G<1v.G){C(1)}C(0)}9 1Y(1Z,1r){1b(E i=0;i<1r.J;i++){8(1r[i].G==1Z)C(i)}C(-1)}9 1X(p){2.5=p.1G;2.H.22();2.H.2G($(\'#2D\').3i().1U(1C).1W(0));2.H.1h(p.6,p);19(2.5.s)}9 1C(i,e){8(e.o!=\'\')e.o=\'c\'+e.o;$(e).3L().1U(1C)}9 19(r){2.5.s=r;8(2.5.21[r]==\'\'){$(\'#1V\').I(\'&3M;\')}F{$(\'#1V\').I(2.5.21[r])}$(\'#11\').1w(\'2y\',\'./3I/\'+2.5.3H[r]);$(\'#11\').2F();8(2.5.1c[r].J==1){$(\'#11\').1A(\'1T\',9(){1a.3D=2.5.1c[2.5.s][0]})}F{$(\'#27\').I(\'\');1b(E i=0;i<2.5.1c[r].J;i++){$(\'#27\').P(\'<28><a 1x="\'+2.5.1c[r][i]+\'">\'+2.5.3E[r][i]+\'</a></28>\')}$(\'#11, #1y\').1A(\'3F\',9(){$(\'#1y\').k(\'m\',\'1l\')}).1A(\'3G\',9(){$(\'#1y\').k(\'m\',\'K\')})}8(2.5.1z>1){$(\'#25\').I((r+1)+\'/\'+2.5.1n);$(\'#23, #24\').k(\'m\',\'M-1l\')}F{$(\'#25\').I(2.5.1n);$(\'#23, #24\').k(\'m\',\'K\')}}9 3N(){2.5.s--;8(2.5.s<0)2.5.s=2.5.1z-1;19(2.5.s)}9 3O(){2.5.s++;8(2.5.s>=2.5.1z)2.5.s=0;19(2.5.s)}9 V(t){2.3[2.7].j.3V(t);8(2.3[2.7].3W&&2.3[2.7].j.3X()>2.3[2.7].1s){2.3[2.7].j.3Y(2.3[2.7].1s)}}9 1F(1m){8(2.7>-1&&($(\'#\'+2.3[2.7].o+\'2r\').L(\'3U\')&&1m==\'2u\'||1m==\'1h\')&&(2.3[2.7].1k==u)){f.3.U.3T(2.3[2.7].j,\'3P\');8(2.3[2.7].V){V(2.t)}F{2.3[2.7].j.3e(2.t.1S())}$(\'#\'+2.3[2.7].o+\' v, #\'+2.3[2.7].o+\' a\').k(\'3R-3S\',\'3C.0%\');8(2.3[2.7].j.D!=q)2.3[2.7].j.D.1P(2.3[2.7].j);f.3.U.17(2.3[2.7].j,\'3B\',9(){1j(S);$(\'#1e\').k(\'m\',\'M\');$(\'#1f\').k(\'m\',\'M\')});f.3.U.17(2.3[2.7].j,\'3l\',9(){1j(S);2.H.22();$(\'#1e\').k(\'m\',\'M\');$(\'#1f\').k(\'m\',\'M\')});2.3[2.7].1k=z}8(2.7>-1)1j(2.3[2.7].j)}$(1a).3m(9(){2.5=q;2.7=-1;2.t=l f.3.3o(l f.3.1M(2.t.2C,2.t.2A),l f.3.1M(2.t.2B,2.t.2a));2.H=l f.3.3j();f.3.U.17(2.H,\'3f\',9(){$(\'3h\').P($(\'#2D\'));2.H.2G(\'\');$(\'#11\').2F()});1b(E i=0;i<2.3.J;i++){2h(2.3[i],i);8(2.3[i].3x==\'A\'){$(\'#\'+2.3[i].o).k({Z:($(1a).Z()*2.2i)+\'2j\',Y:($(1a).Y()*2.2i)+\'2j\'})}$.2g({2w:"2f",2b:"14/1K/2c.2d",2e:z,1i:{2k:"2l.3.3z",3A:2.3w},2t:9(13){2.1B=13;1F(\'2u\')}});$(\'#\'+2.3[i].o+\'2r\').L({3r:u,Z:\'2q\',Y:\'2q\',3s:z,3t:\'X\',3Z:\'1g\',O:2.3[i].O,1h:9(){2.7=$(S).1i(\'r\');1F(\'1h\')}}).1i(\'r\',i);$(\'N.1g N.18-L-1N\').P(\'<a 1x="#" o="1e" 1H="m:K;" 2o="V(2.t); $(S).k(\\\'m\\\', \\\'K\\\').2x(); C(u);">\'+\'<v>&3q;</v></a>\');$(\'#1e\').1w(\'O\',2.1o.3p);8(2.3[i].j.D!=q){$(\'N.1g N.18-L-1N\').P(\'<a 1x="#" o="1f" 2o="V(2.3[2.7].j.D.3Q()); $(S).k(\\\'m\\\', \\\'K\\\').2x(); C(u);">\'+\'<v>&3K;</v></a>\');$(\'#1f\').1w(\'O\',2.1o.3n)}$(\'N.1g N.18-L-1N\').P(\'<v o="1E" 1H="m:K;"><2E 2y="./14/3J/3k/3g.3u"><v>\'+2.1o.3v+\'</v></v>\');$(\'#18-L-O-3y\').P(\'<v o="1q"></v>\')}});',62,249,'||gmaps|maps||currentInfo|map|currentMapLoadIndex|if|function||markers||||google|properties|||gMap|css|new|display||id|marker|null|index|displayed|bounds|false|span||||true||iM|return|kmlFile|var|else|uId|infoWindow|html|length|none|dialog|inline|div|title|append|markerImg|currentMapLoad|this|callId|event|fitToBounds|tmp||height|width||ciGMIWC_img|markerImgProp|msg|plugins||datas|addListener|ui|displayPictureInfo|window|for|imgCatsUrl|getBounds|gmapsBoundMap|gmapsBoundKml|gmapsPopup|open|data|loadMarkers|viewportInitialized|block|mode|nbImgTxt|lang|mapTypeControl|gmapsNbPhotos|markerList|zoomLevel|m1|navigationControl|m2|attr|href|ciGMIWC_showcat|nbImg|bind|requestId|renameId|gmapsIndex|gmapsLoading|initializeMapViewport|info|style|lng|lat|GMaps|newListIndex|LatLng|titlebar|getNorthEast|setMap|getSouthWest|getDiv|getCenter|click|each|ciGMIWC_title|get|displayWindowInfo|markerInList|uniqueId||imgName|close|ciWALeft|ciWARight|ciGMIWC_picnum|splice|ciGMIWC_showcatList|li|applyMarkers|east|url|gmaps_ajax|php|async|POST|ajax|createMap|popupAutomaticSize|px|ajaxfct|public|kmlFileUrl|streetViewControl|onclick|scaleControl|auto|Content|re|success|loaded|compareMarkers|type|blur|src|Point|west|north|south|iGMapsInfoWindowContent|img|unbind|setContent|distanceTreshold|Map|push|mapTypeId|preserveViewport|mS|KmlLayer|center|mapTypeControlOptions|markerTitle|scrollwheel|Array|getMarkers|ffffff|sort|Marker|nbPhotos|Number|Size||||MarkerImage|zoom|position|_|setIcon|while||exec|mapType|parseJSON|backgroundColor|setCenter|closeclick|processing|body|clone|InfoWindow|icons|zoom_changed|load|boundkml|LatLngBounds|boundmap|there4|autoOpen|modal|closeText|gif|loading|categoryId|sizeMode|iGMapsIconContent|init|category|dragend|55|location|imgCatsNames|mouseenter|mouseleave|imgTn|galleries|GrumPluginClasses|sim|children|nbsp|displayPicturePrev|displayPictureNext|resize|getDefaultViewport|font|size|trigger|isOpen|fitBounds|zoomLevelMaxActivated|getZoom|setZoom|dialogClass|'.split('|'),0,{}))
  • extensions/GMaps/js/gmapsPicture.js

    r7177 r7308  
    22 * -----------------------------------------------------------------------------
    33 * file: gmapsPicture.js
    4  * file version: 1.0.0
    5  * date: 2010-10-10
     4 * file version: 1.1.0
     5 * date: 2010-10-20
    66 */
    77
     
    106106          $('#iGMapsIcon').css(
    107107            {
    108               width: ($(window).width()*0.8)+'px',
    109               height:($(window).height()*0.8)+'px'
     108              width: ($(window).width()*gmaps.popupAutomaticSize)+'px',
     109              height:($(window).height()*gmaps.popupAutomaticSize)+'px'
    110110            }
    111111          );
  • extensions/GMaps/js/gmapsPicture.packed.js

    r7177 r7308  
    1 /* file: gmapsPicture.js - v1.0.0 | packed on 2010/10/13 with http://joliclic.free.fr/php/javascript-packer/ */
    2 eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('C s={N:b,R:b};C v=[p,{w:r,h:r,x:15,y:Y},{w:r,h:r,x:15,y:Y},{w:r,h:r,x:10,y:Y},{w:1H,h:1V,x:4,y:1B},];q 1l(6){C G=k c.3.1C(2.18.1E,2.18.1I),z=k c.3.1K($("#"+6.l).16(0),{1X:6.1S,1R:6.1M,1L:G,P:(6.P==-1)?b:g,1P:(6.P==-1)?b:g,1k:(6.1k==\'n\')?b:g,1b:(6.1b==\'n\')?b:g,O:(6.O==-1)?b:g,1Q:{1s:6.O},17:\'\',}),1f=k c.3.1O({1N:G,z:z,B:6.17});1d=/^1W(\\d\\d)1T.*/i;j=1d.1U(6.F);9(j!=p)j=k 1Y(j[1]);9(j!=p){C F=k c.3.1A(\'1J/1D/1G/\'+6.F,k c.3.1F(v[j].w,v[j].h),k c.3.1r(0,0),k c.3.1r(v[j].x,v[j].y));1f.2l(F)}9(6.1i!=\'\'){f=k c.3.2i(6.1i,{2n:g})}2o{f=p}z.f=f;6.5=z;6.t=G}$(Q).2h(q(){2.7=-1;1a(i=0;i<2.3.K;i++){1l(2.3[i]);2.3[i].5.L(2.3[i].t);$(\'#\'+2.3[i].l+\' o, #\'+2.3[i].l+\' a\').e(\'W-V\',\'M.0%\');9(2.3[i].5.f!=p)2.3[i].5.f.1p(2.3[i].5);9(2.3[i].19==\'2p\'){2.7=i;9(2.3[i].2j==\'A\'){$(\'#T\').e({S:($(Q).S()*0.8)+\'1n\',U:($(Q).U()*0.8)+\'1n\'})}}}9($(\'#1c\').K>0){u=$(\'#1c\').16(0).14.14.l;u=\'2m\'+u.2k().2f(0,1)+u.25(1);$("#"+u+" a").26(\'1Z\',q(){9(s.R==b){1a(i=0;i<2.3.K;i++){9(2.3[i].19==\'24\'){c.3.I.1t(2.3[i].5,\'1x\');2.3[i].5.L(2.3[1].t);$(\'#\'+2.3[i].l+\' o, #\'+2.3[i].l+\' a\').e(\'W-V\',\'M.0%\')}}s.R=g}})}9($(\'#1v\').K>0){$(\'#1v\').11({23:b,S:\'1u\',U:\'1u\',20:g,21:\'X\',22:\'12\',B:2.3[2.7].B,27:q(){9(s.N==b&&2.7!=-1){c.3.I.1t(2.3[2.7].5,\'1x\');2.3[2.7].5.L(2.3[2.7].t);$(\'#T o, #T a\').e(\'W-V\',\'M.0%\');9(2.3[2.7].5.f!=p)2.3[2.7].5.f.1p(2.3[2.7].5);s.N=g}c.3.I.1y(2.3[2.7].5,\'28\',q(){$(\'#E\').e(\'m\',\'D\');$(\'#J\').e(\'m\',\'D\')});c.3.I.1y(2.3[2.7].5,\'2d\',q(){$(\'#E\').e(\'m\',\'D\');$(\'#J\').e(\'m\',\'D\')})}});$(\'H.12 H.1z-11-1w\').1q(\'<a 1o="#" l="E" 1s="m:Z;" 13="2.3[2.7].5.L(2.3[2.7].t); $(1m).e(\\\'m\\\', \\\'Z\\\').1j(); 1e(b);">\'+\'<o>&2e;</o></a>\');$(\'#E\').1g(\'B\',2.1h.2c);9(2.3[2.7].5.f!=p){$(\'H.12 H.1z-11-1w\').1q(\'<a 1o="#" l="J" 13="2.3[2.7].5.2b(2.3[2.7].5.f.29()); $(1m).e(\\\'m\\\', \\\'Z\\\').1j(); 1e(b);">\'+\'<o>&2a;</o></a>\');$(\'#J\').1g(\'B\',2.1h.2g)}}});',62,150,'||gmaps|maps||gMap|properties|currentMapLoadIndex||if||false|google||css|kmlFile|true|||iM|new|id|display||span|null|function|32|viewportInitialized|gMapCenter|tabId|markerImgProp||||map||title|var|inline|gmapsCenterMap|markerImg|latlng|div|event|gmapsBoundKml|length|setCenter|55|icon|mapTypeControl|navigationControl|window|meta|width|iGMapsIcon|height|size|font||31|none||dialog|gmapsPopup|onclick|parentNode||get|markerTitle|coords|displayType|for|streetViewControl|iGMapContent|re|return|marker|attr|lang|kmlFileUrl|blur|scaleControl|applyMap|this|px|href|setMap|append|Point|style|trigger|auto|iGMapsIconContent|titlebar|resize|addListener|ui|MarkerImage|39|LatLng|GMaps|latitude|Size|img|30|longitude|plugins|Map|center|zoomLevel|position|Marker|scrollwheel|mapTypeControlOptions|zoom|mapType|_|exec|40|mS|mapTypeId|Number|click|modal|closeText|dialogClass|autoOpen|MP|substr|bind|open|dragend|getDefaultViewport|sim|fitBounds|centermap|zoom_changed|bull|substring|boundkml|load|KmlLayer|sizeMode|toUpperCase|setIcon|tab|preserveViewport|else|IP'.split('|'),0,{}))
     1/* file: gmapsPicture.js - v1.1.0 | packed on 2010/10/20 with http://joliclic.free.fr/php/javascript-packer/ */
     2eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('B r={M:9,Q:9};B u=[o,{w:q,h:q,x:15,y:W},{w:q,h:q,x:15,y:W},{w:q,h:q,x:10,y:W},{w:1Y,h:1X,x:4,y:1D},];p 1k(6){B F=j b.3.1J(2.19.1G,2.19.1H),v=j b.3.1T($("#"+6.k).13(0),{1K:6.1S,1R:6.1M,1L:F,O:(6.O==-1)?9:f,1Q:(6.O==-1)?9:f,1r:(6.1r==\'n\')?9:f,18:(6.18==\'n\')?9:f,N:(6.N==-1)?9:f,1P:{1s:6.N},1b:\'\',}),1d=j b.3.1O({1N:F,v:v,z:6.1b});1c=/^1W(\\d\\d)1V.*/i;g=1c.1U(6.E);8(g!=o)g=j 1C(g[1]);8(g!=o){B E=j b.3.1B(\'1I/1E/1F/\'+6.E,j b.3.1A(u[g].w,u[g].h),j b.3.1g(0,0),j b.3.1g(u[g].x,u[g].y));1d.2m(E)}8(6.1i!=\'\'){e=j b.3.2k(6.1i,{2l:f})}2j{e=o}v.e=e;6.5=v;6.s=F}$(P).2g(p(){2.7=-1;17(i=0;i<2.3.J;i++){1k(2.3[i]);2.3[i].5.K(2.3[i].s);$(\'#\'+2.3[i].k+\' m, #\'+2.3[i].k+\' a\').c(\'V-U\',\'L.0%\');8(2.3[i].5.e!=o)2.3[i].5.e.1u(2.3[i].5);8(2.3[i].1j==\'2h\'){2.7=i;8(2.3[i].2n==\'A\'){$(\'#S\').c({R:($(P).R()*2.1n)+\'1a\',T:($(P).T()*2.1n)+\'1a\'})}}}8($(\'#12\').J>0){t=$(\'#12\').13(0).14.14.k;t=\'2o\'+t.2p().2i(0,1)+t.2e(1);$("#"+t+" a").24(\'1Z\',p(){8(r.Q==9){17(i=0;i<2.3.J;i++){8(2.3[i].1j==\'2f\'){b.3.H.1q(2.3[i].5,\'1z\');2.3[i].5.K(2.3[1].s);$(\'#\'+2.3[i].k+\' m, #\'+2.3[i].k+\' a\').c(\'V-U\',\'L.0%\')}}r.Q=f}})}8($(\'#1x\').J>0){$(\'#1x\').11({23:9,R:\'1p\',T:\'1p\',22:f,20:\'X\',21:\'Z\',z:2.3[2.7].z,26:p(){8(r.M==9&&2.7!=-1){b.3.H.1q(2.3[2.7].5,\'1z\');2.3[2.7].5.K(2.3[2.7].s);$(\'#S m, #S a\').c(\'V-U\',\'L.0%\');8(2.3[2.7].5.e!=o)2.3[2.7].5.e.1u(2.3[2.7].5);r.M=f}b.3.H.1y(2.3[2.7].5,\'27\',p(){$(\'#D\').c(\'l\',\'C\');$(\'#I\').c(\'l\',\'C\')});b.3.H.1y(2.3[2.7].5,\'2c\',p(){$(\'#D\').c(\'l\',\'C\');$(\'#I\').c(\'l\',\'C\')})}});$(\'G.Z G.1t-11-1v\').1w(\'<a 1o="#" k="D" 1s="l:Y;" 16="2.3[2.7].5.K(2.3[2.7].s); $(1l).c(\\\'l\\\', \\\'Y\\\').1m(); 1h(9);">\'+\'<m>&2d;</m></a>\');$(\'#D\').1e(\'z\',2.1f.2b);8(2.3[2.7].5.e!=o){$(\'G.Z G.1t-11-1v\').1w(\'<a 1o="#" k="I" 16="2.3[2.7].5.2a(2.3[2.7].5.e.28()); $(1l).c(\\\'l\\\', \\\'Y\\\').1m(); 1h(9);">\'+\'<m>&29;</m></a>\');$(\'#I\').1e(\'z\',2.1f.25)}}});',62,150,'||gmaps|maps||gMap|properties|currentMapLoadIndex|if|false||google|css||kmlFile|true|iM|||new|id|display|span||null|function|32|viewportInitialized|gMapCenter|tabId|markerImgProp|map||||title||var|inline|gmapsCenterMap|markerImg|latlng|div|event|gmapsBoundKml|length|setCenter|55|icon|mapTypeControl|navigationControl|window|meta|width|iGMapsIcon|height|size|font|31||none|gmapsPopup||dialog|iGMapContent|get|parentNode||onclick|for|streetViewControl|coords|px|markerTitle|re|marker|attr|lang|Point|return|kmlFileUrl|displayType|applyMap|this|blur|popupAutomaticSize|href|auto|trigger|scaleControl|style|ui|setMap|titlebar|append|iGMapsIconContent|addListener|resize|Size|MarkerImage|Number|39|GMaps|img|latitude|longitude|plugins|LatLng|mapTypeId|center|zoomLevel|position|Marker|mapTypeControlOptions|scrollwheel|zoom|mapType|Map|exec|_|mS|40|30|click|closeText|dialogClass|modal|autoOpen|bind|boundkml|open|dragend|getDefaultViewport|sim|fitBounds|centermap|zoom_changed|bull|substr|MP|load|IP|substring|else|KmlLayer|preserveViewport|setIcon|sizeMode|tab|toUpperCase'.split('|'),0,{}))
  • extensions/GMaps/main.inc.php

    r7178 r7308  
    22/*
    33Plugin Name: GMaps
    4 Version: 0.2.0
     4Version: 1.1.0
    55Description: Display and manage (google) maps
    66Plugin URI: http://phpwebgallery.net/ext/extension_view.php?eid=454
     
    2525|         |            |   . release not published
    2626|         |            |
    27 | 0.2.0   | 2010-09-30 | * first official release
     27| 1.0.0   | 2010-09-30 | * first official release
    2828|         |            |
     29| 1.1.0   | 2010-10-20 | * mantis bug:1926
     30|         |            |   . key not translated
    2931|         |            |
     32|         |            | * mantis bug:1927
     33|         |            |   . Autozoom on categories maps : needs a min/max level
    3034|         |            |
     35|         |            | * mantis bug:1929
     36|         |            |   . allowing to set the size for automatic size
    3137|         |            |
     38|         |            | * mantis bug:1930
     39|         |            |   . Improve loading time for markers
    3240|         |            |
     41|         |            | * mantis bug:1931
     42|         |            |   . when an association is modified, it's possible to
     43|         |            |     set a category already associated
    3344|         |            |
     45|         |            | * mantis bug:1939
     46|         |            |   . compatibility with ExtendedDescription
    3447|         |            |
    35 |         |            |
     48|         |            | * mantis bug:1946
     49|         |            |   . Save KML files in local directory
    3650|         |            |
    3751|         |            |
  • extensions/GMaps/templates/gmaps_category.tpl

    r7176 r7308  
    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>
    1110  </div>
    1211{/foreach}
  • extensions/GMaps/templates/gmaps_dialog_area_choose.tpl

    r7177 r7308  
    1515{
    1616  var bounds = {
    17     north:0,
    18     south:0,
    19     east:0,
    20     west:0
    21   }
    22   var requestId = '';
    23 
    24   var dialogGMapsOptions = {
    25       id:'',
    26       eventOk:null,
    27       cBuilder:null,
    28       gMap:null,
    29     };
     17        north:0,
     18        south:0,
     19        east:0,
     20        west:0
     21      },
     22      requestId = '',
     23      callId=0,
     24      dialogGMapsOptions = {
     25        id:'',
     26        eventOk:null,
     27        cBuilder:null,
     28        gMap:null,
     29      };
    3030
    3131
     
    194194   * load markers from the server
    195195   */
    196   function loadMarkers()
    197   {
     196  var loadMarkers = function ()
     197  {
     198    callId++;
     199
    198200    datas={
    199201      requestId:requestId,
     202      callId:callId,
    200203      bounds:{
    201204          north:bounds.north,
     
    211214
    212215    $('#iDialogGMapNfo').html('<img src="./plugins/GrumPluginClasses/icons/processing.gif"><span>{/literal}{"gmaps_loading"|@translate}{literal}</span>');
    213     $('#iDialogGMapWaiting').css(
    214       {
    215         width:$('#iDialogGMapsMap').width()+'px',
    216         height:$('#iDialogGMapsMap').height()+'px',
    217         top:(1+$('#iDialogGMapsMap').position().top)+'px',
    218         left:(1+$('#iDialogGMapsMap').position().left)+'px',
    219         display:'block'
    220       }
    221     );
    222216
    223217    $.ajax(
     
    231225          {
    232226            tmp=$.parseJSON(msg);
    233             tmp.markers.sort(compareMarkers);
    234             applyMarkers(tmp.markers);
    235             $('#iDialogGMapNfo').html(tmp.datas.nbPhotos);
    236             $('#iDialogGMapWaiting').css('display', 'none');
     227            if(tmp.callId==callId)
     228            {
     229              tmp.markers.sort(compareMarkers);
     230              applyMarkers(tmp.markers);
     231              $('#iDialogGMapNfo').html(tmp.datas.nbPhotos);
     232            }
    237233          }
    238234      }
     
    257253      while(i<dialogGMapsOptions.gMap.markers.length)
    258254      {
    259         newListIndex=markerInList(dialogGMapsOptions.gMap.markers[i].uniqueId, markers);
     255        newListIndex=markerInList(dialogGMapsOptions.gMap.markers[i].uId, markers);
    260256        if(newListIndex==-1)
    261257        {
     
    290286        {
    291287          marker:marker,
    292           uniqueId:markers[i].uniqueId
     288          uId:markers[i].uId
    293289        }
    294290      );
     
    298294  function compareMarkers(m1,m2)
    299295  {
    300     if(m1.uniqueId<m2.uniqueId)
     296    if(m1.uId<m2.uId)
    301297    {
    302298      return(-1);
    303299    }
    304     else if(m1.uniqueId<m2.uniqueId)
     300    else if(m1.uId<m2.uId)
    305301    {
    306302      return(1);
     
    309305  }
    310306
    311   function markerInList(uniqueId, markerList)
     307  function markerInList(uId, markerList)
    312308  {
    313309    for(var i=0;i<markerList.length;i++)
    314310    {
    315       if(markerList[i].uniqueId==uniqueId) return(i)
     311      if(markerList[i].uId==uId) return(i)
    316312    }
    317313    return(-1);
     
    473469  <div id='iDialogGMapNfo'>&nbsp;</div>
    474470  <div id='iDialogGMapsMap' style='width:95%; height:95%;margin-left:auto;margin-right:auto;border:1px solid;'></div>
    475   <div id='iDialogGMapWaiting' style="display:none;"></div>
    476471</div>
    477472
  • extensions/GMaps/templates/gmaps_picture_icon.tpl

    r7176 r7308  
    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>
    109</div>
Note: See TracChangeset for help on using the changeset viewer.