2012年5月8日火曜日
CakePHPで使えないテーブル名
CakePHPでベイク中にエラーが表示された。
内容は次の様なもの。
PHP Parse error: syntax error, unexpected T_LIST, expecting T_STRING in /(中略)/cakephp/app/models/list.php on line 2
Parse error: syntax error, unexpected T_LIST, expecting T_STRING in /(中略)/cakephp/app/models/list.php on line 2
このときベイクしようとしていたのはlistsというテーブルなのだけども、どうやらこのlistsというテーブル名が問題だったらしい。
既に予約されているのかな?
というわけで、問題を引き起こす避けるべきテーブル名を発見次第列挙。
■予約語?
lists
■複数形が特殊なために面倒なテーブル名
aquarium
2012年5月7日月曜日
CS-Cartのオリジナルスキンを追加するディレクトリ
CS-Cartのスキンは、skinsというディレクトリにあるものが表示される。
しかし、このskinsにスキンデータをアップロードしても、管理画面のスキン変更リストには表示されない。
管理画面のスキン変更リストに、オリジナルのスキンを表示させるためには、skinsではなく、/var/skins_repository にスキンデータをアップロードする必要がある。
1./var/skins_repositoryにスキンデータをアップロードする
2.管理画面の[デザイン]-[スキンセレクター]を選択
3.スキンセレクター画面でオリジナルのスキンデータを選択
4.[保存]ボタンを押す
という手順で、/var/skins_repositoryのデータが/skinsにコピーされる。
しかし、このskinsにスキンデータをアップロードしても、管理画面のスキン変更リストには表示されない。
管理画面のスキン変更リストに、オリジナルのスキンを表示させるためには、skinsではなく、/var/skins_repository にスキンデータをアップロードする必要がある。
1./var/skins_repositoryにスキンデータをアップロードする
2.管理画面の[デザイン]-[スキンセレクター]を選択
3.スキンセレクター画面でオリジナルのスキンデータを選択
4.[保存]ボタンを押す
という手順で、/var/skins_repositoryのデータが/skinsにコピーされる。
2012年5月2日水曜日
SSHが使えないサーバでシンボリックリンクを作る
廉価なレンタルサーバの場合、SSHが使えないサービスプランだったりする。
このような場合、PHPを使って、シンボリックリンクを作る。
link.php
<?php
symlink('実体へのフルパス','シンボリックリンクを設置する場所へのフルパス');
このような場合、PHPを使って、シンボリックリンクを作る。
link.php
<?php
symlink('実体へのフルパス','シンボリックリンクを設置する場所へのフルパス');
?>
フルパスで書く必要があるので、不明な場合は
<?php echo __FILE__; ?>
とでもしてフルパスを確認しておく。
SSHは使えないけども、高機能&低価格のサーバ。
予備環境として重宝してる↓
予備環境として重宝してる↓
2012年4月12日木曜日
CakePHP 携帯ライブラリの設置
CakePHP1.3での携帯ライブラリの設置。覚え書き。
https://github.com/MASA-P/KtaiLibrary
https://github.com/MASA-P/ktai-dev
1.ecwディレクトリをまるごとvendorsディレクトリにコピー
※サイト全体にやるならappやcakeと同じディレクトリのvendorsでok。
2.app_controller.phpに追記
3.コンポーネントにktai.phpをつっこむ
/app/controllers/components に ktai.php をコピーする
4.ついでにケータイでのアクセス時のデフォルトレイアウトを変更しておく
https://github.com/MASA-P/KtaiLibrary
https://github.com/MASA-P/ktai-dev
1.ecwディレクトリをまるごとvendorsディレクトリにコピー
※サイト全体にやるならappやcakeと同じディレクトリのvendorsでok。
2.app_controller.phpに追記
var $components = array('Ktai',・・・・);
//----------------------------------------------------------
//Redirect override.
//If iMODE access or use_redirect_session_id is true,
// adding session id to url param.
//----------------------------------------------------------
function __redirect_url($url){
if(isset($this->Ktai)){
if($this->Ktai->_options['enable_ktai_session'] &&
($this->Ktai->_options['use_redirect_session_id'] || $this->Ktai->is_imode())){
if(!is_array($url)){
if(preg_match('|^http[s]?://|', $url)){
return $url;
}
$url = Router::parse($url);
}
if(!isset($url['?'])){
$url['?'] = array();
}
$url['?'][session_name()] = session_id();
}
}
return $url;
}
function redirect($url, $status = null, $exit = true){
return parent::redirect($this->__redirect_url($url), $status, $exit);
}
//「Ktai Library」の設定
//
var $ktai = array(
'enable_ktai_session' => true,
'use_redirect_session_id' => false,
'imode_session_name' => 'csid',
'use_img_emoji' => true,
'input_encoding' => 'UTF-8',//KTAI_ENCODING_UTF8
'output_encoding' => 'UTF-8',//'SJIS-WIN',// KTAI_ENCODING_SJISWIN
'output_auto_encoding' => true,
'use_binary_emoji' => false,
'output_auto_convert_emoji' => false,
);
3.コンポーネントにktai.phpをつっこむ
/app/controllers/components に ktai.php をコピーする
4.ついでにケータイでのアクセス時のデフォルトレイアウトを変更しておく
function beforeFilter(){
if(!($this->Ktai->is_ktai()) ) {
$this->layout = 'default';
} else {
$this->layout = 'default_mob';
}
}
2012年3月27日火曜日
CakePHP いつもはうまくいくのにエラーになるとき見直す項目
CakePHPでサイト構築中、いつもは何も起こらない場所でエラーが発生する場合がある。
大概は、しょーもないミスが原因。でも、しょーもなさすぎると逆にどこでミスしているかわからない。
そんなしょーもないミスをおかすたびに、このコンテンツが増えますよ。
■Missing Database Table
コントローラもビューもDBにテーブルも作った。でも表示されない・・・という症状。
・テーブル名が複数形になっていない
drink → drinks
・複数形が特殊(英語的に)で接続できない
大概は、しょーもないミスが原因。でも、しょーもなさすぎると逆にどこでミスしているかわからない。
そんなしょーもないミスをおかすたびに、このコンテンツが増えますよ。
■Missing Database Table
コントローラもビューもDBにテーブルも作った。でも表示されない・・・という症状。
・テーブル名が複数形になっていない
drink → drinks
・複数形が特殊(英語的に)で接続できない
2012年3月7日水曜日
Windows:キーボードをASCIIに交換したい
ASCII(英語)キーボードを接続したのに、JIS(日本語)キーボードの配列のままだ。これなんとか直したい、という場合の解決方法。
Windowsってのはインストール時にJISキーボードを指定しちゃうと、後でASCIIに変更しようとするとレジストリをいじらなくちゃならない。これ、正直面倒くさい。自分のPCじゃないと作業後に元に戻さなくちゃいけないし。
そこでオススメなのが「キーボード切り替えツール Ver1.1」。
Vista、Windows7にも対応。
キーボード切り替えツール Ver1.1
http://www.posttips.net/aoyama/keyboard/index.html
フリーウェアですが、ウェブページで寄付もできますよ。
Windowsってのはインストール時にJISキーボードを指定しちゃうと、後でASCIIに変更しようとするとレジストリをいじらなくちゃならない。これ、正直面倒くさい。自分のPCじゃないと作業後に元に戻さなくちゃいけないし。
そこでオススメなのが「キーボード切り替えツール Ver1.1」。
Vista、Windows7にも対応。
キーボード切り替えツール Ver1.1
http://www.posttips.net/aoyama/keyboard/index.html
フリーウェアですが、ウェブページで寄付もできますよ。
alt+スペースで日本語/英語入力を切り替えたい
Altキー+スペースキーで入力言語を切り替えたい、という人は多いと思う。
特に
MacとWindowsを両方使っている
ASCII(英語)配列キーボードを使っている
キーボード操作はMac寄り
という方は、文字切替でイライラしていると思う。Alt+~とか面倒すぎる。~が遠いんじゃボケ。などと毒づいていることかと思います。
そこでオススメなのがCmdSpaceというソフト。
Office系ソフトなどで不具合の報告があったりもしますが、Windows7でも使えて快適。
AltだけでなくCtrl+スペースにもできるそうな。
元々、この方が困っていたのを、かつて同僚に相談したところ作ってくれたのだとか。
同僚の方、ステキ。
試してないけど、これ、ASCIIじゃなくてもJISでも相当便利なんじゃないですかね? 半角/英数、遠いんじゃボケ!とかいう人にもオススメじゃねえかなぁ?
特に
MacとWindowsを両方使っている
ASCII(英語)配列キーボードを使っている
キーボード操作はMac寄り
という方は、文字切替でイライラしていると思う。Alt+~とか面倒すぎる。~が遠いんじゃボケ。などと毒づいていることかと思います。
そこでオススメなのがCmdSpaceというソフト。
Office系ソフトなどで不具合の報告があったりもしますが、Windows7でも使えて快適。
AltだけでなくCtrl+スペースにもできるそうな。
元々、この方が困っていたのを、かつて同僚に相談したところ作ってくれたのだとか。
同僚の方、ステキ。
試してないけど、これ、ASCIIじゃなくてもJISでも相当便利なんじゃないですかね? 半角/英数、遠いんじゃボケ!とかいう人にもオススメじゃねえかなぁ?
「URL rewriting is not properly configured on your server.」というエラー。mod_rewriteが原因でない場合
cakephp1.3
インストール後にdefault.ctpをアップしたらこのようなエラー表示がなされた。
URL rewriting is not properly configured on your server.
一般的にこのエラーはmod_rewriteの設定ミスであることが多い。
エラーからはこちらに案内される
http://book.cakephp.org/1.3/view/917/Apache-and-mod_rewrite-and-htaccess
が、しかし、今回はdefault.ctpを入れる前には問題がなかったので、mod_rewrite自体のエラーではない。
結論から言うと、このエラーは「cake.generic.css」が読めていない事が問題。
default.ctpテンプレートでcake.generic.cssを読むように変更したところエラーが表示されなくなった。
実際には、デフォルトのページのままの運用とかはしないと思うので実害はないだろうけども、目を皿のようにして.htaccessをチェックしたあげく、どこも間違っていない・・・と泥沼にハマる前に。
インストール後にdefault.ctpをアップしたらこのようなエラー表示がなされた。
URL rewriting is not properly configured on your server.
一般的にこのエラーはmod_rewriteの設定ミスであることが多い。
エラーからはこちらに案内される
http://book.cakephp.org/1.3/view/917/Apache-and-mod_rewrite-and-htaccess
が、しかし、今回はdefault.ctpを入れる前には問題がなかったので、mod_rewrite自体のエラーではない。
結論から言うと、このエラーは「cake.generic.css」が読めていない事が問題。
default.ctpテンプレートでcake.generic.cssを読むように変更したところエラーが表示されなくなった。
実際には、デフォルトのページのままの運用とかはしないと思うので実害はないだろうけども、目を皿のようにして.htaccessをチェックしたあげく、どこも間違っていない・・・と泥沼にハマる前に。
2012年1月25日水曜日
CakePHP 1.3 テキストボックスの横幅を指定する
CakePHP 1.3 フォームヘルパーを使ってテキストボックスを表示するときの、横幅の指定方法。
$Form->input(string, array('style'=>'width:100px;'));
'size'=>'8'のように指定できるかと思ったのですがダメでした。
とりあえずCSSで制御できますが、もっと良い方法があれば、追記します。
郵便番号入力フォームの例(フォーム幅を120px、入力文字数を8文字に制限)
$Form->input('zipcode', array('style'=>'width:120px;','maxlength'=>'8'));
$Form->input(string, array('style'=>'width:100px;'));
'size'=>'8'のように指定できるかと思ったのですがダメでした。
とりあえずCSSで制御できますが、もっと良い方法があれば、追記します。
郵便番号入力フォームの例(フォーム幅を120px、入力文字数を8文字に制限)
$Form->input('zipcode', array('style'=>'width:120px;','maxlength'=>'8'));
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>
登録:
投稿 (Atom)