App::import('Helper','Html');
$html = new HtmlHelper();
2012年12月17日月曜日
[cakephp 1.3] ヘルパー内でモデルを使う
$event = ClassRegistry::getObject('Event');
$tmp = $event->read('modified', $id);
echo $tmp['Event']['modified'];
こんな感じでClassRegistry::getObject()を使う。
2012年10月23日火曜日
[cakephp 1.3] SecurityComponentを使うとすぐにblackHoleへ吸い込まれる
DatabaseのTable内に存在しないField名を使っていないか
SecurityComponentではTokenを作成する際、DatabaseのTableのFieldを読み込んでHashを作っているようです。なので、それ以外のInput項目を付け加えてしまうとblackHoleへ吸い込まれてしまいます。
項目を付け加える必要がある場合は、以下のようにControllerに設定しておきましょう。
public function beforeFilter() {
$this->Security->disabledFields = array('hoge');
}
$this->Form->create() $this->Form->end() をちゃんと使っているか
SecurityComponentを使うとTokenをチェックしてくれますが、ちゃんとFormHelperを使ってTokenを発行しないことにはblackHoleへ吸い込まれてしまいます。
$this->Form->create() $form->end() を使いましょう。
$this->Form->submit() ではダメです!
2012年10月2日火曜日
[contos] ハードディスクの換装
今接続している250G+250Gを250G+500Gに換装する。
新しいHDは/dev/sdb に接続した。
fdisk /dev/sdb
p
1
基本パーティーションの1とした。
n
シリンダをstart~lastにした。
領域のシステムタイプを8eにする。
Writing physical volume data to disk "/dev/sdb1"
Physical volume "/dev/sdb1" successfully created
PV /dev/sdc1 VG vg_variable lvm2 [232.83 GiB / 0 free]
PV /dev/sda2 VG vg_fujiyama lvm2 [232.34 GiB / 0 free]
PV /dev/sdb1 lvm2 [465.76 GiB]
Total: 3 [930.93 GiB] / in use: 2 [465.17 GiB] / in no VG: 1 [465.76 GiB]
論理グループの作成
# vgextend vg_variable /dev/sdb1
新しいHDは/dev/sdb に接続した。
fdisk /dev/sdb
p
1
基本パーティーションの1とした。
n
シリンダをstart~lastにした。
領域のシステムタイプを8eにする。
物理ボリューム登録
# pvcreate /dev/sdb1Writing physical volume data to disk "/dev/sdb1"
Physical volume "/dev/sdb1" successfully created
# pvscan
PV /dev/sdc1 VG vg_variable lvm2 [232.83 GiB / 0 free]
PV /dev/sda2 VG vg_fujiyama lvm2 [232.34 GiB / 0 free]
PV /dev/sdb1 lvm2 [465.76 GiB]
Total: 3 [930.93 GiB] / in use: 2 [465.17 GiB] / in no VG: 1 [465.76 GiB]
論理グループの作成
# vgextend vg_variable /dev/sdb1
Volume group "vg_variable" successfully extended
# pvscan
PV /dev/sdc1 VG vg_variable lvm2 [232.83 GiB / 0 free]
PV /dev/sdb1 VG vg_variable lvm2 [465.76 GiB / 465.76 GiB free]
PV /dev/sda2 VG vg_fujiyama lvm2 [232.34 GiB / 0 free]
Total: 3 [930.93 GiB] / in use: 3 [930.93 GiB] / in no VG: 0 [0 ]
物理ボリュームコピー
# pvmove /dev/sdc1 /dev/sdb1
# pvmove /dev/sdc1 /dev/sdb1
/dev/sdc1: Moved: 0.1% /dev/sdc1: Moved: 0.2% /dev/sdc1: Moved: 0.4% /dev/sdc1: Moved: 0.5% /dev/sdc1: Moved: 0.6%
OKなので
ディスクを外して再起動
# pvscan Couldn't find device with uuid jgBIQD-tOMR-PKr5-jvU1-YftI-vbGU-a3O6h5. PV unknown device VG vg_variable lvm2 [232.83 GiB / 232.83 GiB free] PV /dev/sdb1 VG vg_variable lvm2 [465.76 GiB / 232.93 GiB free] PV /dev/sda2 VG vg_fujiyama lvm2 [232.34 GiB / 0 free] Total: 3 [930.93 GiB] / in use: 3 [930.93 GiB] / in no VG: 0 [0 ]
しまったpvreduce するのを忘れていた。
# vgreduce vg_variable /dev/sdc1
Couldn't find device with uuid jgBIQD-tOMR-PKr5-jvU1-YftI-vbGU-a3O6h5.
Cannot change VG vg_variable while PVs are missing.
Consider vgreduce --removemissing.
やっぱり駄目だ
# vgreduce vg_variable "unknown device"
Couldn't find device with uuid jgBIQD-tOMR-PKr5-jvU1-YftI-vbGU-a3O6h5.
Cannot change VG vg_variable while PVs are missing.
Consider vgreduce --removemissing.
やっぱりダメ
# vgreduce --removemissing vg_variable
Couldn't find device with uuid jgBIQD-tOMR-PKr5-jvU1-YftI-vbGU-a3O6h5.
Wrote out consistent volume group vg_variable
# pvscan
PV /dev/sdb1 VG vg_variable lvm2 [465.76 GiB / 232.93 GiB free]
PV /dev/sda2 VG vg_fujiyama lvm2 [232.34 GiB / 0 free]
Total: 2 [698.10 GiB] / in use: 2 [698.10 GiB] / in no VG: 0 [0 ]
なおた。
2012年9月28日金曜日
[cakephp] KtaiLibraryを単体で呼び出し
//KtaiLibraryを単体で呼び出し
//
App::import('vendor', 'ecw/lib3gk');
$this->Ktai = Lib3gk::get_instance();
//
App::import('vendor', 'ecw/lib3gk');
$this->Ktai = Lib3gk::get_instance();
2012年9月21日金曜日
[wp] ワードプレスでページIDをJavascript に渡す。
ワードプレスでページIDをJavascript に渡す。
<script type="text/javascript"> var page_id ="<?php echo $post->ID;?>"; </script>
2012年9月5日水曜日
平米、坪の換算方法
1坪 = 3.3057平米ですから、
(平米) = (坪) × 3.3057
(坪) = (平米) ÷ 3.3057
又は、
1平米 = 0.3025坪ですから、
(平米) = (坪) ÷ 0.3025
(坪) = (平米) × 0.3025
(平米) = (坪) × 3.3057
(坪) = (平米) ÷ 3.3057
又は、
1平米 = 0.3025坪ですから、
(平米) = (坪) ÷ 0.3025
(坪) = (平米) × 0.3025
2012年8月3日金曜日
[Google Maps API V3] 情報ウインドウを出すと上が切れる
Google Maps JavaScript API V3で情報ウィンドウをマーカークリック後に表示するのではなく
マーカーと同時に表示すると情報ウィンドウが表示ウィンドウの上に上がってしまい切れてしまう。
最初上記のようにしていたのだが、

