Archive for 7月, 2007
ボリショイサーカスに行って来た
1
相方と1歳半の娘と一緒に横浜文化体育館にボリショイサーカスを見に行ってきました。
私自身サーカスを見るのは初めてでした。
心配だったのは娘が2時間見ていられるかなということでした。
まあ、行く前からぐずってきたら帰ろうというくらいの気持ちで行ったのですが。
娘は最初からなぜかハイテンションで大喜び。笑いながら拍手、手拍子をしていました。
私が手拍子や拍手をしていないのに気がつくと怒るくらいです。
ジャグリングや一輪車は分かりやすいのかもしれないですね。
場つなぎ(?)でピエロが出てきてゴチャゴチャやっているのにはまったく興味なし(スイマセン)
そうこうしているとやはり1歳半の子供。しだいに飽きて来てしまいました。
空中ブランコの途中で飽きてしまったのでロビーに出ると、やはり他にも子供ずれの親たちが何人かいましたね。
その後休憩を挟んでホワイトタイガーの芸を見た後に帰りました。
帰りの車ではぐっすり寝ていたので眠かったのでしょう。
WordPress 携帯閲覧用プラグイン
0本ブログに携帯閲覧用プラグインをインストールしてみました。
下記のサイトに詳しくインストール方法は書かれています。
非常に簡単でした。
ファイルを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"] が設定されているか調べる。
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ヘルパーでラジオボタンを離れた場所に分けて書く方法
1html ヘルパーでラジオボタンを書く場合
<?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) を指定する方法
1html ヘルパーを使用してラジオボタンの選択状態 (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 ヘルパーでラジオボタンを表示する
0htmlヘルパーで 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 を使わずに出力する方法)