cakephpのバージョンを表示する。

type Posted in CakePHP
0

views内のテンプレートに記述するなら
<?
php echo Configure::version()
?>

CakePHPで管理画面と公開画面を切り替えたい場合

type Posted in CakePHP
0

core.phpの

//Configure::write(‘Routing.admin’, ‘admin’);

のコメントアウトを外す、と、

たとえばpostsコントローラ内で

function admin_index(){}

とした場合のURLが

http://TEST.COM/admin/posts/index

となる。

▼CakePHPのcore.phpの設定

http://www.okushin.co.jp/kodanuki_note/2009/05/cakephpcorephp.html

Cakephpのurl内のindex.php2

type Posted in CakePHP, PHP
0

どうも

http://TEST.COM/index.php/posts/edit

とか
/index.php/が出ちゃう。mod_rewrite使えるようにしてるのに。と思ったら
mod_rewriteが使える設定と使えない設定を両方ごっちゃにやってたみたいw

CakePHPでmode_rewriteが使えない場合は、
core.phpの
//Configure::write(‘Routing.admin’, ‘admin’);
のコメントアウトを外して
以下3つの.htaccessを削除もしくはリネームする
/.htaccess
/app/.htaccess
/app/webroot/.htaccess

ということなので
CakePHPでmod_rewriteが使える場合は、
care.phpも3つの.htaccessもデフォルトのままでやれば
/index.php/無しのURLになる。

/index.php/が入る部分の記述は、
/app/webroot/.htaccessの

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

!-dは、ディレクトリが無ければ、
!-fは、ファイルが無ければ、
index.phpへ処理を渡すという指定。
RewriteRuleに合致するファイルやディレクトリが実在する場合は、RewriteRuleを適用しなくなる。
※RewriteCondはRewriteRuleごとに必要。
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
で、/index.php/に関する指定。
webroot直下
/にアクセスすると、/index.php/?以降のファイルを表示する。
rewriteしてるので
/posts/editになるが、
/index.php/posts/editも存在する。



元々のwebroot/index.phpは存在するので

rewrite_ruleは適用されず、

ドメイン/では表示されず、

ドメイン/index.phpで表示される。

Cakephpのurl内のindex.php1

type Posted in CakePHP, PHP
0

適当にチュートリアルをやると

http://TEST.COM/posts/add

とかいうURLが

http://TEST.COM/index.php/posts/add

トいう感じに
/index.php/が必要になる。

mod_rewriteを使っていないとこの/index.php/が出てくるらしい。

core.php

CakePHPの「__」アンダースコア×2関数

type Posted in CakePHP, PHP
0

アンダースコア2つの関数
__();
第1引数:文字列
第2引数:デフォルト値はfalseでecho出力。trueにすると戻り値は返却。
basics.phpに関数定義されている。

__(‘Hello World’);

poファイル(.po)に翻訳を列挙しておくと、その部分が現在の言語設定によってその言語に変換される。自動翻訳ではなく設定通りの翻訳される。

何も設定していなければそのまま文字出力をする。

http://blog.asial.co.jp/377


http://www.multiburst.net/ElectricBrain/2008/08/cakephp12

CakePHPのpaginateをsmartyで使う

type Posted in CakePHP
0

cakephpでpagination with smartyという記事参照。



{if $pagination->setPaging($paging)}
{assign var=”leftArrow” value=”前へ”}
{assign var=”rightArrow” value=”次へ”}

{assign var=”prev” value = $pagination->prevPage($leftArrow,false)}
{if !$prev}{assign var=”prev” value = $leftArrow}{/if}
{assign var=”next” value = $pagination->nextPage($rightArrow,false)}
{if !$next}{assign var=”next” value = $rightArrow}{/if}

{assign var=”pages” value = $pagination->pageNumbers(” | “)}

{$pagination->result(‘条件に合った先生:’, ‘人中’)}人目
({$pagination->resultsPerPage(‘同時表示件数’, ‘ ‘)})
検索結果ページ:{$prev} {$pages} {$next}
{/if}

http://server.typepad.jp/dragonfly/2007/06/cakephppaginati_3fed.html

cakephpでセッションが消える

type Posted in CakePHP
0

セッションを使ってログインを設定したら、うまくいかない。

入力したIDとPASSは合ってるのにログインできなかった。ログインエラーというか、エラーなのかすらわからない。何も起こらない。

間違ったIDとPASSを入れてみると、Validationは有効だった。設定通りにログインエラーと表示される。

入力値が正しいときにうまく動かない。

Sessionが消えていた。

セッションがなんで消えるのか。

CSSが原因だった。

!んなバカな!

画像やCSSで実際に存在しないパスやURLを指定していると鯖にHTTPアクセスを行う。
全て正しいパスを指定するとうまくいく。

が、いちいち修正するのもめんどい。
このアクセスを行うのは、app/webrootの中の.htaccessの
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
だそうなので

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !\.(cgi|css|gif|jp?g|png)$
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
</IfModule>

こんな感じに修正すればいいそうだ。

http://mick.blog16.jp/index.php/main/2008/03/06/cakephp_session_cake_security


http://d.hatena.ne.jp/takuya15/20071109/1194576191

stdClassのエラー

type Posted in CakePHP
0

cakephpでmail関数でsendの際に
Fatal error: Call to undefined method stdClass::send()
が表示された。

オブジェクトを定義していないのに変数を定義してしまうと
クラス名がstdClassとして認識されるらしい。

ほー。で、

$this->Email->send();

のEmailを定義してなかったw

class AppController extends Controller {

var $components = array(‘Email’);

}

ドットコマンド

type Posted in CakePHP, Linux
0

シェルコマンド
ドット(.)
現在のシェルでコマンドを実行する
スクリプトを呼び出したシェルと同じシェルでコマンドの実行が可能。
スクリプトから呼び出したコマンドで環境変数を変更するとその内容は失われてしまうが
(.)ドットコマンドを使えば実行するコマンドの中で
現在の環境を変更できる。
他のコマンドを実行するための環境設定を行うラッパー(あるプログラムの返り値を別のプログラムに渡すためのプログラム)としてスクリプトを作成するのに便利。
スクリプト内でも使用可能。

coreserverのcakeでconsoleを使う

type Posted in CakePHP
0

cd public_html/XXX/cake/cake/console

./cake
すると
./cake: Permission denied
なので
chmod 744 cake
自分に実行許可 他人は書き込み禁止

./cake
すると
Welcome to CakePHP v1.X.X.X Console
以下略