このように情報ウィンドウの上が切れてしまっている。
しかし、マウスでマーカーをクリックするとちゃんと情報ウィンドウが欠けずに表示される。
ならば、ちょっとまってからクリックすればいいのかなと思って
setTimeoutを使って見たら上手く行った。
Pタグを外しても上手く行ったのだが、それはそれで困ってしまうので。
マーカーと同時に表示すると情報ウィンドウが表示ウィンドウの上に上がってしまい切れてしまう。
google.maps.event.addDomListener(window, 'load', function() {
var map = new google.maps.Map(document.getElementById('map_canvas'), {
zoom: 12,
center: new google.maps.LatLng(lat, lng),
mapTypeId: google.maps.MapTypeId.ROADMAP
});
var infoWindow = new google.maps.InfoWindow({
maxWidth: 300,
content:'<p>メッセージ</p><p>メッセージ</p><p>メッセージ</p>'
});
var marker1 = new google.maps.Marker({
map: map,
position: new google.maps.LatLng(lat, lng)
});
google.maps.event.addListener(marker1, 'click', function(){
infoWindow.open(map, marker1);
});
google.maps.event.trigger(marker1, 'click');
});
最初上記のようにしていたのだが、

このように情報ウィンドウの上が切れてしまっている。
しかし、マウスでマーカーをクリックするとちゃんと情報ウィンドウが欠けずに表示される。
ならば、ちょっとまってからクリックすればいいのかなと思って
pid = setTimeout(function(){
google.maps.event.trigger(marker1, 'click');
clearTimeout(pid);
},600);
setTimeoutを使って見たら上手く行った。
Pタグを外しても上手く行ったのだが、それはそれで困ってしまうので。
2012年8月2日木曜日
[cakephp] さくらのレンタルサーバーへcakephp 1.3のインストール
さくらのレンタルサーバーにcakephp1.3をインストールする方法
http://ユーザー名.sakura.ne.jp/cake に設置する場合。
wwwと同じ位置にcakephp1.3をcakephpという名前で展開します。
cakephp/app/webrootのhtaccessのRewriteEngine Onの次の行に
RewriteBase /cakeを追加します。
サーバーにsshでログインします。
windowsならばputty等を使い
ユーザー名とコントロールパネルのパスワードでログインできる。
ログインしたら次のコマンドを打ち込んでエンターを押して下さい。
ln -s `pwd`/cakephp/app/webroot `pwd`/www/cake
pwdを囲んでいるのは、バッククォートですのでお間違いなく
(ln -s /home/ユーザー名/cakephp/app/webroot /home/ユーザー名/www/cake)と同じ
www/cakeを独自ドメインのルートに割り当てればRewriteBase行の追加は必要ありません。
http://ユーザー名.sakura.ne.jp/cake に設置する場合。
wwwと同じ位置にcakephp1.3をcakephpという名前で展開します。
cakephp/app/webrootのhtaccessのRewriteEngine Onの次の行に
RewriteBase /cakeを追加します。
サーバーにsshでログインします。
windowsならばputty等を使い
ユーザー名とコントロールパネルのパスワードでログインできる。
ログインしたら次のコマンドを打ち込んでエンターを押して下さい。
ln -s `pwd`/cakephp/app/webroot `pwd`/www/cake
pwdを囲んでいるのは、バッククォートですのでお間違いなく
(ln -s /home/ユーザー名/cakephp/app/webroot /home/ユーザー名/www/cake)と同じ
www/cakeを独自ドメインのルートに割り当てればRewriteBase行の追加は必要ありません。
2012年7月18日水曜日
2012年7月17日火曜日
[cakephp 1.3] 複数あるサブミットボタンのどれが押されたか調査する。
コントローラーに以下のファンクションを追加する。
ビューには
とかを用意して置いて
コントローラーで次のように_getSubmitButtonName()を呼ぶ
ビューには
とかを用意して置いて
コントローラーで次のように_getSubmitButtonName()を呼ぶ
返値をnameでチェックして処理を分ければよい。