自サイトの商品のランキング作成
テンプレートも決まりましたので,今回は、値をセットして行きます。
ひとつのランクごとに、
(1)テンプレートを読み込む(file_get_contents)
(2)テンプレート内の{}でくくった記号を商品情報に置き換える(str_replace)
(3)$contentsに追加
を繰り返します。
ちょっと変わったところでは、イメージのURLは、数字だけとりだせるので、URLに組み立てなければなりません。
価格も、販売価格がAPIの仕様書で必須になっていないので、返って来なかった場合は(isset)、推奨販売価格を使うようにしておきます。また、3桁ごとに「,」がある表示形式に(number_format)にしてから置き換えています。
index.phpを編集します。

ひとつのランクごとに、
(1)テンプレートを読み込む(file_get_contents)
(2)テンプレート内の{}でくくった記号を商品情報に置き換える(str_replace)
(3)$contentsに追加
を繰り返します。
ちょっと変わったところでは、イメージのURLは、数字だけとりだせるので、URLに組み立てなければなりません。
価格も、販売価格がAPIの仕様書で必須になっていないので、返って来なかった場合は(isset)、推奨販売価格を使うようにしておきます。また、3桁ごとに「,」がある表示形式に(number_format)にしてから置き換えています。
index.phpを編集します。
<?php
mb_regex_encoding("UTF-8");
mb_internal_encoding("UTF-8");
require_once('config.php');
require_once('urllist.php');
require_once('getmoshiapi.php');
$p = 0;
$maxnum = 100;
$s = "sales";
if(($ArticleSearch = getmoshi_tag($authorization_code, $tag, $p, $maxnum, $s)) !== FALSE){
$ranking = 1;
$contents = "";
foreach ($ArticleSearch->Articles->Article as $Article) {
$pid = (int)$Article->ArticleId;
if(isset($arr_pageurl[$pid])){
$file = file_get_contents("entry.html");
$file = str_replace("{item_link}",$arr_pageurl[$pid] ,$file);
$file = str_replace("{item_ranking}",$ranking,$file);
$file = str_replace("{item_name}",$Article->Name,$file);
$image = "http://image.moshimo.com/item_image/$Article->ImageCode/1/r.jpg";
$file=str_replace("{item_image}",$image ,$file);
$ShopPrice = isset($Article->ShopPrice) ? $Article->ShopPrice : $Article->RecommendedPrice;
$price = number_format((float)$ShopPrice);
$file=str_replace("{item_price}",$price,$file);
$contents .= $file;
$ranking++;
if($ranking > $max_rank){ break;}
} else {
}
}
}
?>

表示用テンプレートを考える
少し間があいて申し訳ありません。
しかも、今回は、プログラムの方は、進みません。
APIからデータを取れそうになったので、どういう表示をするかを決めていきます。
PHPは、HTMLの中にプログラムを組めるというスタイルが、とっつき安さになっているとおもうのですが,制御とデザインは分けておいた方が、メンテナンスや再利用に便利なので、今回は、分けるようにします。
まずは、ページ全体のことはおいといて、ランクに入った1商品分を考えます。
後で実際の値に置き換える記号として、{}でくくったものを使っておきます。
{item_ranking}は、何位かの数字が入り、
{item_link}は、自サイトの商品は、そちらへのURL。そうでないものは、もしもの販売ページへのURLに、
{item_image}は、画像のURL、
{item_price}は、販売価格が入るところです。
entry.htmlとして作成しておきます。
ご覧のとおり、tableの1行を1商品にあてています。

しかも、今回は、プログラムの方は、進みません。
APIからデータを取れそうになったので、どういう表示をするかを決めていきます。
PHPは、HTMLの中にプログラムを組めるというスタイルが、とっつき安さになっているとおもうのですが,制御とデザインは分けておいた方が、メンテナンスや再利用に便利なので、今回は、分けるようにします。
まずは、ページ全体のことはおいといて、ランクに入った1商品分を考えます。
後で実際の値に置き換える記号として、{}でくくったものを使っておきます。
{item_ranking}は、何位かの数字が入り、
{item_link}は、自サイトの商品は、そちらへのURL。そうでないものは、もしもの販売ページへのURLに、
{item_image}は、画像のURL、
{item_price}は、販売価格が入るところです。
entry.htmlとして作成しておきます。
<tr>
<td>第{item_ranking}位</td>
<td><a href="{item_link}"><img border="0" src="{item_image}" /></a></td>
<td><a href="{item_link}">{item_name}</a><br />
{item_price} 円<br /><a href="{item_link}">詳細はこちら</a></p></td>
</tr>
ご覧のとおり、tableの1行を1商品にあてています。

Ameba人気ブログランキング
