SOY CMSのブログページのカテゴリページで、カテゴリごとに画像や文章の出し分けを行いたいという問い合わせがありましたので、モジュールを利用して出し分ける方法を紹介します。


カテゴリごとに出し分けというのが、


soycms_category_module

https://saitodev.co/category/勉強会・講演


soycms_category_module_001

https://saitodev.co/category/SOY CMS


こんな感じで、各カテゴリのページで表示する内容を変える。




冒頭で紹介した通り、今回もモジュールの機能を使っています。

モジュールについての詳しい説明は下記の記事をご覧ください。

SOY CMSでどのページでも使えるブログのサイドバーを作ってみた


モジュールの作成と該当する箇所にタグを挿入する方法は省略します。


モジュールが作成できたら、下記の様なコードを書きます。

今回はブログのカテゴリページのみで表示出来るようにします。


//カテゴリページのみで動作するように
if($htmlObj->mode == "_category_"){

	//現在開いているページのカテゴリ名を取得する
	switch($htmlObj->label->getCaption()){

		//カテゴリ名毎にcaseを追加して、echoでHTMLを表示させます
		case "勉強会・講演":
			echo "勉強会・講演に関する記事等々";
			break;

		case "SOY CMS":
			echo "SOY CMSやSOY ShopのTipsとか";
			break;

		//他のカテゴリも追加していく
	}
}

こんな感じのコードを書きました。


モジュールを作成すれば、専用の<!-- cms:module="parts.category" -->といったタグが生成されますので、あとはこのタグをテンプレートに張れば終了です。


タグはご覧の通り、HTMLのコメントタグで生成されているので、テンプレートをPHPの記述で汚すということが無く、リンクの出し分けができました。