2012年 1月 の投稿一覧

CKFinder からKCFinderに乗り換え

WYSIWYGエディタは「CKEditor」 + 「CKFinder」を利用していたが、「KCFinder」というツールを見つけた。

CKFinderは有料だが、KCFinderは無料で利用可なので、早速導入してみた。

インストールはこちらを参考にさせていただきました。
では、早速インストールしてみる。

1.CKEditorをインストール
  (詳細は省略)

2.KCFinderをダウンロード

3.ダウンロードしたKCFinderををサーバーに設置

  CKEditorを doc_root/js/ckeditor に設置しているので、
  KCFinderを doc_root/js/kcfinder に設置する

4.kcfinder/config.php に追記

//    override config setting
$_CONFIG['disabled'] = !CheckAuthentication();
$_CONFIG['uploadURL'] = '/uploads/';
$_CONFIG['uploadDir'] = 'doc_root/uploads/';

//  ユーザー認証
function CheckAuthentication() {
    include 'lib/Admin/Auth.php';
    return AdminAuth::isAuthorized();
}

※【AdminAuth】クラスは自作クラス

5.CKEditorにKCFinderをセットアップ
  ckeditor/config.js を修正

CKEDITOR.editorConfig = function( config )
    ・・・
    config.filebrowserBrowseUrl = '/js/kcfinder/browse.php?type=files';
    config.filebrowserImageBrowseUrl = '/js/kcfinder/browse.php?type=images';
    config.filebrowserFlashBrowseUrl = '/js/kcfinder/browse.php?type=flash';
    config.filebrowserUploadUrl = '/js/kcfinder/upload.php?type=files';
    config.filebrowserImageUploadUrl = '/js/kcfinder/upload.php?type=images';
    config.filebrowserFlashUploadUrl = '/js/kcfinder/upload.php?type=flash';
});

これでインストール完了。

6.実際にアクセスしてみる。

「サーバーブラウザ-」をクリック

あれ?まっしろ、、、

 

原因を調査すると、kcfinder/core/autoload.php に定義されている function __autoload() が正常に動作していない様子。
自分のソースではZendFramework なども使用しているため、__autoload() が上書きされてしまったようだ。

 

7.ということで、再度 kcfinder/config.php に追記

//    __autoloaderが上書きされるので再定義
spl_autoload_register('kcfinderAutoload');
function kcfinderAutoload($class) {
    if ($class == "uploader")
        require "core/uploader.php";
    elseif ($class == "browser")
        require "core/browser.php";
    elseif (file_exists("core/types/$class.php"))
        require "core/types/$class.php";
    elseif (file_exists("lib/class_$class.php"))
        require "lib/class_$class.php";
    elseif (file_exists("lib/helper_$class.php"))
        require "lib/helper_$class.php";
}

再度アクセスする。

めでたく表示されました。

ちなみにファイルのアップロードは、FireFoxやGoogleChromeならドラッグ&ドロップでも行えます。
便利!!

 

「KCFinder」は「CKFinder」と遜色なく使える。

ただし注意点として、KCFinderは以下の条件が必要

  1. WebサーバはApache2
  2. PHP5をApacheのモジュールとしてインストール
    (できればPHPのバージョンは5.3以上)
  3. PHPのGD、ZIPモジュール利用可
  4. IE6なんてサポートしません

 

 

郵便番号検索API

郵便番号検索APIを公開しました。
郵便番号検索と住所検索ができます。

概要

元データは、日本郵便の郵便番号データおよび事業所の個別郵便番号データを使用しています。
毎月1日の早朝に最新データを取り込みDBを更新します。
※日本郵便のサイトでは月末に更新されているようです。

無料で利用できます。
今後、サーバーの負荷状況によってアクセス制限をすることがあるかもしれませんが、今のところは考えていません。
利用される方は、利用規約に同意したとみなします。
 

1.郵便番号検索

リクエストURL

[結果を json で取得したい場合]
http://groovelab.asia/zipcode/address.json

[結果を xml で取得したい場合]
http://groovelab.asia/zipcode/address.xml

リクエストパラメータ

zipcode : 郵便番号
  ※8000001 または 800-0001 としてください。

レスポンスデータ

※文字コードはUTF-8
・リクエスト郵便番号に対応する住所データが存在する場合

