コントローラ内でヘルパーを使う方法 CakePHP1.2

Written by aoki on 2008 年 11 月 30 日 – 11:52 AM -

CakePHP1.2 はまだ始めたばかりですが、

結構、CakePHP1.1からの変更点がありますね。

 

PHP:
  1. loadHelper('Html');
  2.  
  3. $html = new HtmlHelper();

1.1では上記にて呼び出せましたが、

1.2では以下の通りとなります。

PHP:
  1. App::import('Helper', 'Html');
  2.  
  3. $html = new HtmlHelper();


Tags: , ,
PHPカテゴリー | コメントはまだありません »

Excelの日付データをUNIXタイムに変更する。

Written by aoki on 2008 年 11 月 28 日 – 1:55 PM -

Excelの日付の基準は 1900年1月1日 を 1 として1日ごとにシリアル値をとっている。
片方、UNIXタイムは 1970年1月1日00:00:00 をゼロとして経過秒数をシリアル値にとっている。

エクセルからのデータを $excel_date として 
UNIXタイム($unix_time)を求めるには。

$unix_time = ($excel_date -25569)*86400;

こんなことでも数時間必要だったな~ ^^;


PHPカテゴリー | コメントはまだありません »

PHP-ExcelReader を CakePHP1.2 で使用する。

Written by aoki on 2008 年 11 月 28 日 – 11:21 AM -

Excelに入力したデータをファイルアップロードにより取り出して加工したいケースがありますよね。CakePHP1.2 をベースに PHP-ExcelReader を利用した方法をメモしました。

PHP-ExcelReader を以下のURLからダウンロードします。
http://sourceforge.net/projects/phpexcelreader/

解凍し、/phpExcelReader/Excel フォルダ内にある
以下の二つのファイルを app/vendors/phpExcelReader/
にアップロードする。

reader.php
oleread.inc

reader.php の31行目は、そのままではエラーになるので
oleread.inc が読み込まれるように変更する。

変更前
require_once 'Spreadsheet/Excel/Reader/OLERead.php';

変更後
require_once 'phpExcelReader/oleread.inc';

コントローラからの呼び出しは以下の様に行った。

PHP:
  1. <?php
  2.  
  3. ini_set('include_path', get_include_path() . PATH_SEPARATOR . APP . 'vendors');
  4. App::import('Vendor', "phpExcelReader", array('file'=>'phpExcelReader/reader.php'));
  5.  
  6.  
  7. class FogesController extends AppController {
  8.  
  9.     var $name = 'Foges';
  10.     var $helpers = array('Html', 'Form', 'Ajax', 'Javascript', 'Xml');
  11.     var $uses =array("Foge",    );
  12.  
  13.     function upload(){
  14.        
  15.             $data = new Spreadsheet_Excel_Reader();
  16.             $data->setOutputEncoding('UTF-8');
  17.             $data->read("fogefoge.xls");
  18.             
  19.             //各シート(5枚目まで)の一列目と2列目のデータを全て表示するテスト。
  20.             for ($j = 0; $j <5; $j++) {
  21.                 for ($i = 1; $i <= $data->sheets[$j]['numRows']; $i++) {
  22.                     echo $data->sheets[$j]['cells'][$i][1];
  23.                     echo $data->sheets[$j]['cells'][$i][2];
  24.                         echo "<hr />";
  25.                 }
  26.             }
  27.     }
  28. }
  29. ?>


Tags: ,
PHPカテゴリー | コメントはまだありません »

長野旅行(松本城、開智学校、小布施、善光寺)

Written by aoki on 2008 年 11 月 17 日 – 9:48 PM -

松本城

松本城

初めて松本城を見てきました。
歴史の香りが漂う良い城でした。
豊臣秀吉の時代のものというから圧巻です。

開智学校

開智学校

旧開智学校は明治の初めに日本で初めて立てられた小学校。
しかも父兄の寄付でほとんど賄われたらしい、教育に対する考えが進んでいるのでしょうね。
現在の開智学校もすばらしい建物でした。

