Posts tagged japanese

VMware Fusion に Ubuntu をインストール

0

VMware Fusion 2.0 に Ubuntu をインストールしたメモです。

Ubuntu をダウンロード

下記サイトから Ubuntu の CD イメージをダウンロード。今回は ubuntu-ja-8.04.1-desktop-i386.iso(CDイメージ)をダウンロードしました。
日本語ローカライズドDesktop CDのダウンロード | Ubuntu Japanese Team

VMware Fusion へインストール

今回は CD イメージを使用するので「ディスクを使用せずに続行」をクリック

(続きを読む…)

[symfony] askeet はやめます

1

今日 askeet の6日目をやっていたのですが、askeet はとりあえずやめることにしました。

6日目はバリデーションの実装なのですが、どうも symfony1.1 からバリデーションの実装方法が結構変わっているようです。

validate ディレクトリに yml ファイルでバリデーションを定義してもちっとも有効にならず悩んでいたのですが、下記のような記事を見つけました。
[Think IT] 第3回:フォームフレームワークを使おう! (1/3)
(続きを読む…)

Firefox3 インストール

5

Firefox3 が公開されました。24 時間最多ダウンロードソフトとしての世界記録挑戦ということで貢献するためにも、早速ダウンロードしてインストールしてみました。

Download Day - Japanese

うわさ通り、表示はかなり速くなっているのが体感できます。
あと、ロケーションバーから履歴を検索できるのが便利です。
(続きを読む…)

JpGraph でレーダーチャートを描画する

1

JpGraph でレーダチャートを描画する方法のメモです。

レーダチャート

上記のようなレーダチャートを描画します。
(続きを読む…)

CakePHP cakeError で日本語メッセージを表示できない

0

ビューに直接メッセージを日本語で書けば表示できるのですが、
動的にメッセージを変えたいような場合に、

$params = array( array('message'=>'エラーです') );
$this->cakeError('foo', $params);

とし cakeError に日本語のメッセージをパラメータとして渡しても表示できません。
原因は /cake/libs/error.php のコンストラクタで

$clean = new Sanitize();
$messages = $clean->paranoid($messages, $allow);

となっていて、パラメータをサニタイズしていて半角英数字以外は削除されてしまいます。
ちなみに Sanitize::paranoid メソッドは
/cake/libs/sanitize.php

function paranoid($string, $allowed = array()) {
    $allow = null;
    if (!empty($allowed)) {
        foreach($allowed as $value) {
            $allow .= "\\$value";
        }
    }

    if (is_array($string)) {
        foreach($string as $key => $clean) {
            $cleaned[$key] = preg_replace("/[^{$allow}a-zA-Z0-9]/", "", $clean);        }
    } else {
        $cleaned = preg_replace("/[^{$allow}a-zA-Z0-9]/", "", $string);
    }
    return $cleaned;
}

のようになっています。半角英数字と $allow で許可した文字以外は削除されます。

前回の投稿「cakeError でエラー処理」のように自分で cakeError 処理を書いた場合には /app/error.php でコンストラクタを上書きして問題の部分をコメントアウトすることにより、日本語を表示することができるようになります。

/cake/libs/error.php の __construct メソッドを丸ごと /app/error.php にコピペして
parent::__construct();
$messages = $clean->paranoid($messages, $allow);の2行をコメントアウト

こうすることにより日本語を表示することができるようになりました。

※サニタイズ処理をコメントアウトしていますので、その点は十分に注意が必要です。

Go to Top