項目名 説明
status 'OK' データ取得状態
results array 取得データを格納
results.method 'address' リクエストメソッド
results.type 'json' or 'xml' レスポンスタイプ
results.count '1' 取得したデータ件数
results.address array 取得した住所データを格納
results.address.zipcode ex.) '8100001' リクエストした郵便番号
results.address.ken_id ex.) '40' 都道府県ID
results.address.ken ex.) '福岡県' 都道府県名
results.address.address1 ex.) '福岡市中央区' 住所1
results.address.address2 ex.) '天神' 住所2
results.address.ken_kana ex.) 'フクオカケン' 都道府県名カナ
results.address.address1_kana ex.) 'フクオカシチュウオウク' 住所1カナ
results.address.address2_kana ex.) 'テンジン' 住所2カナ

 

・リクエスト郵便番号に対応する住所データが存在しない場合

項目名 説明
status 'OK' データ取得状態
results array 取得データを格納
results.method 'address' リクエストメソッド
results.type 'json' or 'xml' レスポンスタイプ
results.count '0' 取得したデータ件数
results.address 空配列 取得データがない

サンプルリクエストURL

json で取得したい場合
http://groovelab.asia/zipcode/address.json?zipcode=8000001
または、
http://groovelab.asia/zipcode/address.json?zipcode=800-0001

xml で取得したい場合
http://groovelab.asia/zipcode/address.xml?zipcode=8000001
または、
http://groovelab.asia/zipcode/address.xml?zipcode=800-0001

 

2.住所検索

リクエストURL

[結果を json で取得したい場合]
http://groovelab.asia/zipcode/search.json

[結果を xml で取得したい場合]
http://groovelab.asia/zipcode/search.xml

リクエストパラメータ

keyword : 検索キーワード
start:データ取得オフセット
※1度に取得できるデータ件数は100件まで

レスポンスデータ

※文字コードはUTF-8
・検索キーワードに対応する住所データが存在する場合

項目名 説明
status 'OK' データ取得状態
results array 取得データを格納
results.method 'search' リクエストメソッド
results.type 'json' or 'xml' レスポンスタイプ
results.count ex.) '100' 取得したデータ件数
※総件数ではありません
results.next ex.) '100' 次回取得時にstartパラメータにセットするオフセット値
※0の場合、全データ取得済み
results.address array 取得した住所データを格納
results.address.zipcode ex.) '8100001' リクエストした郵便番号
results.address.ken_id ex.) '40' 都道府県ID
results.address.ken ex.) '福岡県' 都道府県名
results.address.address1 ex.) '福岡市中央区' 住所1
results.address.address2 ex.) '天神' 住所2
results.address.ken_kana ex.) 'フクオカケン' 都道府県名カナ
results.address.address1_kana ex.) 'フクオカシチュウオウク' 住所1カナ
results.address.address2_kana ex.) 'テンジン' 住所2カナ

 

・検索キーワードに対応する住所データが存在しない場合

項目名 説明
status 'OK' データ取得状態
results array 取得データを格納
results.method 'search' リクエストメソッド
results.type 'json' or 'xml' レスポンスタイプ
results.count '0' 取得したデータ件数
results.next '0'  
results.address 空配列 取得データがない

 

サンプルリクエストURL

json で取得したい場合
http://groovelab.asia/zipcode/search.json?keyword=福岡県福岡市

xml で取得したい場合
http://groovelab.asia/zipcode/search.xml?keyword=福岡県福岡市

※results.next が 0でない場合は、リクエストパラメータ start にその値をセットして、
再度検索してください。
例.) results.next が 100 の場合
http://groovelab.asia/zipcode/search.xml?keyword=福岡県福岡市&start=100

利用規約

  • 郵便番号検索APIを利用した時点で当規約に同意したものとみなします。
  • 個人・法人・商用・非商用問わず無料でご利用可能です。
  • 各種コンテンツ等の無断転用を禁じます。
  • 当サイト内のサービスを使用したことによる一切の損害等に対し責任を負いません。
  • 当サイト内のサービスが使用できなくなったことによる一切の損害等に対し責任を負いません。
  • 管理人が不適当と判断した場合、設置・公開を中止していただく場合があります。
  • このページの内容(著作権・免責事項・その他)は変更する場合があります。