Archive for 7月, 2007

ボリショイサーカスに行って来た

1

ボリショイサーカス
相方と1歳半の娘と一緒に横浜文化体育館にボリショイサーカスを見に行ってきました。
私自身サーカスを見るのは初めてでした。
心配だったのは娘が2時間見ていられるかなということでした。
まあ、行く前からぐずってきたら帰ろうというくらいの気持ちで行ったのですが。

娘は最初からなぜかハイテンションで大喜び。笑いながら拍手、手拍子をしていました。
私が手拍子や拍手をしていないのに気がつくと怒るくらいです。
ジャグリングや一輪車は分かりやすいのかもしれないですね。
場つなぎ(?)でピエロが出てきてゴチャゴチャやっているのにはまったく興味なし(スイマセン)

そうこうしているとやはり1歳半の子供。しだいに飽きて来てしまいました。
空中ブランコの途中で飽きてしまったのでロビーに出ると、やはり他にも子供ずれの親たちが何人かいましたね。

その後休憩を挟んでホワイトタイガーの芸を見た後に帰りました。
帰りの車ではぐっすり寝ていたので眠かったのでしょう。

WordPress 携帯閲覧用プラグイン

0

本ブログに携帯閲覧用プラグインをインストールしてみました。
下記のサイトに詳しくインストール方法は書かれています。

WordPress Japan :: 携帯閲覧用プラグイン

非常に簡単でした。
ファイルを2つアップロードして管理画面からプラグインをアクティブ化するだけで携帯から閲覧するのに適したページにしてくれます。

XREA に設置した WordPress で画像のアップロードができない

18

前の投稿で初めて画像をアップロードしました。
そのときに、なかなか画像のアップロードができなかったので対策メモ。

最初はパーミッションでエラーになった
-> FTP から wp-content ディレクリにパーミッションの設定をした。
再度アップロードすると今度は wp-content 内に uploads ディレクトリがないとエラー。
-> FTP からディレクトリの作成をおこない、パーミッションの設定をして再度アップロードしてみた。
今度はファイルを移動できないとのこと。

ググってみると、XREA の PHP はセーフモードでした。
そのためFTP でディレクトリを作成するとユーザが apache になるために保存できなかったのですね。

そこで下記のようにしました。

  • ローカル側で wp-content 内に uploads ディレクトリを作成
  • そのディレクトリをアップロード
  • FTP で wp-content/uploads ディレクトリに書き込みパーミッションを設定

再度アップロードすると今度はうまく行きました。
他には CGI として PHP を動かす方法もあるようです。

参考サイト
WordPress Japan :: トピックを表示 – XREAでファイルアップロードが出来ない
XREA で WordPress ファイルアップロード機能を利用する – Numb.
PHPをCGIとして動かす方法について – XREA&CORE SUPPORT BOARD

クロックス購入

2

クロックス

クロックスを家族3人で購入。
今まではサンダルといえばビーサンばかりの私でしたが、はやりものに負けました。

私のお気に入りのビーサンといえば葉山のげんげいです。
先日、本も出版されました。

ビーサン屋げんべい物語―葉山の片隅から世界を狙うオンリーワン商店

もちろん発売日にそく購入しました。

クロックスは履き心地がいいですね。
今はジビッツをネットで選んでいるところです。

PEAR::Pager ページ番号を PATH_INFO で渡す

3

ページング処理を行ってくれる PEAR::Pager 、かなり便利です。
通常は
index.php?pageID=2
のようにしてページ番号を渡すのですがこれをPATH_INFO で渡すには下記のようにオプションパラメータを指定します。

$params = array(
...
'path' => 'http://localhost/foo/',
'fileName' => '%d',
'append' => false,
cuurentPage => 現在のページ
);

ポイント

append = false なら fileName の %d にpageID を埋め込む。
currentPage を指定しないと Pager が現在のページが分からない。

fileName

'path' => 'http://localhost/',
'fileName' => 'foo/%d'

なども可能。append=false なら fileName の %d にpageID を埋め込むということ。

現在のページを取得するには

$path_info = explode("/", $_SERVER['PATH_INFO']);
if (isset($path_info[1]) {
    $currentPage = $path_info[1];
} else {
    $currentPage = 1;
}

PATH_INFO が使用できるか

サーバによっては PATH_INFO が使用できない。
使用できるかは $_SERVER["PATH_INFO"] が存在するかどうか。
ただし、http://localhost/index.php では $_SERVER["PATH_INFO"] には値はセットされないので、 http://localhost/index.php/1 などのようにして $_SERVER["PATH_INFO"] が設定されているか調べる。

PEAR::Page マニュアル

Firefox テキストエリアを外部エディタで編集する

1

今まではブラウザで textarea を入力するときに秀丸などを立ち上げて、秀丸で文章を作成してそれをコピペしたりしていた。
Firefox の拡張機能「mozex」を使用すると、外部のエディタでテキストエリアを編集することができるということで導入してみた。

インストール

http://www.cas.cmc.osaka-u.ac.jp/~paoon/OriginalDoc/
上記よりインストール

設定

ツール->アドオン から mozex 選択

General タグ

Directory for temporary files にテンポラリディレクトリを指定
例)C:\WINDOWS\Temp
[Browse]ボタンで選択するのが簡単。

Textarea タグ

