Home > CakePHP > CakePHPで楽天API
CakePHPで楽天API Archive
[CakePHP] 画像の圧縮比を変えて出力する
- 2009/03/10 13:44
- CakePHP | CakePHPで楽天API
CakePHPと楽天APIで携帯サイトを作っているのだが、楽天APIで取得できる画像は、携帯用にそのまま表示すると、画像サイズがでかい。1ページあたりに3枚表示するくらいがやっとだ。
なので、CakePHPで画像ファイルの圧縮率を下げるアクションを追加してみた。
まずは、コントローラーに以下のように作ってみた。
app/controllers/convjpgs_controller.php
class ConvjpgsController extends AppController {
var $name = 'Convjpgs';
function down(){
$this->layout = false;
$this->autoRender = false;
header('Content-type: image/jpeg');
$img = imagecreatefromjpeg('http://'.implode('/',$this->params['pass']).'?_ex=128x128');
imagejpeg($img, NULL, 75);
imagedestroy($img);
}
- Comments: 0
- Trackbacks: 0
とことん楽天アフィリエイトシステム
- 2009/02/12 21:58
- Affiliate | CakePHPで楽天API | おすすめサイト
ちょこちょここちらのカテゴリーで作っていたのですが、ようやく完成しました。
その名も、とことん楽天アフィリエイトシステム!!
CakePHPと楽天APIを使って作ったアフィリエイトシステムです。
私の初めてのCakePHPで構築したサイトです。といっても、データベースは使っておらず、楽天APIしか使ってませんが(^^;)
で、とりあえず、以下のようなサイトを作ってみました。
↓スクリーンショット
このシステムはどういうものかというと・・・・
- Comments: 0
- Trackbacks: 0
CakePHPで楽天WEBサービスを使う(ジャンルコード)
- 2009/01/24 14:18
- CakePHPで楽天API
今回は、ジャンルコード検索を実装してみたいと思います。
この連載の過去の記事はこちらを参照してください。
まずは、モデルから。
app/models/Genrecode.php
class Genrecode extends AppModel {
var $name = "Genrecode";
//商品検索APIの共通パラメータ
var $api_def = array(
'developerId' => DEV_ID,
'affiliateId' => AFF_ID,
'operation' => 'GenreSearch',
'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');
$req .= http_build_query($api_params);
$xml = new XML($req);
$xml_array = Set::reverse($xml);
return $xml_array['Response']['Body']['GenreSearch'];
}
}
- Comments: 0
- Trackbacks: 1
CakePHPで楽天WEBサービスを使う(ソート順)
- 2009/01/07 17:34
- CakePHPで楽天API
前回は、検索フォームで商品を検索できるようにしました。
今回は、ソート順を変えられるようにしてみました。
このカテゴリーの過去の記事の一覧はこちらをご覧ください。
楽天のホームページでは、さまざまな方法でソート順を変更することができます。以下のような感じ。
- 標準
- 価格が安い
- 価格が高い
- 新着順
- 感想の件数が多い
楽天WEBサービスでは、これとは別に以下のようなソート順が用意されています。
- 標準(standard)
- アフィリエイト料率順(昇順)(+affiliateRate)
- アフィリエイト料率順(降順)(-affiliateRate)
- レビュー件数順(昇順)(+reviewCount)
- レビュー件数順(降順)(-reviewCount)
- 価格順(昇順)(+itemPrice)
- 価格順(降順)(-itemPrice)
- 商品更新日時順(昇順)(+updateTimestamp)
- 商品更新日時順(降順)(-updateTimestamp)
- Comments: 0
- Trackbacks: 0
CakePHPで楽天WEBサービスを使う(検索フォーム)
- 2008/12/22 01:36
- CakePHPで楽天API
今回は、検索フォームで商品を絞り込めるようにしてみた。
なお、この連載の過去の記事一覧は「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'];
}
}
- Comments: 0
- Trackbacks: 1
CakePHPで楽天WEBサービスを使う(商品コード検索)
- 2008/12/17 17:58
- CakePHPで楽天API
ちょっとここで一息?ついて、商品コード検索を実装してみることにした。
前回までの構築で、以外と簡単に商品コード検索は実装することができた。
なお、このシリーズはカテゴリーとしてまとめているので、過去の記事はこちらを見てください。
まずは、それぞれのコードをのせてみます。まずはモデル。
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'];
}
}
- Comments: 0
- Trackbacks: 0
CakePHPで楽天WEBサービスを使う(ページング処理)
- 2008/12/12 19:07
- CakePHPで楽天API
なんだか、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"]);
}
}
- Comments: 0
- Trackbacks: 1
- Subscribe This Blog
- FeedBurner
- Search
- Categories
- Tag Cloud
- Affiliate
- AJAX
- akismet
- Amazon
- Apache
- API
- Apple
- application
- Becky!
- Blog
- BlogParts
- Books
- C#
- CakePHP
- CentOS
- CMS
- contact form
- Controller
- CSS
- Customize
- design
- dropbox
- Dropshipping
- drupal
- Dynamic Publishing
- EC-CUBE
- Eclipse
- Ecommerce
- Environment
- extension
- fedora
- feeds2tweet
- FileStream
- Firefox
- Folder
- Font
- form
- framework
- function
- Google+ Cluster Finder
- Google Adsense
- Google Analytics
- Google Chrome
- Google Plus
- Google Sitemap
- HABTM
- Helper
- HTML
- Hyper Estraier
- Icon
- Internet
- JavaScript
- jQuery
- Linux
- Logging
- LPO
- Mac OS X
- MashUp
- mixi
- Mobile
- MovableType
- MS SQL
- MT4i
- MTOS
- MySQL
- PC
- Pear
- Perl
- PHP
- PictureBox
- Ping
- Process
- Programming
- Recommendation
- RSS
- ScreenSaver
- SEO
- Server
- ServersMan@VPS
- Smarty
- Snippets
- SocialBookmarks
- SSH
- StreamReader
- Subversion
- Template
- ThreadSafe
- Tips
- Tools
- Torrent
- Tutorial
- Vicuna
- View
- vmware
- WallPaper
- Web API
- Web design
- Web Service
- Windows
- WordPress
- WordPress Plugin
- WordPress Theme
- XAMPP
- XHTML
- XML
- Xperia acro
- Yahoo!
- yum
- zenback
- さくら@VPS
- 楽天WEBサービス
- 空目アワー
- Twitter Counter
- Archives
-
- 2011年12月 (2)
- 2011年11月 (4)
- 2011年10月 (5)
- 2011年9月 (5)
- 2011年8月 (4)
- 2011年7月 (8)
- 2011年6月 (5)
- 2011年5月 (7)
- 2011年4月 (6)
- 2011年3月 (5)
- 2011年2月 (7)
- 2011年1月 (9)
- 2010年12月 (12)
- 2010年11月 (7)
- 2010年10月 (12)
- 2010年9月 (11)
- 2010年8月 (7)
- 2010年7月 (9)
- 2010年6月 (10)
- 2010年5月 (14)
- 2010年2月 (4)
- 2010年1月 (7)
- 2009年12月 (2)
- 2009年11月 (10)
- 2009年10月 (15)
- 2009年9月 (4)
- 2009年8月 (4)
- 2009年7月 (14)
- 2009年6月 (16)
- 2009年5月 (14)
- 2009年4月 (34)
- 2009年3月 (38)
- 2009年2月 (20)
- 2009年1月 (27)
- 2008年12月 (10)
- 2008年11月 (1)
- 2008年10月 (10)
- 2008年9月 (9)
- 2008年8月 (10)
- 2008年7月 (3)
- 2008年6月 (7)
- 2008年5月 (9)
- 2008年4月 (10)
- 2008年3月 (3)
- 2008年2月 (9)
- 2008年1月 (5)
- 2007年12月 (9)
- 2007年11月 (5)
- 2007年10月 (22)
- 2007年9月 (2)
- My Other Blogs
- Affiliate Blogs
- Translator






