今回、管理側で指定した地図の場所を公開側で表示させる仕様のお仕事が来たのでグーグルマップを取り入れました。
CakePHPで配列で指定したinputに$this->dataが連動してくれる
helperのありがたい機能を使っていたのですが、
<?php echo $form->input("Part.1.element.1.radio", array('type'=>'text')); ?>
という感じの5層構造になるとデータの引継ぎをしてくれません。
helperの対応しているのは4層までみたいです。

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

レーダーチャートに引き続き、棒グラフも描きました。
インストールはレーダーチャートと同様です。

bar_1_23_20111003114604.png
グラフを必要とするお仕事があり、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
wdCalenderをローカル環境で動かしていて、実際本番環境にUPした時に動かなくなってテンパッタのでメモとしてブログに残しておきます。

症状としてはテスト環境では動くのに本番環境では動かないというもの。
jqueryに頼っているので実際動かないと、どう調査をしたらいいか分からずとりあえず、FireBugで追っかけていきます。
するとどうもテストでは値が入っている所に、本番では入っていないということが分かりました。しかもJSON形式のデータが・・・

JSON形式のデータ???んっ!!以前phpのjson_encodeはphpのバージョンに依存するなというのに、はまった事があるなということで調べるとビンゴでJSONが使えるPHPのバージョンは5.2以上ということ。
本番サーバーではphpのバージョンが5.1.6だったので早速5.1.6でもJSONが使えるように「http://www.softel.co.jp/blogs/tech/archives/973」を参考にサーバーの設定を変更!!
これで動くかなと思っていたのですが動かない・・・という事でもう一度デバッグ作業をしていきます。
今度はphpの記述部分をfwrite関数を使っていって1行ずつファイルにデバッグ文を出力して追って行きます。するとある関数で処理が止まってしまっている事が分かりました。
それはdate_parse関数なのですが調べてみると、この関数が使えるのはphp5.2以上との事でして、JSONと一緒やんという顛末でした。date_parse関数のところを独自の記述に置き換えると見事動いてくれました。

基本としてwdCalenderはphp5.2以上で使うもの。それ以前で使うときは動くように自分で調整をして上げる必要ありという事でした。

前回はapp/core.phpの
Configure::write('Routing.admin', 'admin');
をコメントアウトすることでページネートのリンクを押した時にリンクエラーになるのを防ぎました。

じゃあ、「公開」「公開(携帯)」「管理」のように3つサイトを分ける時にはどうするの?ということで調べてみました。
CakePHPでprefixを切り替えた所の開発をしていたのですが、paginatorでページ切り替えなどを行おうとすると、飛び先のURLからprefixの部分が抜け落ちておりリンクエラーになってしまいました。
これは困ったと調べてみるとcore.phpで以下の記述をすれ良いだけのこと。
Configure::write('Routing.admin', '使っているprefix値');
なんだかみたことがある記述だなと思っていたら、prefixをadminにして動かしたいときはcore.phpで
Configure::write('Routing.admin', 'admin');
のコメントを外す決まりごとがあったなという事を思い出しました。しかしadmin以外のprefixを使っていたのでそこらへんの仕組みがノーマークだったため、そこそこはまりました・・・
今回レンタルサーバーの区画のMySQLに大量データを流し込まなくなったのですが、レンタルサーバーが用意してくれているphpMyAdminでは容量が大きくてインポートが出来ませんでした。
自社で管理しているサーバーであればコマンド一発で難なく出来るのですが、レンタルサーバーなものでコマンドも使えない、php.iniの値も変えれないということでどうした物かという状況になりました。
困ってググッてみたらBigDumpという便利そうなものを発見!!
詳しくはhttp://d.hatena.ne.jp/istwar/20101019/1287505139を見てもらった方が早いので説明は書かないですけど、とにかくPHPファイル1つでインポートが出来ちゃうのでどんなサーバー相手でもへっちゃらというのは素晴らしい!!
すごい重宝するので皆さんも是非使ってみてください。
この前、閲覧、印刷のみできるPDFて作れる?
という需要があったので色々と調査してみた。(しかもPHP4で)

最初はTCPDF無理やと思って、FPDFとかで試していたのですが、
実はPDF4バージョンもあることがわかった。


今回は、
PDFで「印刷禁止」「文字等コピー禁止」「編集禁止」「パスワード」「有効期限」「ローカルPCで開くの禁止」を
テストしてみました。
◎Android開発準備
1.JDK(Java Development Kit)のセットアップ
  jdk-6u25-windows-i586.exeをインストールしました。
2.Android SDK(Software Development Kit)のセットアップ
  android-sdk_r10-windows.zipをインストールしました。
3.Eclipse のセットアップ
  eclipse-java-helios-SR2-win32.zipをインストールし、
  日本語化で、pleiades_1.3.2.zipをインストールしました。
◎補足
Android SDKで、インストール後エミュレータを動作させようとすると、
adb.exe が見つからないとエラーになってしまいます。
そこで、platform-tools にあるadb.exeとAdbWinApi.dllを tools フォルダに
コピーするとエミュレータが正常に動作します。

◎サンプルアプリの作成
Buttonを押したら、TextViewに会社が表示され、editTextに奥進システムが表示し、
Button名を表示に変更するアプリを作成してみましょう。
1.「ファイル」メニュー>新規>プロジェクトを選択する。
2.新規プロジェクトのダイアログが表示する。
  AndroidのAndroidプロジェクトを選択し、「次へ」をクリックする。
3.プロジェクト名:hellooku
    【内容】
  「ワークスペース内に新規プロジェクトを作成」を選択する。
  「デフォルト・ロケーションを使用」をチェックする。
  「ビルドターゲット」Android2.2をチェックする。
  アプリケーション名:Hellooku
  パッケージ名:jp.co.okushin.android.hellooku
  Create Activity:HellookuActivity
  Min SDK Version:8
  に設定して「完了」をクリックする。
4.レイアウトの作成
  hellooku/res/layout/main.xmlを編集します。
  上記ファイルをクリックすると、Graphical Layoutタブが出てきますので、
  そこで画面レイアウトを作成します。TextViewを配置して、Plain Text(editText)を配置して、
  Buttonを配置します。ここで、main.xmlを保存しますが、
  これだけでは、配置した部品にIDが振られていない状態となり、
  実行しようとしても実行時にエラーとなります。
  そこで、main.xmlを修正した場合は、プロジェクト->プロジェクトのビルドを実行してください。
  この操作により、 hellooku/gen/jp.co.okushin.android.hellooku/R.javaのIDが自動で生成されます。