CMS(コンテンツマネージメントシステム)というのをご存じだろうか。たとえばmixiみたいなのを手軽に構築しようとするとき、これを使うとすごく便利。有名なCMSの一つにXOOPSというのがあり、かつて私も利用したことがあったが、すごく重かった。XREAの安価なサーバーを使用していたせいもあろうが、重すぎてサーバーが処理しきれないこともあるほどだった。もっとも機能を絞ればそれなりの軽快な動作が可能であったかもしれないが、XOOPSはプラグインが豊富で、しかも機能追加が簡単かつ楽勝だから、ついつい重くしちゃう。……結果、使い物にならずやめてしまった。ところで最近、ちょっとしたことから再びCMSを試す事情があって、今度は反省を生かして軽めのものを探した。そこで、諸サイトの評判から選ばれたものがGeeklog。ガイドブック「Geeklog導入ガイド(写真左)」も出版されて徐々に認知されてきているCMSである。
Geeklogのオフィシャルサイトが、XOOPSとGeeklogを比較していて、インストールの簡単さではXOOPSに軍配をあげているが、そのとおりインストールまでは少しやっかいだった。XOOPSと違って、回答したパッケージを公開領域と非公開領域に分けてアップロードしたり、インストーラらしきものがあまり親切でなくてphpファイルを開けていじらなきゃならなかったり。もしWebプログラミング初心者だったら厳しいんじゃないかなぁ。ともかくも、そんな作業をこなして、データベースにテーブルを作成(この作業はインストーラがやってくれる)したら、インストール作業は終了!XOOPSよりも手間だったが、充分許容範囲かな。
しかし今回Geeklogを選んだ一番の理由はやはり動作の軽さなわけで、早速どんなスピードで表示されるかチェックしてみる。インストールしたてでコンテンツの全くないサイトではあるが、軽い軽い。XOOPSの半分か1/3ぐらいの速さでページが読み込まれる気がする。デフォルトで搭載されている機能も、記事投稿、アンケート、ユーザー管理、リンク集…などXOOPSに遜色ない。しかも素晴らしいことに、携帯からの投稿なども可能らしい。いいね、Geeklog!
ただプラグインの豊富さでは、GeeklogはXOOPSに勝ち目はないらしい。プラグインについては、現時点でも、おそらく2年前に私がXOOPSを使用していたころにすら負けそうである。でもまぁ、プラグインなんてその気になれば自分で開発すればいいわけですから。重いCMSの構造見直して軽くするよりはずっと楽勝でしょう。
そんなことでやっぱり初心者にはXOOPSかなと思いますが(本もいっぱい出てるし)、私としてはGeeklog選んで間違いじゃなかったなと。どんなサイトができてくるかはお楽しみ、請うご期待。慣れないCMSのスクリプト見るのはなかなか骨の折れる作業ですが…でも急いでつくります♪
コメント (9)
はじめまして
不躾ですがg_map.htmlはsenrenja様が作られたのでしょうか?
投稿者: HATANAKA | 2008年09月26日 17:02
日時: 2008年09月26日 17:02
はじめまして。
>不躾ですがg_map.htmlはsenrenja様が作られたのでしょうか?
ええ。私が作りました。
いかがでしたか?
投稿者: senrenja | 2008年09月27日 08:41
日時: 2008年09月27日 08:41
ご返答ありがとう御座います。
シンプルで欲しい機能がありましたので
とても便利に使わせていただいております。
ただ大量のデータを処理してしまうと
500件というGoogleMapAPIの規約に引っかかって
しまうので、もしよろしければソースなど
お借り、もしくは解説いただければ
有り難いと思い思わずBBSを利用させて
もらいました。
それにしてもGoogleMap、Earthはもとより
Googleには凄く便利で面白いものを提供しますね。
投稿者: HATANAKA | 2008年09月27日 10:17
日時: 2008年09月27日 10:17
お褒めいただきありがとうございます。
当該ページのソースコードは自由に
ご利用いただいてかまいません。htmlとjavascriptぐらいしか使用してませんからコピーしてご利用されているサーバーにアップロードすれば動くはずです。
ただしGoogleMapsのAPIキーの箇所だけは書き換える必要があります(↓参照)。
http://code.google.com/intl/ja/apis/maps/signup.html
500件という制限を回避するにはたぶんGoogleのサーバーへの問い合わせを複数回に分けることでクリアできるはずで、私にできる範囲で解説はいたしますが、HATANAKAさんはプログラミングについてどの程度の知識をお持ちなのかお教え願えませんか?
投稿者: senrenja | 2008年09月28日 00:36
日時: 2008年09月28日 00:36
ありがとうございます。
素人に毛が生えた程度です。
APIのキーは取得させていただきました。
JavaScriptは全然判らないので頑張って勉強しようと
思います。
早速今のソースをAPIキーだけ変えてアップロードさせて
頂きました。
http://www.hokkyokusei.com/g_map.html
CSVをアップロードしようとすると
Method Not Allowed
The requested method POST is not allowed for the URL /g_map.html.
というエラーがでてしまいます。
パーミッションの777がサーバーのセキュリティ上使えないので
757でもどうようでしたが.htaccessでtxtの拡張子でもCGIの動作をする
AddType application/x-httpd-php .php .html
記述をいれるとエラーは出なくなりましたが動作はしないようです。
ちなみにLolipopのサーバーを利用させてもらってるのですが
CGIなどの動作は下記のような制限が述べられてました。
http://lolipop.jp/?mode=support&state=faq&state2=cgi
投稿者: HATANAKA | 2008年09月28日 09:35
日時: 2008年09月28日 09:35
すみません。うっかりしてたのですが、htmlとjavascript以外にphpも使用してました。phpで記述された部分は当該ページのソースコードには存在しない(サーバー側で処理された結果のみを返すためです)ので、htmlファイルのヘッダ(<head>~</head>の部分)を次のように書き換えてみてください。
ロリポップは使ったことがなく仕様がわかりません。POSTメソッドはエラー見る限り、デフォルトでは禁止しているんでしょうね。パーミッションの変更と.htaccessの設定でなんとかエラー回避されているみたいですから、下記のとおり書き換えればなんとか動きそうな気がしています^^
わざわざphp使わなくても処理できる(はず)なんですけど、このスクリプトを書いていたときにあんまり時間がなかったもので、つい使い慣れた言語(php)で、csvデータを解析して配列に格納する処理と文字コードの変換処理(shift-jisからutf-8へ)を行ったのでした。ややこしくてすみません。
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>住所検索 By Google Maps Api --- csvファイルから住所を一括検索</title>
<?php
ini_set( 'display_errors', 'off' );
$row=0;
if($_FILES['file']){
setlocale(LC_CTYPE, "ja_JP.SJIS");
$handle=fopen($_FILES['file']['tmp_name'],"r");
while (($data = fgetcsv($handle, 4096, ",")) !== FALSE) {
$num = count($data);
for ($c=0; $c < $num; $c++) {
$address[$row]=mb_convert_encoding($data[0],"utf-8","shift-jis");
$name[$row]=mb_convert_encoding($data[1],"utf-8","shift-jis");
}
$row++;
}
fclose($handle);
setlocale(LC_CTYPE,NULL);
}
?>
<script src="http://maps.google.com/maps?file=api&v=2&key=<ここにGoogleAPIのキー>"
type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
//<![CDATA[
var map = null;
var geocoder = null;
var address = new Array(<? echo $row;?>);
var name = new Array(<? echo $row;?>);
<?php
for($i=0;$i<$row;$i++){
echo "address[".$i."] = \"".$address[$i]."\";\n";
echo "name[".$i."] = \"".$name[$i]."\";\n";
}
?>
// 初期化
// <body onload="load()"> で呼び出し
function load() {
if (GBrowserIsCompatible()) {
map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(35.67431, 139.69082), 13);
for(i=0;i<<? echo $row;?>;i++){
setTimeout('showAddress(' + i + ')',500*i);
}
map.addControl(new GLargeMapControl());
map.addControl(new GMapTypeControl());
map.addControl(new GOverviewMapControl());
map.addControl(new GScaleControl()); }
}
function showAddress(i) {
// GClientGeocoderを初期化
if(i < address.length-1){
document.getElementById("header").innerHTML= i+1 + "件目の住所データを問い合わせしています";
} else {
document.getElementById("header").innerHTML= i+1 +"件の住所検索が終了しました";
}
geocoder = new GClientGeocoder();
if (geocoder) {
geocoder.getLatLng(
address[i],
function(point) {
if (!point) {
document.getElementById("result").innerHTML= document.getElementById("result").innerHTML + (i+1) + '. ' + name[i] + ' '+ address[i] + ':<span style="color:red">検索失敗</span><br />';
} else {
if(i==0){
map.setCenter(point, 13);
}
var pophtml = '<div style="width: 200px; font-size: 12px"><strong>'+name[i]+'</strong><br />'+address[i]+'</div>';
var marker=show_marker(point,pophtml);
map.addOverlay(marker);
document.getElementById("result").innerHTML= document.getElementById("result").innerHTML + (i+1) + '. ' + name[i] + ' '+ address[i] + '<input type="button" value="移動" onClick="map.panTo(new GLatLng' + point + ');"><br />';
}
}
);
}
}
function show_marker(point,pophtml){
var marker = new GMarker(point);
GEvent.addListener(marker, "click", function() {
marker.openInfoWindowHtml(pophtml);
});
return marker;
}
//]]>
</script>
</head>
投稿者: senrenja | 2008年09月28日 17:01
日時: 2008年09月28日 17:01
うぉ!ありがとうございます!
表のソース以外にPerlかなあ?
っと思ってたのですが・・・
phpとか色々ありますね~
本当にありがとうございます。
いま、ソースを拝見させていただいております。
クレクレ坊、オシエテ君となって
非常にお恥ずかしいのですが
助かります。
ソースを元に勉強させてもらいますね~
投稿者: HATANAKA | 2008年09月28日 21:41
日時: 2008年09月28日 21:41
どうぞどうぞ。私も先輩の方々のソースから学んできましたし。
phpで記述している部分は、<?php~~~?>および<?~~~?>の箇所です。ご参考までに。
投稿者: senrenja | 2008年09月28日 23:02
日時: 2008年09月28日 23:02
とりあえずそのまんま使わせてもらいました。
http://www.hokkyokusei.com/map.html
現在勉強中ですがわざわざソースを作成していただきありがとうございました。
投稿者: HATANAKA | 2008年09月29日 12:20
日時: 2008年09月29日 12:20