CakePHP 1.3 フォームヘルパーを使ってテキストボックスを表示するときの、横幅の指定方法。
$Form->input(string, array('style'=>'width:100px;'));
'size'=>'8'のように指定できるかと思ったのですがダメでした。
とりあえずCSSで制御できますが、もっと良い方法があれば、追記します。
郵便番号入力フォームの例(フォーム幅を120px、入力文字数を8文字に制限)
$Form->input('zipcode', array('style'=>'width:120px;','maxlength'=>'8'));
2012年1月25日水曜日
2011年10月7日金曜日
IE6、7でリストにfloatを使うとリストマークが表示されない
IE6、7でリストにfloatを設定するとナカグロ(・)が表示されなくなる。
list-styleで設定した行頭文字が表示されなくなるのはIE6、7の仕様らしい。
根本的な解決法はたぶんないと思われるが、それでは納得しないクライアントのために、CSSハックでIE6、7だけは画像で表示する、という方法はどうだろう?
サンプルソース(CSS)
#hoge li {
*background:url('/img/disc.gif') no-repeat 0 5px;
*padding-left:15px;
}
サンプルソース(HTML)
<div id="hoge">
<ul>
<li>hogehoge</li>
<li>fugofugo</li>
</ul>
</div>
list-styleで設定した行頭文字が表示されなくなるのはIE6、7の仕様らしい。
根本的な解決法はたぶんないと思われるが、それでは納得しないクライアントのために、CSSハックでIE6、7だけは画像で表示する、という方法はどうだろう?
サンプルソース(CSS)
#hoge li {
*background:url('/img/disc.gif') no-repeat 0 5px;
*padding-left:15px;
}
サンプルソース(HTML)
<div id="hoge">
<ul>
<li>hogehoge</li>
<li>fugofugo</li>
</ul>
</div>
2011年9月7日水曜日
【IE7】 Internet Explorer 7 64bit版をダウンロードする
InternetExplorer7のフルダウンロードURL(64bit版)
InternetExplorer7 64bit版のインストーラのダウンロードができるページ。
32bit版は「【IE7】 Internet Explorer 7をダウンロードする」からどうぞ。
【IE7】 Internet Explorer 7をダウンロードする
InternetExplorer7のフルダウンロードURL(32bit版)
サイトの動作確認などでIE7が必要な場合、マイクロソフトのページからでは、InternetExplorer7のページから、いつの間にか最新版のページに遷移して、最新版のダウンロードになってしまう。
IE7が必要な場合は、上記URLからダウンロードする。
64bit版は「【IE7】 Internet Explorer 7(64bit版)をダウンロードする」からどうぞ。
2011年9月1日木曜日
z68v Pro NICドライバがインストールできない WS2008R2
マザーボードZ68V ProにはIntel 82579v Gigabit LAN が搭載されていますが、2011.9.1現在、82579v用のドライバをインストールしようとすると、エラーとなります。
同様の症状は、Windows Home Server 2011でも発生しているようです。
いずれも82579LMドライバを入れることで、とりあえず稼働します。
が、当然のことながら、オウンリスクで。
早く正しい方法で動くようになるといいですねえ。
2011年8月29日月曜日
CakePHP ラジオボタンやセレクタが未選択の場合のバリデーションエラー表示
formヘルパーで生成したセレクタが必須項目であった場合、テキストボックスなどと同様にエラー表示がされるのかと思いきやエラー表示がなされない。ラジオボタンでも同様。
selectの場合、これを表示するには、viewファイルに次のように記述する。
<?php
echo $form->error('selectid','エラーメッセージ');
?>
例)都道府県を選択する
■Viewファイル
<?php
echo $form->select('prefid',$pref), null, array('empty' => '選択してください'));
echo $form->error('prefid','メッセージ');
?>
$prefidには各都道府県のリストが配列で格納されているものとする
■modelファイル
var $validate = array(
'prefid' => 'notEmpty',
);
あるいは
var $validate = array(
'prefid' => array(
'rule' => array('notEmpty'),
)
'rule' => array('notEmpty'),
)
);
2011年8月25日木曜日
CakePHP 携帯などでviewとlayoutを切り替える
アクセス元の端末によって表示ファイルを変更したい場合、該当するコントローラファイルで、render()を利用して変更する。
■viewファイルを変更する
$this->render('view');
viewには表示させたいテンプレートファイル名を指定。拡張子は不要。
例)index_mob.ctpを表示させたい場合
$this->render('index_mob');
■layoutファイルを変更する
$this->layoutに指定する。
例)レイアウトファイルをlogin.ctpで表示させたい場合
$this->layout = 'login';
■view、layoutファイルを両方変更する
$this->layoutに指定する。
例)レイアウトファイルをlogin.ctpで表示させたい場合
$this->layout = 'login';
■view、layoutファイルを両方変更する
layoutファイル名をrender()の第二引数にファイル名を指定する。
$this->render('view','layout');
viewには表示させたいテンプレートファイル名、layoutには表示させたいレイアウトファイル名を指定。拡張子は不要。
例)index_mob.ctpをdefault_mob.cptで表示させたい場合
$this->render('index_mob','default_mob');
携帯用、PC用など、常に決まったレイアウトファイルを利用する場合は、毎回記述するのは面倒なので、別の方法で実装するほうが良さげ。
実装したら追記。
2011年8月23日火曜日
CakePHP それぞれのページにlinkタグでCSSを追加する
CakePHPでは、全てのページに読み込むCSSファイルはdefault.ctpファイルに記述すれば良いが、各ページ毎に別指定したCSSファイルを読み込む場合は次のようにする。
default.ctp
hoge.ctp
css('hogehoge', null, array('inline' => false)); ?>
以上で読み込まれるCSSにhogehoge.cssが追加される。
CSSは app/webroot/css/ 内を読み込むので、hogehoge.cssは、 app/webroot/css/hogehoge.css とする必要がある。
2011年8月22日月曜日
CakePHP URLに含まれるパラメータの受け取り方
CakePHPで生成されるURLは、
http://ドメイン.com/コントローラ名/ファンクション名/パラメータ1/パラメータ2・・・
となる。
URLに含まれるパラメータを取得するには、$this->params['pass']とする。
例)
URL
http://hanage.com/hoge/fugo/100/200
hoge_Controller.php
var_dump($this->params['pass']);
結果
array(2) { [0]=> string(3) "100" [1]=> string(3) "200" }
2011年8月10日水曜日
メニューなどのブロックを読み込む Element
CakePHPでテンプレート内にグローバルメニューやヘッダ、フッタといったパーツを読み込む場合は、elementを利用する。
テンプレートファイルに読み込むブロックを指定し、読み込まれるファイルをelementsディレクトリ内に配置する。
ctpファイル(呼び出し元のテンプレート)
<?php echo $this->element('menu'); ?>
ctpファイル(呼び出されるブロック:/app/views/elements/)
menu.ctp
呼び出される側は、コンテンツ部分のhtmlソースだけ記述。
テンプレートファイルに読み込むブロックを指定し、読み込まれるファイルをelementsディレクトリ内に配置する。
ctpファイル(呼び出し元のテンプレート)
<?php echo $this->element('menu'); ?>
ctpファイル(呼び出されるブロック:/app/views/elements/)
menu.ctp
呼び出される側は、コンテンツ部分のhtmlソースだけ記述。
登録:
投稿 (Atom)