2009/06/19 by マッチー
僕はポケットリファレンスシリーズが使い勝手がいいと思っているので、仕事中にもPHPやらCakePHPやらjavascriptやらのポケットリファレンスを何かと開いているのだけど、javascriptのポケットリファレンスを読んでいたら、486ページにこんなことが書いてあった。
sosObj.setAttributeNS("suzumiya", "haruhi",17)
sosObjのsuzumiya:haruhi属性の値を17にする。
ちなみに486ページは属性の作成や追加について
続きを読む
embed要素のwidthとかheightがjavascriptでうまく書き換えられないとか言ってたけど、そんなことなかった。
setAttributeってやつを使って属性を変更してやれば、ちゃんとできる。
var tags = document.getElementsByTagName('embed');
for(var i = 0; i < tags.length; i++) {
var tag = tags[i];
tag.setAttribute
続きを読む
2009/06/17 by マッチー
自分のサイトに動画を埋め込みたいって思ったときに、例えばyoutubeの動画を埋め込む場合、動画の右側にある埋め込み用のタグをそのままコピペすれば埋め込める。
このとき、youtubeだったら動画のサイズはwidthが425でheightが344になっている。これをもう少し小さいサイズで自分のサイトに埋め込みたいとなったら、てっとり早いのは自分でこのサイズを書き換えてDBに保存するなりなんなりすればいいのだろうけど、ユーザビリティを考えると、いつでもそうするってわけにもいかない。
javas
続きを読む
2009/06/16 by マッチー
フォームヘルパーのチェックボックスメソッドを使うと、言うまでもなくチェックボックスをページ内に設置することができる。
cakeのヘルパーは何かと便利で、余計なことをしなければ勝手に値を保持してくれたり自動的にhidden要素を作ってくれたりするのだけど、この自動的にhidden要素を作ってくれるおかげで、新規登録のときは問題なくても、編集のときにうまいことアップデートが行われなくてちょっと困った。
SQL文を見ても、編集画面でチェックボックスの欄に何の手も加えないでアップデートを行った場合、
続きを読む
2009/06/12 by マッチー
ちょっと前に、renderElementを使うとelementsフォルダに入っているファイルをview内で読み込めるようなことを書いた。それについて一つ知ったことがあったので、メモ。
// index.ctp
<?php foreach($data as $val) : ?>
<?php echo $this->renderElement('program') ?>
<?php endforeach ?>
// program.c
続きを読む
javascriptで、ページを読み込んだときにイベントを起こすにはonloadを使えばいいが、特定のエレメントに何かをするのではなくonloadを発生させたいようなときにはどうすればいいか。
<script>
function message() {
alert('ページが開きました');
}
</script>
<body onload="message();">
最初はこんな感じでbodyタグに書けば何とかなるんじゃね?っ
続きを読む
2009/06/09 by マッチー
PHPでファイルやディレクトリの名前を変更したい場合、rename関数を使う。
rename(変更前のファイル名,変更後のファイル名);
このrename関数、何も名前を変えるばかりじゃなく、ファイルの移動なんかの役割も果たしてくれるので、結構便利な関数だと思う。
rename(../tmp/$file, ../img/$file);
$fileはファイル名
みたいに書くと、tmpというフォルダの中にあるファイルがimgフォルダの中に移動する。
画像を投稿できるシス
続きを読む
2009/06/05 by マッチー
CakePHPでプログラムを組んでいるとき、controller内で同じソースを書く場面が何度も出てきていたので、そういうのって共通化して使うことができないのかな~と何度も思ったんですが、やっぱりできるんですね。そりゃできるよね。だってCakePHPだもん。
beforeFilterってのを使うと、それができるらしいです。
function beforeFilter() {
共通で使うソースを書く
}
function add() {
}
function edit(
続きを読む
2009/06/04 by マッチー
CakePHPの中身を見てみると、viewsフォルダの中にelementsというフォルダがある。
この中に適当なctpファイルなどを作っておくと、renderElementでそのファイルを読み込むことができる。ページ内の共通部分などをここで作っておくと、何度も使いまわせるので効率が良くなる。
……と、書いてはみたものの、実はまだあまり活用したことがない部分だったりします。これを知ったときは意外と使う機会が多そうだぞとか思ったんですけどねぇ。
昨日も、Ajaxを使ってエレメントの内容を書き換
続きを読む
2009/06/03 by マッチー
唐突だけれど、今、UserとCategoryがhasAndBelongsToMany(以下HABTM)で関連づいているとする。
この場合、usersテーブルとcategoriesテーブルの他に、両者を関連づける結合テーブルというのが別に必要になる。この結合テーブルには、インデックスとなるidの他に、user_idとcategory_idのカラムを用意してやる必要がある。
ちなみにCakePHPの命名規約に従うなら、結合テーブルには結合する二つのテーブルの名前(複数形)をアンダーバーでつなげた
続きを読む