Home > Archives > 2008年12月 Archive

2008年12月 Archive

当ブログのテンプレートをVICUNAテンプレートに変更!

長年ブログで使っていた小粋空間さんのテンプレートでしたが、このたび、VICUNAテンプレートに変更しました。

↓とりあえず、こんな感じになりました。

まぁ、今のところテンプレートのデフォルトですが、おいおいカスタマイズしていきます(^^;)

CakePHP 1.2 final リリース!

ついに、CakePHP 1.2のfinalがリリースされました!

開発者のみなさん、お疲れ様です(^^;)

これで心おきなく1.2にシフトできるってもんです(^^;)

Google ウェブマスター向け新ブログを開設

Googleがウェブマスター向けに新しいブログを立ち上げたようです。

このブログは主にウェブマスターを対象としたもので、Google検索のクロールやインデックス、ランキング、Google ウェブマスターツールなどの情報を発信していく。モバイル検索など、日本ならではの話題も取り上げていく予定

とのことである。

これからどんな有益な情報が得られるか楽しみである。

CakePHPで楽天WEBサービスを使う(検索フォーム)

今回は、検索フォームで商品を絞り込めるようにしてみた。

なお、この連載の過去の記事一覧は「CakePHPで楽天API」を見ていただきたい。

まず、「app/config/routes.php」に以下を追加する。

app/config/routes.php


Router::connect('/searches/*', array('controller' => 'Searches', 'action' => 'index'));

モデルは次のようになる。前回とちょっと変えたのは、APIのパラメータをメソッドに書いていたのをやめて、クラスで定義してみた。

app/models/Item.php

class Item extends AppModel {

var $name = "Item";

var $api_def = array(
'developerId' => DEV_ID,
'affiliateId' => AFF_ID,
'operation' => 'ItemSearch',
'version' => '2008-09-01',
);

function findAll($conditions = array()) {

$req = 'http://api.rakuten.co.jp/rws/1.12/rest?';

$api_params = array_merge($conditions,$this->api_def);

uses('Xml');

$req .= http_build_query($api_params);

$xml = new XML($req);
$xml_array = Set::reverse($xml);

return $xml_array['Response']['Body']['ItemSearch'];
}
}

Continue reading

CakePHP RC4 リリース

CakePHPの最新バージョン、RC4がリリースされた模様です。

次はstableだと思ったのですが。。。

で、早速、速度計測しておられた方を発見。

速度面はそんなに変わってないそうです・・・

CakePHPで楽天WEBサービスを使う(商品コード検索)

ちょっとここで一息?ついて、商品コード検索を実装してみることにした。

前回までの構築で、以外と簡単に商品コード検索は実装することができた。

なお、このシリーズはカテゴリーとしてまとめているので、過去の記事はこちらを見てください。

まずは、それぞれのコードをのせてみます。まずはモデル。

app/models/Itemcode.php

class Itemcode extends AppModel {

var $name = "Itemcode";
var $api_def = array(
'developerId' => DEV_ID,
'affiliateId' => AFF_ID,
'operation' => 'ItemCodeSearch',
'version' => '2007-04-11',
);

function findAll($conditions = array()) {

$req = 'http://api.rakuten.co.jp/rws/1.11/rest?';
$api_params = array_merge($conditions,$this->api_def);

uses('Xml');

foreach ($api_params as $key => $value){
$req .= '&'.$key.'='.$value;
}

$xml = new XML($req);
$xml_array = Set::reverse($xml);
return $xml_array['Response']['Body']['ItemCodeSearch'];

}
}

Continue reading

CakePHPで楽天WEBサービスを使う(ページング処理)

なんだか、CakePHPの初心者の私には、いきなり難しいことから始めてしまったような気がしないでもない、と思う今日この頃(^^;)

このシリーズはカテゴリーとしてまとめているので、過去の記事はこちらを見てください。

ということで。

次はページング処理を付けてみた。

今回開発で使用しているCakePHPのバージョンは1.2RC3で、1.2から標準でページング処理ができるみたいなのですが、どうもそのページ処理をしようと思うと、データベースに接続しようとするのです。今回の場合、WEB APIを使っているので、データベースは使いません。困ったあげく、PEAR:Pagerを使うことにしました。。。。標準のページングも使えるよ、というのをご存じの方がいらっしゃいましたら教えてください(^^;)

ということで、コントローラーを以下のようにしてみました。

class ItemsController extends AppController {

var $name = 'Items';
var $uses = 'Item';

var $conditions = array();    //リクエスト用パラメータ

//デフォルト商品表示
function index($page = 1){

//リクエスト用パラメータ
$conditions = array(
'developerId' => DEV_ID,
'affiliateId' => AFF_ID,
'operation' => 'ItemSearch',
'version' => '2008-09-01',
'keyword' => MAINKWD,
'hits' => PERPAGE,
'page' => $page,
);

//モデルからデータ取得
$data = $this->Item->findAll($conditions);

//商品配列
$this->set('items', $data['Items']['Item']);

//所得アイテム総数
$this->set('count',$data['count']);

//ページング処理
require_once ('Pager.php');

//Pager用パラメータ
$p_options = array(
"totalItems" => $data['count'],
"perPage" => PERPAGE,
'urlVar' => 'page',
'path' => FULL_BASE_URL.'/tokoton/items/',
'fileName' => '%d',
'append' => false,
'currentPage' => $page,
);

$pager =& Pager::factory($p_options);
$navi = $pager -> getLinks();
$this->set('navi',$navi["all"]);

}

}

Continue reading

Home > Archives > 2008年12月 Archive

Subscribe This Blog
Subscribe This Blog
Search
Categories
Tag Cloud
Twitter Counter
Archives
My Other Blogs

Return to page top