商品一覧ページでカテゴリー毎に表示する文言を変更する[要PHP]

パーツモジュールを利用して、

商品一覧ページでカテゴリー毎に表示する文言を替えるモジュールを作成します。

 


 

モジュールの追加はこちらを参考に作成してもらい、

新たに追加したモジュールを元に記述を進めていきます。

 

追加したモジュールを編集する画面を開くと、

<?php
//ここにモジュールとして読み込むHTML・PHPを記述してください。
//使用可能な変数
// $html テンプレートに記述されたHTML
// $htmlObj ページオブジェクト($htmlObj->createAdd()が使えます)

?>

という記述が予め記述されています。

 

 

はじめに下記のように記述し、

<?php
$page = $htmlObj->getPageObject()->getObject();
?>

 

ページオブジェクトを取得します。

 

$pageの値を見てみると、

 

object(SOYShop_ListPage)#8 (14) {
["type:private"]=>
string(8) "category"
["categories:private"]=>
array(0) {
}
["defaultCategory:private"]=>
int(1)
["fieldId:private"]=>
NULL
以下略

 

SOYShop_ListPage(商品一覧ページ)というどのテンプレートを利用しているかわかるオブジェクト名を取得できます。

 

 

本件は、商品一覧ページで使用するモジュールなので、

<?php
$page = $htmlObj->getPageObject()->getObject();

if(!($page instanceof SOYShop_ListPage)){
return;
}

?>

 

SOYShop_ListPage以外はreturnするようにすれば、商品一覧ページのテンプレート専用のモジュールになります。

 

<?php
$page = $htmlObj->getPageObject()->getObject();

if(!($page instanceof SOYShop_ListPage)){
return;
}

//カテゴリー名を取得します。
$category = $page->getCurrentCategory();
$name = ($category) ? $category->getName() : "";

//カテゴリー名毎に表示する文字列を記述します。
switch($name){
case "カテゴリ1":
echo "カテゴリ1ですよ";
break;
case "カテゴリ2":
echo "カテゴリ2ですよ";
break;
case "カテゴリ3":
echo "カテゴリ3ですよ";
break;
default:
echo "ディフォルトです";
break;

}

?>

 

あとはカテゴリー名を取得し、カテゴリー名毎に処理を記述すれば表示されるようになります。

 

 

このエントリーをはてなブックマークに追加

トラックバック

トラックバック記事記事

この記事のトラックバックURI: