2014年1月22日水曜日

[cakephp 2.4] Htmlヘルパーのパンくずリスト

HtmlHelper::getCrumbList($options, $startText);
スタートテキストのリンク先がルートの時は
で良いのだが、リンク先がルートではなく違うURLにしたい時以下のようにする。

2013年10月15日火曜日

[cakephp] ファイルをダウンロードする

file_get_contentsを使う場合 cakephp 1.3 MediaView を使う場合 cakephp 2.X MediaView を使う場合 viewがviewClassとなる しかし2.3で撤廃となっているので2.4以降は次のCakeResponse::downloadを使う cakephp 2.4 以降であれば

2013年10月1日火曜日

[iOS] iAdのサイズ

iAdのサイズ
iPhoneが縦向きの時は 320×50 points
iPhoneが横向きの時は 480×32 points
iPadが縦向きの時は 768×66 points
iPadが横向きの時は 1024×66 points

[cakephp] PaginatorHelper::conter()の$options['format']の和訳

以下の文をapp/locale/jpn/LC_MESSAGES/default.poに記述する 1.3の場合 2.xの場合

2013年9月26日木曜日

[cakephp] デバッグレベルが0でもエラーログを取る

以下をbootstrap.phpに書く

2013年9月25日水曜日

[cakephp] リダイレクトするview

2013年9月13日金曜日

さくらインターネットで複数のバージョンのPHPを使う。

もしくは、拡張子が.htmlのままPHPのスクリプトを実行させる
最近はphpが5.3以上というフレームワークやwebアプリが増えてきたのでとうとう
さくらインターネットのphpの標準が5.2から5.4になった。
しかし、まだphp5.2でしか動かない古いwebアプリが残っていてphp5.4にすると
そのサイトはワーニングを出すようになってしまった。
せっかくphpが5.4になったのに古いwebアプリの為にダウングレードするのは
大変残念なので、古いwebアプリだけ古いphpを使うようにしてみた。

コマンドラインでの作業になりますので十分注意をすること。
sshで自分のサーバーにログインします。
windowsならputtyとかPoderosaとか、
Macならcodaとかターミナルから
ssh <自分のアカウント>@<自分のアカウント>.sakura.ne.jp
と打ち込めばログインできます。

5.2.17 5.3.27 5.4.17 が表示された。それぞれphpの5.2 5.3 5.4である。
それぞれのディレクトリ下にbinディレクトリがありその下の目的のものがある。
php何とかがいっぱいある。このなかでファイルサイズの小さい物はリンクなので
大きいものを探す。どうやら本体はphp-cgi-mysql5.5のようだ
これをwww/cgi-binにコピーする。

wwwに移動
ディレクトリcgi-binを作る
cgi-binに移動
先ほどlsで確かめたファイルをコピーする
5.3なら/usr/local/5.3.27/bin/php-cgi-mysql5.5

webサイトのrootの.htaccessに
の2行を追加する。

.htaccessが無ければ作って保存する。

OSのバージョンが変わったらphp52.cgiを作り直す
そうしないと「Internal Server Error」が出ます。
AddHandler php52-script .php .html
とすると、拡張子が.htmlのままPHPのスクリプトを実行させる時にも使えます。

マルチドメインの場合はフォルダーの下にcgi-binを作り
同じようにコピーして.htaccessを置きます。

2013年6月7日金曜日

[cakphp] 特定のカラムのグループごとの最大値が格納されている行

特定のカラムのグループごとの最大値が格納されている行 「物品ごとに最高値を付けている業者 (複数可) は?」 MySQLのドキュメントによると次のようになる。 これをcakephp風に書き直すと以下のようになる。

2013年4月4日木曜日

[cakphp 1.3] XMLをを出力する単純な例

  1. 拡張子でリソースの種類を判断できるよう、「{app}/config/routes.php」に Router::parseExtensions()を追加します。
  2. xml用のデフォルトレイアウトビューファイル「{app}/views/layouts/xml/default.ctp」を追加します。
  3. cake bake project すると、{app}/views/layouts に email,js,json,rss,xmlのフォルダーが 自動的に作成されるので必要はないがzipを展開しただけなら無いので作成が必要。

  4. データをXML出力するためのビューファイル「{app}/views/posts/xml/index.ctp」を作成します。
  5. コントローラーにコンポーネントRequestHandlerを追加します。
  6. function beforeFilter()を追加します。 rssの時にdebug設定が0でないとContent-Typeがtext/htmlになるようなので、 debug設定を0にしてJSONのときのContent-Typeがapplication/jsonになるようにします。 (4.と5.はapp_controller.phpに設定してしまってもよいかもしれません)
  7. function index()にRSS出力するデータをセットします。
CakePHP(1.3)でJSON出力する単純な例を参考にしました。

2013年3月21日木曜日

[cakephp 1.3] RSSを出力する単純な例

  1. 拡張子でリソースの種類を判断できるよう、「{app}/config/routes.php」に Router::parseExtensions()を追加します。
  2. RSS用のデフォルトレイアウトビューファイル「{app}/views/layouts/rss/default.ctp」を追加します。
  3. cake bake project すると、{app}/views/layouts に email,js,json,rss,xmlのフォルダーが 自動的に作成されるので必要はないがzipを展開しただけなら無いので作成が必要。

  4. データをRSS出力するためのビューファイル「{app}/views/posts/rss/index.ctp」を作成します。
  5. コントローラーにコンポーネントRequestHandlerを追加します。
  6. function beforeFilter()を追加します。 rssの時にdebug設定が0でないとContent-Typeがtext/htmlになるようなので、 debug設定を0にしてJSONのときのContent-Typeがapplication/jsonになるようにします。 (4.と5.はapp_controller.phpに設定してしまってもよいかもしれません)
  7. function index()にRSS出力するデータをセットします。
CakePHP(1.3)でJSON出力する単純な例を参考にしました。