コトブキ園というサイトがあって、
このサイトはSOY Shopで商品カタログを表示している。
ここのサイトはGoogle+で新着情報を表示しているのだが、
Google+は他のSNSと異なり、投稿を表示するウィジェットを公開していない。
ということで、
Google+の投稿を表示するモジュールを作成してみた。
SOY ShopにはPHPの記述を許可しつつ、
テンプレートのHTMLにコメントのみで実装できるパーツモジュールというものがあるので、
パーツモジュールを新規に作成して、
そこで発行されたタグをテンプレートに組み込む。
パーツモジュールを追加する[要PHP] | マニュアル | SOY Shop
パーツモジュールのエディタを開き、
PHPの記述を追加する。
http://rss2lj.net/g+/{Google+ID}でGoogle+のXMLを取得するサービスを利用する。
<php //ここにモジュールとして読み込むHTML・PHPを記述してください。 //使用可能な変数 // $html テンプレートに記述されたHTML // $htmlObj ページオブジェクト($htmlObj->createAdd()が使えます) $monthArray = array( "Jan" => "01", "Feb" => "02", "Mar" => "03", "Apr" => "04", "May" => "05", "Jun" => "06", "Jul" => "07", "Aug" => "08", "Sep" => "09", "Oct" => "10", "Nov" => "11", "Dec" => "12" ); $html = array(); $xmlData = simplexml_load_file("http://rss2lj.net/g+/{Google+ID}"); $counter = 0; $html[] = "<dl>"; if(is_null($xmlData)){ $html[] = "<dt>新着情報を取得できませんでした。</dt>"; }else{ foreach ($xmlData->channel->item as $data) { if(!strlen($data->title[0])) continue; $array = explode(" ", (trim(substr($data->pubDate[0], strpos($data->pubDate[0] , ",") + 1)))); $html[] = "<dt>" . $array[2] . "年" . $monthArray[$array[1]] . "月" . $array[0] . "日</dt>"; $html[] = "<dd><a href=\"$data->link\" target=\"_blank\">" . $data->title[0] . "</a></dd>"; if(++$counter === 5) break; } } $html[] = "</dl>"; echo implode("\n", $html); ?>
http://rss2lj.net/g+/{Google+ID}で出力したXMLをPHPの標準関数のsimplexml_load_file("xmlのパス")で読み込む。
あとは取得したXMLを解析して、
表示したい形に整形して表示する。
この処理で新着情報を取得することができた。