<?php
//-------------------------------------------------------------------//
// SDK-Sample-06「楽天レシピTOP4ランキング」
//-------------------------------------------------------------------//
$app_title_head='SDK-Sample-06';
$app_title_header='「楽天レシピTOP4ランキング」';

// ライブラリファイル等の読込
require_once dirname(__FILE__).'/../autoload.php';
require_once 
dirname(__FILE__).'/config.php';

// Clientインスタンスを生成 Make client instance
$rwsclient = new RakutenRws_Client();
// アプリIDをセット Set Application ID
$rwsclient->setApplicationId(RAKUTEN_APP_ID);
// アフィリエイトIDをセット (任意) Set Affiliate ID (Optional)
$rwsclient->setAffiliateId(RAKUTEN_APP_AFFILITE_ID);

// 変数の初期化
$category='large';

//-------------------------------------------------------------------//
// HTMLの表示
//-------------------------------------------------------------------//
show_header(); // ヘッダーの表示
show_credit_logo(); // クレジットロゴの表示

if (isset($_GET['category_id'])) {
  
// GETデータの取得
  
$category_id $_GET['category_id'];
  
$category $_GET['category'];

  
$category_ranking=get_ranking_by_categolyid($rwsclient,$category_id);
  
show_ranking_by_categolyid($category_ranking,$category_id);

}else{
    
show_usage();
    
$category_list=get_list_by_categoly($rwsclient,$category);
    
show_list_by_categoly($category_list,$category);
}

show_footer(); // フッターの表示

//-------------------------------------------------------------------//
// 関数
//-------------------------------------------------------------------//
/**
 *  カテゴリーIDによるカテゴリーランキング取得関数
 */
function get_ranking_by_categolyid($rwsclient,$category_id){
    
// ランキングの配列変数
    
$my_ranking = array(
        
'categoryId' => $category_id,
    );
    
// 楽天レシピランキングAPI で カテゴリランキングを得る
    
$response $rwsclient->execute('RecipeCategoryRanking'$my_ranking );
    return 
$response;
}
/**
 *  カテゴリIDのカテゴリランキング表示関数
 */
function show_ranking_by_categolyid($category_ranking,$category_id){
  echo 
'<div align="center"><a href="./">[ カテゴリリストに戻る ]</a></div>';
  echo 
'<h3 align="center">【 楽天レシピ ランキング Best4 】</h3>';
  
// カテゴリランキングの表示
    
echo '<div class="ranking-area">';
    foreach (
$category_ranking['result'] as $item) {
      
// レシピ画像のURL $item['mediumImageUrl'] ;
      
$recipe_image='<img src="'.$item['mediumImageUrl'] .'"></img>';
      
// レシピの名前 $item['recipeTitle'];
      
$recipe_name='<a href="' $item['recipeUrl'] . '" target="_blank">' $item['recipeTitle'] . '</a>';
      
// レシピの公開日 $item['recipePublishday'];
      
$recipe_date=$item['recipePublishday'];
      
// レシピの所要時間 $item['recipeIndication'];
      
$recipe_indication=$item['recipeIndication'];
      
// レシピの費用 $item['recipePublishday'];
      
$recipe_cost=$item['recipeCost'];
      
// レシピの材料配列 $item['recipeMaterial'];
      
$recipe_material_array=$item['recipeMaterial'];
      
// レシピの作者コメント $item['recipeDescription'];
      
$recipe_description=$item['recipeDescription'];

      
// HTMLの表示

echo<<<EOD
      <table border="1">
          <tbody>
              <tr>
                  <td colspan="3">
            <font color="red">&hearts;</font>
            
$recipe_name
            </td>
              </tr>
              <tr>
                  <td rowspan="3">
            
$recipe_image
            </td>
                  <td>公開日</td>
                  <td>
$recipe_date</td>
              </tr>
              <tr>
                  <td>所要時間</td>
                  <td>
$recipe_indication</td>
              </tr>
              <tr>
                  <td>費用</td>
                  <td>
$recipe_cost</td>
              </tr>
              <tr>
                  <td>レシピの材料</td>
                  <td colspan="2">
EOD;

      
// レシピランキングの材料表示
            
show_ranking_material($recipe_material_array);

echo<<<EOD
            </td>
              </tr>
              <tr>
                  <td>作者コメント</td>
                  <td colspan="2">
            
$recipe_description
            </td>
              </tr>
          </tbody>
      </table>
      <br>
EOD;

  }
  echo 
'</div>';
  echo 
'<div align="center"><a href="./">[ カテゴリリストに戻る ]</a></div>';
}
/**
 *  レシピランキングの材料表示関数
 */