小布施

小布施

葛飾北斎の美術館ですっかり観光地化された小布施では、栗とりんごを満喫してきました。
ちかくにあった酒造の煙突、雰囲気がありました。新しい施設が目立ってましたが、
その中にある古いものに価値を感じてしまうのは私だけでしょうか?

善光寺

善光寺

11月の土曜日ということもあり、七五三や参拝客で大賑わいでした。
近くの紅葉も最高に美しかったです。


写真, カテゴリー | 3 件のコメント »

表参道散策2

Written by aoki on 2008 年 11 月 11 日 – 1:41 PM -

表参道の裏 続編。

手!?

手!?

都会の小さな緑はオアシス

都会の小さな緑はオアシス

ばらまいたようなタイルがかわいい

ばらまいたようなタイルがかわいい


写真カテゴリー | コメントはまだありません »

表参道散策

Written by aoki on 2008 年 11 月 10 日 – 8:16 PM -

文化の日(11月3日)、たぶん5,6年ぶりになる表参道に行ってみた。

表参道の紅葉

表参道の紅葉

裏道にも、芸術があふれている

裏道にも、芸術があふれている

昔のアパートは一部を残して姿を消し表参道ヒルズに化けてしまった。

ふとみるとビルのガラスに紅葉が映りこんでいた。今も昔もやっぱり表参道は、どこか洗練されている。

でも表より裏の方がもっと面白かったりもする。

ふと山田パンダさんの「風の街」のメロディーが脳裏を駆け抜けた。

表参道原宿は、懐かしすぎる友達や人に言えない悲しみすら、

風~が運んでしまう街。。。


写真カテゴリー | コメントはまだありません »

月例写真 2008年11月

Written by aoki on 2008 年 11 月 10 日 – 3:09 PM -

昨年末ごろから、新藤修一さんの仕事場で行われている月例写真会に参加しています。

http://shindo-s.com/index.html

今月のお題は 「自分の靴」 です。

自分の靴

自分の靴

これから前に歩いていくぞ!

という雰囲気が伝われば成功なんですが。。。

撮影データ

Canon EOS 5D + EF135mm f/2L USM

1/40 秒   F11 露出補正 0 ISO感度  800


写真カテゴリー | コメントはまだありません »

定額給付金は国内旅行券に!

Written by aoki on 2008 年 11 月 9 日 – 1:47 PM -

1999年に発行された地域振興券は約6200億円。
この内で消費に回された額は約2000億円と言われています。
(残りは貯蓄に回ってしまった。)

今回の景気刺激策でも、定額給付金という案が出ていますが、
国内旅行に利用用途を限定することで、+アルファの内需拡大が望めますね。

観光庁も新設されたばかりですし、是非お願いします。>麻生総理殿


カテゴリー | コメントはまだありません »

CakePHP でハートビート

Written by aoki on 2008 年 11 月 9 日 – 12:03 PM -

「登録フォームで、せっかく入力したデータが消えてしまった。」 という状況(セッション切れ)に問題を抱えたことはありませんか?

これに対して、IPAのサイトで安全にセッションを延長する方法で「ハートビート」という技法があるのを知りました。

http://www.ipa.go.jp/security/awareness/vendor/programming/a05_03_main.html

上記ではフレームを利用してハートビートしているのですが、

これならAjaxで実装できると思い、下記のようなプログラムを行いました。

セッションが切れる15秒前にハートビートをAjaxで呼び出します。

ますは、エレメントを作成
/views/elements/h_beat.thtml

PHP:
  1. <?php
  2. echo $ajax->div("heartBeat",array("style"=>"display:inline"));
  3. echo $ajax->divEnd("heartBeat");
  4.  
  5. //セッションが切れる15秒前に呼び出す。
  6. $limit =15;
  7. switch (Configure::read('Security.level')) {
  8.     case "high":
  9.         $frequency = ( Configure::read('Session.timeout') * 10 ) - $limit;
  10.         break;
  11.     case "medium":
  12.         $frequency = ( Configure::read('Session.timeout') * 100 ) - $limit;
  13.         break;
  14.     case "low":
  15.         $frequency = ( Configure::read('Session.timeout') * 300 ) - $limit;
  16.         break;
  17. }
  18.  
  19. $options =array(
  20.     "url"=>"/contents/heart_beat/",
  21.     "update"=>"heartBeat",
  22.     "frequency"=>$frequency
  23. );
  24. echo $ajax->remoteTimer($options);
  25. ?>

