CakePHP2009/06/25マッチー
$this->render('/elements/calender'); こういう書き方をすると、elementsの中にあるテンプレートをレンダリングしてくれる。 今日、ポップアップウインドウでカレンダーを表示させる機能を作っていたんですけど、カレンダーのテンプレートはどのページから呼んでも同じだから、こんなようなことができないかなと思って調べてみたら、やっぱりありました。そりゃあるよね。これくらいの機能なら。 別に分かりにくい機能とかではないけれど、これから先もきっとこいつCakePHP2009/06/24マッチー
通常、DBの設計の際には、照合順序をUTF-8にしておけば何の問題もないと思っていたのだが、CPIというレンタルサーバのDBを扱う際、照合順序も全部ちゃんとUTF-8にしているのに、文字化けが直らないという問題が発生した。原因が全く分からずに、かなりの時間、悪戦苦闘した。正確にいうと、悪戦苦闘していたのは僕じゃなくて先輩プログラマーのヅヤさんがですけど。 で、原因を調べているうちに我流天性さんというサイトに行き当たり、その解決法も書いてあったので参考にさせてもらった。 どうやらあそこは、文字CakePHP2009/06/23マッチー
つい先日、フォームヘルパーを使ってチェックボックスを作ったのだけど、どうやらlabelの指定ができないっぽく、書き方としてはこんな感じになってしまった。 <?php echo $form->checkbox('check') ?><label for="Check">チェックボックス</label> なので、ラジオボタンも同じ感じなのかなぁと思っていたら、実はそんなことなかったんですね。 <?php echo $form->2009/06/19マッチー
僕はポケットリファレンスシリーズが使い勝手がいいと思っているので、仕事中にもPHPやらCakePHPやらjavascriptやらのポケットリファレンスを何かと開いているのだけど、javascriptのポケットリファレンスを読んでいたら、486ページにこんなことが書いてあった。 sosObj.setAttributeNS("suzumiya", "haruhi",17) sosObjのsuzumiya:haruhi属性の値を17にする。 ちなみに486ページは属性の作成や追加についてJavaScript2009/06/18マッチー
embed要素のwidthとかheightがjavascriptでうまく書き換えられないとか言ってたけど、そんなことなかった。 setAttributeってやつを使って属性を変更してやれば、ちゃんとできる。 var tags = document.getElementsByTagName('embed'); for(var i = 0; i < tags.length; i++) { var tag = tags[i]; tag.setAttributePHP2009/06/17マッチー
自分のサイトに動画を埋め込みたいって思ったときに、例えばyoutubeの動画を埋め込む場合、動画の右側にある埋め込み用のタグをそのままコピペすれば埋め込める。 このとき、youtubeだったら動画のサイズはwidthが425でheightが344になっている。これをもう少し小さいサイズで自分のサイトに埋め込みたいとなったら、てっとり早いのは自分でこのサイズを書き換えてDBに保存するなりなんなりすればいいのだろうけど、ユーザビリティを考えると、いつでもそうするってわけにもいかない。 javasCakePHP2009/06/16マッチー
フォームヘルパーのチェックボックスメソッドを使うと、言うまでもなくチェックボックスをページ内に設置することができる。 cakeのヘルパーは何かと便利で、余計なことをしなければ勝手に値を保持してくれたり自動的にhidden要素を作ってくれたりするのだけど、この自動的にhidden要素を作ってくれるおかげで、新規登録のときは問題なくても、編集のときにうまいことアップデートが行われなくてちょっと困った。 SQL文を見ても、編集画面でチェックボックスの欄に何の手も加えないでアップデートを行った場合、CakePHP2009/06/12マッチー
ちょっと前に、renderElementを使うとelementsフォルダに入っているファイルをview内で読み込めるようなことを書いた。それについて一つ知ったことがあったので、メモ。 // index.ctp <?php foreach($data as $val) : ?> <?php echo $this->renderElement('program') ?> <?php endforeach ?> // program.cJavaScript2009/06/10マッチー
javascriptで、ページを読み込んだときにイベントを起こすにはonloadを使えばいいが、特定のエレメントに何かをするのではなくonloadを発生させたいようなときにはどうすればいいか。 <script> function message() { alert('ページが開きました'); } </script> <body onload="message();"> 最初はこんな感じでbodyタグに書けば何とかなるんじゃね?っPHP2009/06/09マッチー
PHPでファイルやディレクトリの名前を変更したい場合、rename関数を使う。 rename(変更前のファイル名,変更後のファイル名); このrename関数、何も名前を変えるばかりじゃなく、ファイルの移動なんかの役割も果たしてくれるので、結構便利な関数だと思う。 rename(../tmp/$file, ../img/$file); $fileはファイル名 みたいに書くと、tmpというフォルダの中にあるファイルがimgフォルダの中に移動する。 画像を投稿できるシス