Posted on

入力された情報が前回値と変わっている場合に、入力文字を変更(赤く)する方法

cakephp入力フォームで、前回と変更になった入力値は入力文字を変更(赤く)して表示したい場合のサンプルです。
前提条件
前回入力した値と今回入力する値は別で情報を管理します。
その上で、前回と今回の差がわかる状態で判断します。
モデルはSampleを使用します。

続きを読む 入力された情報が前回値と変わっている場合に、入力文字を変更(赤く)する方法

Posted on

CakePHP PaginateのソートでJOINしたテーブルのカラムを指定する

PaginateのソートでJOINしたテーブルのカラムを指定・・・

動かない・・・なぜだろうと調べてみたのでメモ
testsテーブル(id, name)
test_detailsテーブル(id, test_id, name)
があったとします。
echo $paginator->sort('氏名', 'TestDetail.name');
では動きません。
SQLエラー防止の為に親テーブルにないカラムは無視するようです。
http://xxxx/sort:column/direction:ascで適当なカラムを指定できるので
ではどうするのか・・・

続きを読む CakePHP PaginateのソートでJOINしたテーブルのカラムを指定する

Posted on

CakePHPでinputの名前で5層に対応する

CakePHPで配列で指定したinputに$this->dataが連動してくれる
helperのありがたい機能を使っていたのですが、
<?php echo $form->input(“Part.1.element.1.radio”, array(‘type’=>’text’)); ?>
という感じの5層構造になるとデータの引継ぎをしてくれません。
helperの対応しているのは4層までみたいです。

困ったということで調べてみるのですが、これという記事が見つからないので
自分でカスタマイズして5層でもデータがやり取りできるようにしました。

続きを読む CakePHPでinputの名前で5層に対応する

Posted on

pChartでレーダーチャートを描きました。

グラフを必要とするお仕事があり、JPgraphとpChartを候補にあげました。しかし、JPgraphは、有償なので対象からはずれ、pChartで作成することになりました。

○インストール方法

cakephpで実現しています。
通常はviewsを作成して表示するのですが、
このサンプルでは、controllerで表示するように記述しています。
cakephp\app\vendors\pChartにダウンロードしてきたpChart.1.27d.rarの展開したものをコピーします。
あとは、フォントを利用するので、ipaexg.ttfをcakephp\app\vendors/pChart/Fonts/ipaexg.ttfへ配置します。準備は以上です。
○利用して苦労した点
デフォルトのグラフの色が変えれなかったのですが、
// デフォルトの色を変更する。
$Test->setColorPalette(0,79,129,189);
の記述で変更することができました。

TMP.”graph/”のフォルダを作成して書き込み権限をあたえてください。

radare_1_23_20111003112429.png

続きを読む pChartでレーダーチャートを描きました。

Posted on

CakePHPで複数prefixを使ったときのページネートの挙動を直す

前回はapp/core.phpの

Configure::write('Routing.admin', 'admin');
をコメントアウトすることでページネートのリンクを押した時にリンクエラーになるのを防ぎました。
じゃあ、「公開」「公開(携帯)」「管理」のように3つサイトを分ける時にはどうするの?ということで調べてみました。

続きを読む CakePHPで複数prefixを使ったときのページネートの挙動を直す

Posted on

cakephpのdatabase.phpのprefixを使用しました。

新しいシステムをレンタルサーバーにアップする際に、データベースが1つしか存在せず、新たにデータベースを作ることもできず、すでに他のシステムのテーブルが存在し、データベースが利用されている状態にありました。既存システムと新システムのテーブルを簡単に区別する必要があると思い調べました。単純にテーブル名を変更すると、MVCモデルのファイル名やフォルダ名も変更する必要が出てきます。調べていくうちに、cakephpのdatabase.phpでプレフィックスを指定できることが判明し、’prefix’ => ‘okushin_’,ように定義しました。当然MySQL側でも
mysql> ALTER TABLE 古いテーブル名 RENAME 新しいテーブル名;
のコマンドにてテーブル名をusersからokushin_usersのように新システムに関係するテーブルすべてにokushin_をつけてテーブル名を変更しました。するとMVCモデルでのMのuser.php、Vのフォルダ名users、Cのusers_controller.phpのファイル名フォルダー名はそのままでシステムが正常に動作しました。とても簡単で利用しやすい機能だと思い紹介してみました。
Posted on

selectボックスを変更すると他の複数項目を自動的に変更するAjaxのサンプルソース

CakePHP開発にて、selectボックスの変更イベントで他の項目を自動的に変更するAjaxのサンプルのソースです。modelsとcontrollersの一部のコードにつきましては、割愛させて頂きます。本機能を追加するにあたっては、edit.php,samples_controller.php,ajaxskind.php,ajaxsitem.php,ajaxsmemo.phpのコードを参照して頂き、参考になれば幸いです。

続きを読む selectボックスを変更すると他の複数項目を自動的に変更するAjaxのサンプルソース

Posted on

wdCalendarをCakePHPに組み込んでみる

以前紹介した記事「wdCalendarを日本語で使ってみる」で日本語化したwdCalendarをCakePHPに組み込んでみたので紹介します。

それから少し改造ということで、登録できるフィールドを追加してみるのと、ログインした人のidを基に誰が登録した予定なのかを持たせるようにしました。

実際の見た目はコチラ

続きを読む wdCalendarをCakePHPに組み込んでみる