エレメントをレイアウトから呼び出します。
/views/layout/default.thtml

PHP:
  1. ..........
  2.  
  3. echo $javascript-&gt;link("prototype.js")."\n";
  4. echo $this-&gt;renderElement("h_beat");
  5. ?&gt;

※prototype.js が必要です。

Ajax呼び出し先 URLのコントローラを設定します。
今回は(/contents/heartBeat/)とします。
/controllers/contents_controller.php

PHP:
  1. ...
  2. //ヘルパーにAjaxを指定
  3. var $helpers =array("html","javascript","ajax");
  4. ...
  5. アクションを設定
  6. function heartBeat(){
  7. $this-&gt;layout=null;
  8. //セッションID更新、古いセッション削除
  9. $this-&gt;Session-&gt;renew();
  10. }
  11. ...

上記アクションに対するビューを設定
/views/contents/heart_beat.thtml
ファイルの中は空のままでOK。


Tags: ,
PHPカテゴリー | コメントはまだありません »

ECマーケティングセミナーまとめ

Written by aoki on 2008 年 11 月 9 日 – 11:01 AM -

10月31日にトランスコスモス社が主催した 「売りつくす年末!最新ECマーケティングセミナー2008東京 」 についてまとめてみました。

■ネット通販事業の課題と方向性

各種メディアの広告費用が落ち込む中、
ネット広告費用は2006年から2007年にかけて24.4%増加している。

その他での注目はフリーペーパーマガジン(リクルートのR25、L25)が
9.7%増加している。

この傾向は2008年も同様である。

ネット通販での販売額も19.2%増で、総販売額の23%を占めている。

通販の利用媒体としては、圧倒的でインターネットPCが47.1%を占めている。
顧客層の増加の特徴として男性と60歳以上の年代の伸びが顕著である。

楽天というブランドで買い物をしている。個別店のブランドは低い。
(三越、松坂屋のようなデパートと同じ)

取扱商品としては、健康食品、一般食品、化粧品・医薬品の順で多い。

ネット通販 (モール + リアル店舗 )
個から攻めるだけでは難しい。

よりセグメントされて検索できるようになってきているので、
ピンポイントでターゲットできる可能性が大きい。

取り扱いをおおきくすることで、オリジナル商品が可能。
(工場の1ラインを買い取るような感じ)

zozotown  http://zozo.jp/
入荷から最短一日で販売可能
少量多品種を効率よく回転。

Oisix  http://www.oisix.com/
顧客が求める本質的サービス

マルチチャネル・マーチャント大賞
http://www.llbean.com/
カタログとWebの親和性

http://www.ebags.com/
バックの使い方で分類

http://www.onestepahead.com/home.jsp
子供のおもちゃ、ビデオで遊び方説明

■インタレストマッチ
ンタレストマッチ広告は、ユーザーが閲覧中のページの内容と行動履歴を掛け合わせ、ユーザーの興味、関心に適合した広告を表示するサービス。見た目は、すでに提供しているコンテンツ連動型広告「コンテンツマッチ」に似たクリック課金型のテキスト広告だ。表示順位はユーザーの興味関心との適合度合いと入札価格を組み合わせて決定する。

■データフィードオプティマイゼーション

商品データを各モールの登録形式に変換、
キーワードなどの調整を行い効果測定、
実行、調整を繰り返し、表示回数と制約率向上をめざす。

ビカム
http://www.become.co.jp/
色で選べる。

■UGC(ユーザー生成コンテンツ 口コミをサイトに取り込む)
消費者視点


セミナーなどカテゴリー | コメントはまだありません »