CakePHPの最近のブログ記事
CakePHPで配列で指定したinputに$this->dataが連動してくれる
helperのありがたい機能を使っていたのですが、
<?php echo $form->input("Part.1.element.1.radio", array('type'=>'text')); ?>
という感じの5層構造になるとデータの引継ぎをしてくれません。
helperの対応しているのは4層までみたいです。
困ったということで調べてみるのですが、これという記事が見つからないので
自分でカスタマイズして5層でもデータがやり取りできるようにしました。
helperのありがたい機能を使っていたのですが、
<?php echo $form->input("Part.1.element.1.radio", array('type'=>'text')); ?>
という感じの5層構造になるとデータの引継ぎをしてくれません。
helperの対応しているのは4層までみたいです。
困ったということで調べてみるのですが、これという記事が見つからないので
自分でカスタマイズして5層でもデータがやり取りできるようにしました。
CakePHPでinputの名前で5層に対応するの続きを読む
グラフを必要とするお仕事があり、JPgraphとpChartを候補にあげました。しかし、JPgraphは、有償なので対象からはずれ、pChartで作成することになりました。
○インストール方法
TMP."graph/"のフォルダを作成して書き込み権限をあたえてください。
cakephpで実現しています。
通常はviewsを作成して表示するのですが、
このサンプルでは、controllerで表示するように記述しています。
cakephp\app\vendors\pChartにダウンロードしてきたpChart.1.27d.rarの展開したものをコピーします。
通常は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);
の記述で変更することができました。
pChartでレーダーチャートを描きました。の続きを読む
前回はapp/core.phpの
Configure::write('Routing.admin', 'admin');
をコメントアウトすることでページネートのリンクを押した時にリンクエラーになるのを防ぎました。
じゃあ、「公開」「公開(携帯)」「管理」のように3つサイトを分ける時にはどうするの?ということで調べてみました。
formヘルパーでselectに属性を付けるときは
echo $form->input( 'Model.field', array( 'type' => 'select', 'options' => $arr, 'style' => 'color: #ff0000' ) );
option部分だけ属性を付ける時にどうすれば?・・・と思ったのでメモ
新しいシステムをレンタルサーバーにアップする際に、データベースが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のファイル名フォルダー名はそのままでシステムが正常に動作しました。とても簡単で利用しやすい機能だと思い紹介してみました。
CakePHP開発にて、selectボックスの変更イベントで他の項目を自動的に変更するAjaxのサンプルのソースです。modelsとcontrollersの一部のコードにつきましては、割愛させて頂きます。本機能を追加するにあたっては、edit.php,samples_controller.php,ajaxskind.php,ajaxsitem.php,ajaxsmemo.phpのコードを参照して頂き、参考になれば幸いです。
以前紹介した記事「wdCalendarを日本語で使ってみる」で日本語化したwdCalendarをCakePHPに組み込んでみたので紹介します。
それから少し改造ということで、登録できるフィールドを追加してみるのと、ログインした人のidを基に誰が登録した予定なのかを持たせるようにしました。
実際の見た目はコチラ
それから少し改造ということで、登録できるフィールドを追加してみるのと、ログインした人のidを基に誰が登録した予定なのかを持たせるようにしました。
実際の見た目はコチラ
弊社で帳票をPDFで出力する際には、大抵書式となるテンプレートファイルを先に読み込んで、必要な箇所にデータを出力して最終的に出来上がりのPDFファイルを生成という手順を踏みます。
ですので、Excelファイルを作る際にもテンプレートの読み込みが必要だろうということで、これもサンプルを作りましたのでここに載せておきます。
データを出力する部分とファイルに書き出す部分は同じですので、テンプレートファイルを読み込む部分を解説します。
Excel2007形式とExcel95形式、両方まとめて載せておきます。
まず、Excel95形式のテンプレート読み込みです。
ここで帰ってきた $objPHPExcel で、データ書き込みやファイル生成を行ってください。
ですので、Excelファイルを作る際にもテンプレートの読み込みが必要だろうということで、これもサンプルを作りましたのでここに載せておきます。
データを出力する部分とファイルに書き出す部分は同じですので、テンプレートファイルを読み込む部分を解説します。
Excel2007形式とExcel95形式、両方まとめて載せておきます。
まず、Excel95形式のテンプレート読み込みです。
$filename = "fruits.xls"; $uploadDir = realpath( TMP ); $uploadDir .= DS . 'excels' . DS; $load_path = $uploadDir . $filename; $objReader = new PHPExcel_Reader_Excel5(); $objPHPExcel = $objReader->load( $load_path );次は、Excel2007形式のテンプレート読み込みです。
$filename = "fruits.xlsx"; $uploadDir = realpath( TMP ); $uploadDir .= DS . 'excels' . DS; $load_path = $uploadDir . $filename; $objPHPExcel = PHPExcel_IOFactory::load( $load_path );$load_path にはテンプレートファイルのフルパスを与えてください。
ここで帰ってきた $objPHPExcel で、データ書き込みやファイル生成を行ってください。
PHPExcelをCakePHPで使ってみるの記事ではExcel95形式(拡張子が.xls)のExcelファイルの出力について書きましたが、Excel2007形式(拡張子が.xlsx)の場合はどうなるのかが今回のお話です。
Excel2007形式のファイルを出力する為のポイントはふたつです。
ひとつ目は、出力ファイル名の拡張子を必ず「.xlsx」にしておくことです。
ふたつ目は、出力する部分のコードを少し変えることです。
具体的には、次のコードになります。
Excel2007形式のファイルを出力する為のポイントはふたつです。
ひとつ目は、出力ファイル名の拡張子を必ず「.xlsx」にしておくことです。
ふたつ目は、出力する部分のコードを少し変えることです。
具体的には、次のコードになります。
$objWriter = PHPExcel_IOFactory::createWriter( $objPHPExcel, 'Excel2007' );
システムを作っていると、お客様からよく「このデータをExcelで使いたい」ということをお聞きします。
大抵の場合CSV形式のファイルを出力して、それをExcelで読み込んで好きに加工して戴くのですが、やはりExcelの形式ではないので使い辛いと言われることがあります。
そこで、Excelファイルを出力するようにしようということになり、PHPExcelというライブラリをCakePHPに組み込んで使うことにしました。
大抵の場合CSV形式のファイルを出力して、それをExcelで読み込んで好きに加工して戴くのですが、やはりExcelの形式ではないので使い辛いと言われることがあります。
そこで、Excelファイルを出力するようにしようということになり、PHPExcelというライブラリをCakePHPに組み込んで使うことにしました。
PHPExcelをCakePHPで使ってみるの続きを読む
