こんにちは(^^
何はともあれ、誤解部分があるようなので、少しだけそこに触れておきます。
baserCMSはオープンソースで、その動作の保証について全くの無担保です。これは、他のオープンソースのソフトウェアも同様です。このフォーラムも、ボランティアで、皆さんが善意で書き込んで回答しています。まず、その点をご理解ください。
そして、
『過去バージョンのユーザーには全く対応しない』と言われる部分、これは少し視点を変えてみると、分かりやすいかも知れません。過去のバージョンで問題があったり、改善の余地があった場合、それを使っているユーザーに対応するからこそ、バージョンアップが行われます。過去の問題に対応すればするほど、バージョンが変わ上がります。『過去のバージョン』が存在しているということは、つまりbaserCMSの開発者さん達が、それだけ対応してきたという事です。『全く対応しない』というのは、少し誤解があるようです。(実際、このGoogleMapが表示されない問題が起こった際、かなり早い対応がされたと思いますよ〜!)
ただ、当たり前ですが、通常、問題が起きた時点での現行バージョンに対して、優先的な修正が加えられます。これはどんなソフトウェアでもそうだと思います。例えばPHPだって、古いバージョンはサポートが切れたりしますよね、それと同じです。まして、バグでもなんでもなく、後発的なGoogleMap側の仕様変更なわけで、しかも、このスレッド内にも、回避策(ページ内で直接、緯度経度記述して表示)が載っており、ついでにいうと、baserCMSの仕様なんか無視して、
GoogleMapのコードをコピペして貼り付けるだけで、もう解決できるような問題です。優先順位は低くなると思います。
今、おっしゃっている『過去のバージョン』というのは1.6系統だと思います。
引用:
企業ユーザーが簡単にバージョンアップできないことも理解できないなら
『簡単に』というのが、技術的な意味あいかどうか分かりませんが、baserCMSのアップデートは結構親切だと思います(WordPress程じゃないにせよ)。少なくとも、毎回、新しいバージョンがリリースされる度に、アップデート方法が掲載されていると思います(私も長らくここのフォーラムを見ていますが、アップデートよりも、インストールでつまずく方の方が多い印象です。でもまぁ、簡単インストールなんかも出来るようになってますんで、それももう少なくなっていくのかなーと。)。
もしも、『簡単に』というのが技術的な問題であるなら、むしろ「アップデートが上手く出来ない」という旨のスレッドを立ててみると良いかも知れません(ただし
動作環境をしっかり書いて下さい。今回、回答がつきにくかったのは、環境や状況がほとんど不明だったのもあると思うのです)。きっとその方が建設的ですし、GoogleMapの問題を抜きにしても、確実に貴方が管理しているホームページに有益だと思います。(^^
少なくとも、オープンソースのCMSを使おうとお考えになるくらいなので、ごくごく一般的な企業のホームページ担当者さんより、知識や技術をお持ちだと思います。普通にアップデートできると思います。
引用:
より多くの企業やWEB制作関係者に「baserCMS」を利用しないように
この辺りは、その企業の担当者さんの好みや、ホームページの目的、制作の予算なんかで判断されるところで、その企業のニーズにあったCMSが他にあれば、それが選ばれてるのが現状だと思います。baserCMSの関係者の方でも、必要に応じて使い分けてるはずで、まぁ、それがクライアントさんの為にもなるのだと思います。
それと、最後になっちゃいましたが(すみません、これが本題です・・・)、1.6系統をお使いの場合でも、gmaps.phpを現行のbc_gmaps.phpと比較して、数行の差分を反映すれば動くと思います。具体的には、
/baser/controllers/components/gmaps.php
を以下の内容で上書きすればイケると思います。(ただし、バックアップをとってから作業して下さい。いかんせん、環境や細かいバージョンが分かりませんので、確認のしようもなく。)
<?php
/* SVN FILE: $Id$ */
/**
* GoogleMap コンポーネント
*
* PHP versions 4 and 5
*
* BaserCMS : Based Website Development Project <http://basercms.net>
* Copyright 2008 - 2011, Catchup, Inc.
* 9-5 nagao 3-chome, fukuoka-shi
* fukuoka, Japan 814-0123
*
* @copyright Copyright 2008 - 2011, Catchup, Inc.
* @link http://basercms.net BaserCMS Project
* @package cake
* @subpackage cake.app.controllers.components
* @since Baser v 0.1.0
* @version $Revision$
* @modifiedby $LastChangedBy$
* @lastmodified $Date$
* @license http://basercms.net/license/index.html
*/
/**
* defines
*/
define('MAPS_HOST', 'maps.googleapis.com');
/**
* GoogleMap コンポーネント
*
* @package cake
* @subpackage cake.app.controllers.components
*/
class GmapsComponent extends Object {
/**
* Latitude
*
* @var double
*/
var $_latitude;
/**
* Longitude
*
* @var double
*/
var $_longitude;
/**
* Address
*
* @var string
*/
var $_address;
/**
* Country name
*
* @var string
*/
var $_countryName;
/**
* Country name code
*
* @var string
*/
var $_countryNameCode;
/**
* Administrative area name
*
* @var string
*/
var $_administrativeAreaName;
/**
* Postal Code
*
* @var string
*/
var $_postalCode;
/**
* Base Url
*
* @var string
*/
var $_baseUrl;
/**
* Construct
*/
function __construct () {
$this->_baseUrl= "http://" . MAPS_HOST . "/maps/api/geocode/xml?";
}
/**
* getInfoLocation
*
* @param string $address
* @param string $city
* @param string $state
* @return boolean
*/
function getInfoLocation ($address) {
if (!empty($address)) {
return $this->_connect($address);
}
return false;
}
/**
* connect to Google Maps
*
* @param string $param
* @return boolean
*/
function _connect($param) {
$request_url = $this->_baseUrl . "sensor=false&language=ja&address=" . urlencode($param);
App::import('Xml');
$Xml = new Xml($request_url);
$xmlArray = Set::reverse($Xml);
$xml = $xmlArray['GeocodeResponse'];
if (! empty($xml['Result'])) {
if(!isset($xml['Result']['Geometry']['Location'])) {
return false;
}
$point= $xml['Result']['Geometry']['Location'];
if (! empty($point)) {
$this->_latitude = $point['lat'];
$this->_longitude = $point['lng'];
}
/*
$this->_address= $xml['Response']['Placemark']['address'];
if(isset($xml['Response']['Placemark']['AddressDetails'])) {
$this->_countryName= $xml['Response']['Placemark']['AddressDetails']['Country']['CountryName'];
$this->_countryNameCode= $xml['Response']['Placemark']['AddressDetails']['Country']['CountryNameCode'];
if(!empty($xml['Response']['Placemark']['AddressDetails']['Country']['AdministrativeArea']['AdministrativeAreaName'])) {
$this->_administrativeAreaName= $xml['Response']['Placemark']['AddressDetails']['Country']['AdministrativeArea']['AdministrativeAreaName'];
}
if(!empty($xml['Response']['Placemark']['AddressDetails']['Country']['AdministrativeArea'])) {
$administrativeArea= $xml['Response']['Placemark']['AddressDetails']['Country']['AdministrativeArea'];
}
}
if (!empty($administrativeArea['SubAdministrativeArea']['Locality']['PostalCode']['PostalCodeNumber'])) {
$this->_postalCode= $administrativeArea['SubAdministrativeArea']['Locality']['PostalCode']['PostalCodeNumber'];
} elseif (!empty($administrativeArea['Locality']['PostalCode']['PostalCodeNumber'])) {
$this->_postalCode= $administrativeArea['Locality']['PostalCode']['PostalCodeNumber'];
}
*/
return true;
} else {
return false;
}
}
/**
* get the Postal Code
*
* @return string
*/
/*function getPostalCode () {
return $this->_postalCode;
}*/
/**
* get the Address
*
* @return string
*/
/*function getAddress () {
return $this->_address;
}*/
/**
* get the Country name
*
* @return string
*/
/*function getCountryName () {
return $this->_countryName;
}*/
/**
* get the Country name code
*
* @return string
*/
/*function getCountryNameCode () {
return $this->_countryNameCode;
}*/
/**
* get the Administrative area name
*
* @return string
*/
/*function getAdministrativeAreaName () {
return $this->_administrativeAreaName;
}*/
/**
* get the Latitude coordinate
*
* @return double
*/
function getLatitude () {
return $this->_latitude;
}
/**
* get the Longitude coordinate
*
* @return double
*/
function getLongitude () {
return $this->_longitude;
}
}
?>
どうでしょうか。お試し下さい。