function show_ranking_material($recipe_material_array){
    foreach (
$recipe_material_array as $item) {
        echo 
$item;
        echo 
' / ';
    }
}
/**
 *  カテゴリタイプによるカテゴリ一覧取得関数
 */
function get_list_by_categoly($rwsclient,$category){
    
// カテゴリ一覧の配列変数
    
$my_list = array(
        
'categoryType' => $category,
    );
    
// 楽天レシピカテゴリ一覧API で カテゴリ一覧を得る
    
$response $rwsclient->execute('RecipeCategoryList'$my_list );
    return 
$response;
}
/**
 *  カテゴリタイプのカテゴリ一覧表示関数
 */
function show_list_by_categoly($category_list,$category){
    
// カテゴリリストの表示
    
echo '<h3 align="center">【 楽天レシピ カテゴリリスト 】</h3>';
    echo 
'<div class="category-area">';
    echo 
'<ul class="category-list">';
    foreach (
$category_list['result'][$category] as $item) {
      echo 
'<li class="category-list">';
      echo 
'<a href="./?category=' .$category'&category_id=' .$item['categoryId'] . '">';
      echo 
$item['categoryName'];
      echo 
'</a>';
      echo 
'</li>';
    }
    echo 
'</ul>';
    echo 
'</div>';
    echo 
'<div style="clear: both;"></div>';
}

/**
 *  使用方法の表示関数
 */
function show_usage(){

echo<<<EOD

<div class="usage">
<p>"Rukuten Developers" 提供の "楽天レシピランキングAPI" を使用した「楽天レシピの<strong> カテゴリ別ランキング </strong>表示プログラム」です。</p>
<ul>
<li>最初に表示されるカテゴリの名前をクリックすると、そのカテゴリのレシピの上位4位までのランキングリストが表示されまます。</li>
<li>表示されたランキングリストのレシピ名をクリックすると該当する楽天レシピのページを別窓で開きます。</li>
</ul>
</div>

EOD;

}

/**
 *  ヘッダー部の表示関数
 */
function show_header(){

  global 
$app_title_head;
  global 
$app_title_header;

echo<<<EOD

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>
$app_title_head</title>
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body>
<header>
<h1 align="center"><a href="index.php">
$app_title_header</a></h1>
</header>

EOD;
}

/**
 *  クレジットロゴ部の表示関数
 */
function show_credit_logo(){
echo<<<EOD

<div class="credit-logo">
<!-- Rakuten Web Services Attribution Snippet FROM HERE -->
<a href="http://webservice.rakuten.co.jp/" target="_blank"><img src="http://webservice.rakuten.co.jp/img/credit/200709/credit_31130.gif" border="0" alt="楽天ウェブサービスセンター" title="楽天ウェブサービスセンター" width="311" height="30"/></a>
<!-- Rakuten Web Services Attribution Snippet TO HERE -->
</div>

EOD;
}

/**
 *  フッター部の表示関数
 */
function show_footer(){
echo<<<EOD

<div style="clear:both"></div>
<div class="copyright" align="center">
<p><small>&copy;2019 R10.Oh!Happy.JP</small></p>
</body>
</html>

EOD;
}

?>