Edit textbox in UTF-8 にチェック
Text Editor
例)"C:\Program Files\Hidemaru\Hidemaru.exe" /fu8 %t
使用する外部のテキストエディタを[Browse]ボタンで選択
スペースが入っているディレクトリはエラーになるので “” で囲む。
[Browse]ボタンだと勝手にやってくれる。
/fu8 が UTF-8 で秀丸を開く起動オプション
%t は テキストエディタが使用するテンポラリファイル

HotKey を選択して Ctrl+E とキー入力すると Ctrl+E で起動できる。お好みで。

Firefox を再起動

念のため

気になった点

設定項目が勝手に書き換わっていたことがあったのでうまく動作しない場合は確認してみるとよいかも

使い方

textare で右クリック mozex->Edit Textarea で設定したエディタが起動
または、HotKey を設定しておけば設定したキーで起動する。ただし textarea が複数ある場合は選択画面が表示される。

エディタで編集して保存を押し、textareaをクリックすると保存した内容で更新される。
または、エディタは終了すると textarea が更新される。

CakePHP コントローラのメソッドをURLから実行させない

0

コントローラにアクション以外のメソッドを書かないのが一番いいのかもしれません。
ただ、どうしても書きたいという場合にはメソッド名にアンダーバー “_” を付けるとURLからアクセスできなくなります。

試しに posts_controller.php_foo というメソッド名を作り /posts/_foo/ にアクセスしてみると
Private Method in PostsController
You are seeing this error because the private class method _foo should not be accessed directly.

とプライベートメソッドなのでアクセスできませんよというエラーメッセージが出力されました。

しかしこのメッセージってあまりよくないのではと思い、試しに DEBUG=0 とデバッグモードを本番環境用にしたところ、

Not found
The requested address posts/_foo/ was not found on this server.

となりました。やはり考えてますよねそれくらい。

ちなみにエラーメッセージは
/cake/libs/view/templates/errors/
にエラーの種類によって15のテンプレートが用意されています。
自分で Not found などのエラーを修正したい場合は
/cake/libs/view/templates/errors/error404.thtml

/app/views/errors/error404.thtml
にコピーして修正すればそちらのテンプレートが使用されます。

CakePHP の日本語マニュアルに書かれている

メンバ関数を protected にして見えるようにするには、コントローラアクション名を ‘-’ ではじめてください。(訳注:将来の仕様???)
メンバ関数を private にするためには、コントローラアクション名を ‘–’ ではじめてください。(訳注:将来の仕様???)

というのはこれのことなのかな?
ただ、”_” ではなく “-” になっている。(英語のマニュアルも同様に “-” でした。)

CakePHP 日本語マニュアル
C.4. コントローラ(Controllers)

CakePHP マニュアル(英語)
CakePHP Manual

CakePHP htmlヘルパーでラジオボタンを離れた場所に分けて書く方法

1

html ヘルパーでラジオボタンを書く場合
<?php echo $html->radio('Model/field', array('1'=>'option1','2'=>'option2', '3'=>'option3')); ?>
のように書くと、ラジオボタンを横に並べて表示させることができます。

ただ、デザインによってはテーブルなどを使用していたり縦に並べたりして、ひとつづつ表示させたいときもあると思います。

その場合は

<?php echo $html->radio('Model/field', array('1'=>'option1')); ?>
<?php echo $html->radio('Model/field', array('2'=>'option2')); ?>
<?php echo $html->radio('Model/field', array('3'=>'option3')); ?>

とすれば、それぞれのボタンを希望の位置に表示させることができます。

CakePHP html ヘルパーでラジオボタンの選択状態 (checked) を指定する方法

1

html ヘルパーを使用してラジオボタンの選択状態 (checked) を指定する方法です。

下記のようにすると option2 にチェックがつきます。
<?php echo $html->radio('Model/field', array('1'=>'option1','2'=>'option2', '3'=>'option3'), null, array('value'=>'2'), false); ?>

第4パラメータの array(‘value’=>’2′) でチェックするボタンを指定しています。
キーの ‘value’ は固定で、値の’2′ の方をチェックしたいラジオボタンの value 属性の値と同じものを指定すれば、そのボタンがチェックされます。

デフォルトや以前入力された状態を表示するために使用できそうです。

CakePHP html ヘルパーでラジオボタンを表示する

0

htmlヘルパーで radio ボタンを表示させるには下記のようにします。
下記の例では3つのラジオボタンを表示しています。
<?php echo $html->radio('Model/field', array('1'=>'option1','2'=>'option2', '3'=>'option3'), ' | ', array('onchange'=>'alert(this.value)'), false); ?>

表示される HTML は下記のようになります。
(実際には1行で出力されますが改行を入れています)

<input type="radio" name="data[Model][field]" id="field_1" onchange="alert(this.value)" value="1"  />option1 |
<input type="radio" name="data[Model][field]" id="field_2" onchange="alert(this.value)" value="2"  />option2 |
<input type="radio" name="data[Model][field]" id="field_3" onchange="alert(this.value)" value="3"  />option3 |

radio メソッド
string radio(string $fieldName, arrray $options [,string $inbetween=null [,array $htmlAttributes=array() [,bool $return=false ]]])

$fieldName
name属性の値
$option
array(‘value’=>’表示名’);
value は value=”value” になり、表示名はラジオボタンの後ろに表示される文字名
$inbetween
ラジオボタンの間に表示される文字列
$htmlAttributes
html の属性 array(‘属性名’=>’値’)で指定する
$return
ヘルパーの自動出力を抑止する(参考:ヘルパーの出力を echo を使わずに出力する方法)
Go to Top