「手軽にアマゾンショップ」(tamazon)をXOOPSのモジュール化する試み。
Table of contents
更新履歴
- 061118 「手軽にアマゾンショップ2」へのバージョンアップ対応を追記中。上手く動かない。
- 061119 あらためて、「手軽にアマゾンショップ2」Ver.0.12のオリジナルを試しにインストール。当然、上手く動く。-> http://www.gokuraku.org/tamazon/
- 061119 今度は、Ver.0.12のオリジナルをEUC化してインストール。上手く動かない。。。。
- 061119 今度は、Ver.0.12のUTF版のオリジナルをインストール。上手く動く。-> http://www.gokuraku.org/tamazon-utf/
- 061120 なんと、monomさんがEUC版を作ってくださりました。そのままインストールしてみると、だいじょうぶ、動きました。 -> http://www.gokuraku.org/tamazon-euc/
- 061120 XOOPSモジュール化にも成功しました。どなたからもアクセスできるはずです。 -> http://www.gokuraku.org/modules/tamazon/
- 061202 「手軽にアマゾンショップ2」がVer.0.14にバージョンアップしたので、SHIFT-JIS版、UTF版、EUC版をそれぞれアップデート。XOOPSのモジュール版
はまだですもアップデートしました。 - 061230 レイアウトを少し変更。テンプレートファイルとCSSファイルをカスタマイズ作業中。
- 商品の詳細画面で、商品画像に文字がかかってしまって見難かったのを修正。CSSのasintextをfloat:rightにし、widthを調整。
- 070117 kizuki.info(気付きインフォ) - 手軽にアマゾンショップをXOOPSモジュール化-手軽にアマゾンショップをXOOPSモジュール化-アフィリエイト1000の気付きで上手く動いていないようなので、このページの内容を再チェック中。
- 070309 「手軽にアマゾンショップ2」がVer.0.17にバージョンアップしたので、XOOPSのモジュール版を
アップデート中しました。見た目は変わりません。
まずは動作確認
config.phpの設定
- アソシエイトID、サブスクリプションIDの設定。
- サイトURL、サイトタイトルの設定。
- .htaccessによる静的URL設定
は「使わない」に設定(サーバ負荷の様子を見ます)。を「使う」に設定。上手く動いています。- (以下はVer.0.17以降は不要?)ただし、テンプレートファイルtpl_index.htmの以下を変更。
を
<link rel="stylesheet" href="./style.css" type="text/css"> <script type="text/javascript">
に。<link rel="stylesheet" href="/modules/tamazon/style.css" type="text/css"> <script type="text/javascript">
- (以下はVer.0.17以降は不要?)ただし、テンプレートファイルtpl_index.htmの以下を変更。
XOOPSのモジュール化
- PHPスクリプトをモジュール化する簡易な方法は、きたほたる.COMに紹介されていたので、このとおりにやってみた。
index.phpの修正
- ファイルの頭のほう(require_once("common.php");の直前)に下記を追加。
include("../../mainfile.php"); include (XOOPS_ROOT_PATH."/header.php"); OpenTable(); ?> <?php
- ファイルの最後に下記を追加。
<?php CloseTable(); include (XOOPS_ROOT_PATH."/footer.php"); ?>
- 「コンテンツ表示」の最後のほうの
の下あたりに下記を追加。
$html['ItemKeyword'] = Amazon_MenuName($val); } } $html['pagetitle'] = SITETITLE; }
// XOOPS_PAGETITLE and XOOPS_MODULE_HEADER $xoopsTpl->assign('xoops_pagetitle', $html['pagetitle']); $module_header = ''; $module_header .=<<<_HEADER_ <link rel="stylesheet" href="./style.css" type="text/css"> <script type="text/javascript"> <!-- function check() { if (document.input.SearchKeyword.value=="") { window.alert("検索キーワードを入力してください"); return false } } --> </script> _HEADER_; $module_header .= $head_tag; $xoopsTpl->assign("xoops_module_header", $module_header); // end of XOOPS_MODULE_HEADER - $html['pagetitle'](4カ所)を修正
を
$html['pagetitle'] = $html['Asin']['Title']." - ".$cat_name." - ".SITETITLE;に$html['pagetitle'] = SITETITLE." - ".$html['Asin']['Title']." - ".$cat_name;を$html['pagetitle'] = $html['ItemKeyword']." - ".Amazon_MenuName($AmazonMode)." - ".SITETITLE;に$html['pagetitle'] = SITETITLE." - ".$html['ItemKeyword']." - ".Amazon_MenuName($AmazonMode);を$html['pagetitle'] = $html['ItemKeyword']." - ".SITETITLE;
に$html['pagetitle'] = SITETITLE." - ".$html['ItemKeyword'];
を$html['pagetitle'] = $html['ItemKeyword']." - ".$cat_name." - ".SITETITLE;に$html['pagetitle'] = SITETITLE." - ".$html['ItemKeyword']." - ".$cat_name;
カテゴリーのメニューなどのブロック表示
- xpWikiだとカスタムブロックでできるようなので、まねて上手くいくかどうか試そうかな。
1 2 3 4 5 6 7 8 9 10 11
// 必要なファイルの読み込み (固定値:変更の必要なし) include_once XOOPS_TRUST_PATH."/modules/xpwiki/include.php"; // インスタンス化 (引数: モジュールディレクトリ名) $xw = new XpWiki("xpwiki"); // ブロック用として取得 (引数: ページ名, 表示幅) echo $xw->get_html_for_block ("MenuBar", "100%"); // オブジェクトを破棄 unset($xw);
「手軽にアマゾンショップ2」へのバージョンアップ対応のために試行錯誤した時のメモ
- monomさんがEUC版を公開してくれたので、上述のとおりにすれば、一応動くはずです。
- 以下については、結局上手く行かなかったのですが、今後テンプレートファイルのカスタマイズする際に必要になる可能性があるので、削除しないでそのままおいておきます。
- monomさんのサイトに示されている手順を少し修正。
- 下記の手順に加えて、新しく、amazontag.css、amazontag.php、tpl_amazontag.htmが追加されている様子なので、それはそのままコピーしたいところだが、うちのサイトはEUCなので、
- 文字コードをすべてEUC-JPに変換
- tpl_amazontag.htmは、4行目のcharsetをEUC-JPに
2)common.php、browsenode.php、index.phpを上書きでアップ
- common.phpは、文字コードをEUC-JPにして、JcodeConvertの引数の「2」を「1」に(181、889行目)
- browsenode.phpは、文字コードをEUC-JPに
- index.phpは、文字コードをEUC-JPにして、XOOPSのモジュール化のための修正を
3)config.phpはダウンロードした新ファイルの内容変更をしてアップするか、旧config.phpに以下の部分を追加
-------------------------------------------------------- /* ブラウズノードの取得(0:自動、1:手動) * 自動:アマゾンへ毎回リクエストを送りノードを取得する * (表示階層はアマゾンに依存します) * 手動:「browsenode.php」で定義してあるノードを表示 * (表示階層は3階層まで。それ以降はメニュー表示なし) * 手動の場合は、自由にカスタマイズできます。 */ $BNODE = 0; --------------------------------------------------------
4)tpl_index.htm、tpl_mobile.htm、style.cssの変更
新ファイルをそのままアップすることを推奨しますが、デザインカスタマイズを行っている場合は、以下を変更
ページ表示、ソート(並び替え)部分
--------------------------------------------------------
<!-- ページナビ -->
<p>アイテム数:{rval ItemTotalResults}/ページ数:{rval ItemTotalPages}</p>
<p class="pagenavi">{rval ItemPageNavi}</p>
<!--{def ItemSortNaviOpt}-->
<p class="sortnavi">
<form name="input" method="post" class="search" action="{rval siteurl}">
<input type="hidden" name="m" value="{rval ItemSortNaviM}">
<input type="hidden" name="mode" value="{rval ItemSortNaviMode}">
<input type="hidden" name="p" value="{rval ItemSortNaviPage}">
<input type="hidden" name="node" value="{rval ItemSortNaviNode}">
<input type="hidden" name="SearchKeyword" value="{rval ItemSortNaviKeyword}">
<select name="sort">
<!--{each ItemSortNaviOpt}-->
{rval ItemSortNaviOpt/option}
<!--{/each}-->
</select>
<input type="submit" name="submit" value="並び替え" class="searchbutton">
</form>
</p>
<!--{/def}-->
--------------------------------------------------------- tpl_index.htm
では、この部分は削除してしまっているので、関係ない。はとりあえずオリジナルをほぼそのまま使用(モジュール化で必要な変更のみ)。 - tpl_mobile.htmは
現在未使用(というか携帯では動作確認できていないだけ)なので、とりあえずそのままコピーしておく。EUC版、UTF版では動かないそうです。なので放置。
Counter: 683,
today: 2,
yesterday: 0
Last-modified: 2008-05-11 (Sun) 03:45:37 (JST) (241d) by gokuraku
新しくコメントをつける
コメント一覧