複数のカテゴリを分けて表示したい 投稿する

投稿者:  投稿日時:2022-07-05 12:30:11
掲示板の連投、申し訳ありません。
何とか自力で解決しようとしましたが、どうにもできないため、解決の簡単な手順を教えてください。

ブログページについてです。
分類名/ラベル を分類ごとに表示させ、sideに表示させたいと思っています。
(ブログトップ、カテゴリページ、記事毎のすべて)
例えば、「おでん」という記事があるとします。
「食材」カテゴリのリンク(分類名:食材)
・大根(1)←ここにおでんが入る
・人参(3)
・豚肉(4)
・こんにゃく(1)←ここにもおでんが入る

「レシピ」カテゴリのリンク(分類名:レシピ)
・煮物(1) ←ここにもおでんが入る
・揚げ物(4)
・焼き物(4)

「分類」カテゴリ
・和食(1) ←ここにもおでんが入る
・洋食
・中華

とさせたいと思っています。
「このページを見ろ」でもよいので、ヒントをいただけると幸いです。
お手数ですがよろしくお願いいたします。
投稿者:齋藤毅  投稿日時:2022-07-05 13:14:57
おでんという記事に大根、こんにゃく、煮物と和食のラベルを付けたいということでしょうか?
それであれば、記事を作成する時にこれらのラベルにチェックを入れるだけで良いです。
投稿者:  投稿日時:2022-07-05 13:34:39
単にチェックを入れるだけですと、同じカテゴリの中に分類が混在する形になりませんか?
カテゴリのリンク
 ・大根(1)    (ラベル名:食材/大根)
 ・こんにゃく(1) (ラベル名:食材/こんにゃく)
 ・煮物(1)    (ラベル名:レシピ/煮物)
 ・揚げ物(4)   (ラベル名:レシピ/揚げ物)
 ・和食(1)    (ラベル名:分類/和食)
 ・洋食       (ラベル名:分類/洋食)
↑ではなく、↓のように
「食材」カテゴリのリンク(分類名:食材)
 ・大根(1)   (ラベル名:食材/大根)
 ・人参(3)   (ラベル名:食材/人参)
 ・豚肉(4)   (ラベル名:食材/豚肉)
 ・こんにゃく   (ラベル名:食材/こんにゃく)
「レシピ」カテゴリのリンク(分類名:レシピ)
 ・煮物(1)   (ラベル名:レシピ/煮物)
 ・揚げ物(4)  (ラベル名:レシピ/揚げ物)
 ・焼き物(4)  (ラベル名:レシピ/焼き物)
としたいと考えています。よろしくお願いいたします。
投稿者:齋藤毅  投稿日時:2022-07-05 14:06:53
単にチェックを入れるだけですと、同じカテゴリの中に分類が混在する形になりませんか?
申し訳ございませんが、何をしたいのかがわからないので、的確な返答ができません。

サイドバーでカテゴリ一覧を表示する際に
<h2>食材</h2>
<ul>
<li>大根(1)</li>
<li>人参(3)</li>
<li>豚肉(4)</li>
<li>こんにゃく</li>
</ul>
<h2>レシピ</h2>
<ul>
<li>煮物(1)</li>
<li>揚げ物(4)</li>
<li>焼き物(4)</li>
</ul>
のようなHTMLを出力したいということですか?
投稿者:  投稿日時:2022-07-05 14:08:40
すみません。説明が苦手でお手数をお掛けします。
例で挙げていただいた通りです。
投稿者:齋藤毅  投稿日時:2022-07-05 14:10:41
方法が記載された記事がないので、これからサンプルコードを作成して記事にします。
作成できましたら返信します。
投稿者:齋藤毅  投稿日時:2022-07-05 15:57:29
https://saitodev.co/article/4615の記事を参考にしてみてください。
投稿者:  投稿日時:2022-07-05 15:59:31
ありがとうございます。
対応の早さに感動しています。
早速試してみます!
投稿者:  投稿日時:2022-07-05 17:32:59
表示はとても良い感じで、思い通りです。しかし、リンクの設定ができていないようです。
カテゴリ/設定・操作方法 という分類にしましたが、
<a href="//ブログ名/category/***_サイト名">設定・操作方法</a>
***は「%E3%・・・」といった文字
よろしくお願いいたします!
投稿者:齋藤毅  投稿日時:2022-07-05 17:37:20
リンクの設定ができてないというのは具体的に何なのでしょうか?

設定・操作方法
***は「%E3%・・・」といった文字
上記の意味がわからないので、設定・操作方法で設定した手順や今問題になっている内容を箇条書きで順を追って記載して頂けないでしょうか?

設定・操作方法
の表記と出力されるURLのリンクが異なっているので、ラベルのエイリアスの変更等の操作を行っていませんか?
投稿者:  投稿日時:2022-07-05 18:38:07
失礼いたしました。
添付のトラブル部分のHTMLは下記の通り。
<a href="//”ブログ名”/category/category">	トラブル</a>
設定・操作方法は
<a href="//”ブログ名”/category/%E3%82%AB%E3%83%86%E3%82%B4%E3%83%AA_%E3%83%88%E3%83%A9%E3%83%96%E3%83%AB_”サイト名">設定・操作方法</a>
”ブログ名””サイト名”部分、実際はアルファベットで表示されています。
1段ずつずれていて、かつ、リンクの中身の順番も違うように感じます。
理解していただけましたでしょうか?
投稿者:齋藤毅  投稿日時:2022-07-05 19:01:10
<a href="//”ブログ名”/category/category">	トラブル</a>
上記の内容ですが、トラブルというのはカテゴリ名ということで良いですか?
トラブルというラベルを生成すると、URLはトラブルをrawurlencodeで文字列を変換するのですが、トラブルラベルがcategoryに変換されるのはおかしいです。

トラブルをrawurlencodeで変換すると%E3%83%88%E3%83%A9%E3%83%96%E3%83%ABになります。

"//"ブログ名"となっていますが、これは一体何ですか?
ブログページの設定にありますブログのアドレスのことですか?

設定・操作方法の方ですが、設定・操作方法というラベルを作成した時、ラベルのURLを変更しなければ、rawurlencodeした時に
//”ブログ名”/category/%E3%82%AB%E3%83%86%E3%82%B4%E3%83%AA_%E3%83%88%E3%83%A9%E3%83%96%E3%83%AB_”サイト名"
太字の箇所の_(アンダースコア)は入りません。

上記のURLのサイト名の前に"(ダブルクオーテーション)が入っていることもよくわかりません。
そもそもどのような設定をして、カテゴリURLの末尾にサイト名が入るのでしょうか?

これらの疑問に対して何らかの設定の変更はしていませんか?

これらの疑問が明確にならない限り、原因の調査をすることができません。

1段ずつずれていて
上記の1段とは一体何なのでしょうか?

キャプチャにあります、カテゴリの帯ですが、ラベル作成時のラベル名を「カテゴリ/トラブル」や「カテゴリ/設定・操作方法」にしたのでしょうか?
それとも「トラブル」や「設定・操作方法」にしたのでしょうか?

ここらへんの設定もどのようにしたのか?がわかりません。

SOY CMSで分類分けしたカテゴリ一覧を出力するの記事に記載したサンプルコードはそのまま使用していますか?
改変しているのであれば、改変内容も教えてください。
投稿者:  投稿日時:2022-07-06 10:18:36
大変お手数をお掛けします。
ラベルのURLを日本語で書いてしまっているという私の大きなミスがありました。
以前まではこれで引っかかることがなかったので、見逃していました。

いただいている質問を上から回答します。
分類名/ラベル を 以下のようにしました
カテゴリ/トラブル
カテゴリ/設定・操作方法

太字の箇所の_(アンダースコア)は入りません。
_(アンダースコア)は前述のラベルのURLに日本語とともに付けたものでした。(混乱を招いてすみません)現在は
category-trouble
category-operation
としています。

カテゴリ/トラブルをクリックするとURL欄に以下のように表示され
http://faq/category/category-trouble
このサイトにアクセスできません
と表示されます。

"//"ブログ名"
とは、仰る通り、ブログのアドレスです。 以前は、
http://172.67.10.142/product/faq/category/category-trouble
と表示されていました。

1段ずつずれていて
は、「設定・操作方法」をクリックすると「トラブル」のようなURLが設定されていたと思いましたが、
単純にこちらの勘違いと思われます。

キャプチャにあります、カテゴリの帯ですが、
こちらで手動で作成した帯です。
<h2>カテゴリー</h2>
にCSSを付けています。

サンプルコードはそのまま使用していますか?
以下の通りコピペしました。
<!-- cms:module="common.classify_category" cms:blog="1" -->
					<!-- b_block:id="classify_category" -->
					<div cms:id="classify">分類名</div>
					<ul>
						<!-- b_block:id="category_list" -->
						<li>
							<a cms:id="category_link">
								<!-- cms:id="category_name" -->ダミーカテゴリー<!-- /cms:id="category_name" -->
							</a>
							 (<!-- cms:id="entry_count" -->00<!-- /cms:id="entry_count" -->)
						</li>
						<!-- /b_block:id="category_list" -->
					</ul>
					<!-- /b_block:id="classify_category" -->
					<!-- /cms:module="common.classify_category" -->

以上です。
慌てて模索しながら作業していたので、諸々ご迷惑をおかけしております。
改めて一つ一つチェックしながら進めてみます。
投稿者:齋藤毅  投稿日時:2022-07-06 10:23:31
整理して頂きありがとうございます。

先にcms:moduleの箇所ですが、もしブログページにcms:module="common.classify_category"を挿入しているのであれば、
<!-- cms:module="common.classify_category" cms:blog="1" -->
の箇所のcms:blog="1"を外し
<!-- cms:module="common.classify_category" -->
のように変更してみてください。
cms:blogに関しては先日お伝えしましたhttps://saitodev.co/article/4615に記載があります。
投稿者:  投稿日時:2022-07-06 13:02:47
<!-- cms:module="common.classify_category" -->
と、上記のようにcms:blog="1"を外しましたが、
urlは以下のままでした。
http://faq/category/category-trouble
漏れている箇所がある気がするのでもう少しちゃんと確認してみます。
投稿者:齋藤毅  投稿日時:2022-07-06 14:01:53
http://faq/category/category-trouble
上記の問題がわからないのですが、
URL内でドメインの箇所の172.67.10.142
サイトIDだと思いますが、productがないという認識で良いですか?
投稿者:  投稿日時:2022-07-07 15:05:15
返信が遅れましてすみません。
ご指摘通り
172.67.10.142/product/
が表示されません。
投稿者:齋藤毅  投稿日時:2022-07-07 15:55:45
<!-- cms:module="common.classify_category" -->
上記のモジュールのコードを確認しましたが、出力されるカテゴリのリンクのURLはスラッシュから始まる絶対パスになっているので、

http://faq/category/category-trouble
上記のコードで、http://から始まっているのはおかしいです。

該当箇所の出力は
/faq/category/category-trouble
ではないですか?

http://172.67.10.142/product/faq/category/category-trouble
が正しいURLであるならば、設定内容は

サイトのドメインが「172.67.10.142
サイト作成の時のサイトIDは「product
作成したブログページのURLが「faq
ブログページのカテゴリ別アーカイブページのURLが「category
トラブルラベルで設定したURLが「category-trouble
になりますか?
投稿者:  投稿日時:2022-07-07 16:25:31
単純にURLバーをコピペして貼り付けてしまいましたが、
HTML上ではご指摘の通り、
http://
はつかず、
<a href="//faq/category/category-trouble">
でした。※faqの前は/が2つ。

[SOY CMSで分類分けしたカテゴリ一覧を出力する]の変更前ですと、
http://172.67.10.142/product/faq/category/category-trouble
でした。
回答になっていますでしょうか?
投稿者:齋藤毅  投稿日時:2022-07-07 16:29:48
サイトのルート設定はしていますか?
ルート設定とは、サイトIDがproductだった場合、トップページのURLが
http://172.67.10.142/product/
ではなく、
http://172.67.10.142/
になる設定のことです。
投稿者:  投稿日時:2022-07-08 09:54:21
お手数をお掛けしております。
社内のわかる者に確認してルート設定してみましたが、状況は変わりませんでした。

現時点でのサイドメニューの見た目は添付の通り。それぞれリンク先ですが、
新着Aは、
リンクアドレスをコピー
http://172.67.10.142/product/faq/article/%E6%96%B0%E7%9D%80A
HTMLをコピー
<a href="http://172.67.10.142/product/faq/article/%E6%96%B0%E7%9D%80A">新着A</a>
トラブルは、【分類/カテゴリー】を採用した『カテゴリ/トラブル』です。
リンクアドレスをコピー
http://faq/category/category-trouble
HTMLをコピー
<a href="//faq/category/category-trouble">トラブル</a>
何か、こちらの設定で変更すべき点が見つかれば良いのですが、
やはりルート設定の問題でしょうか?
投稿者:齋藤毅  投稿日時:2022-07-08 10:22:06
サイトのルート設定はしていますか?
把握したいのは、ルート設定をしているかどうかで、ルート設定はしてもしなくてもどちらでも良いです。
文面からルート設定していないようでしたので、ルート設定無しの方で話を進めます。

https://saitodev.co/app/bulletin/board/topic/detail/146#702
のやりとりにあります設定内容の確認の箇所の返答を頂けますか?

現時点では、サイトの設定がどのようになっているかがわからず、どのようなURLが出力されれば良いのかが判断できません。

ルート設定していない前提ですので、出力されるべきURLは
/product/faq/category/category-trouble
になるかと思いますが如何でしょうか?
投稿者:  投稿日時:2022-07-08 11:56:21
サイトのドメインが「172.67.10.142」
サイト作成の時のサイトIDは「product」
作成したブログページのURLが「faq」
ブログページのカテゴリ別アーカイブページのURLが「category」
トラブルラベルで設定したURLが「category-trouble」
上記の内容で合っています。よろしくお願いいたします。
投稿者:齋藤毅  投稿日時:2022-07-08 12:20:10
ご確認をありがとうございます。
返答の内容であれば、URL出力時にproductの箇所が空になり、
//faq/category/category-trouble
faqの前のスラッシュが2本になっています。

product(サイトID)の箇所が空になってしまった原因がわかりませんので今の所解決策はありません。

応急処置として、
/CMSインストールディレクトリ/common/site_include/module/common/classify_category.php
の141行目にあります
if(!$site->getIsDomainRoot()) $siteUrl .= $site->getSiteId() . "/";

if(!$site->getIsDomainRoot()) $siteUrl .= "product/";
に変更したら、意図したリンクの出力になるかもしれません。
投稿者:  投稿日時:2022-07-08 12:31:29
表示されました!ありがとうございます。
拙い私の説明に長くお付き合いいただき、感謝しています。
SoyCMSをこれからも応援します。(全くお役に立てる自信はありませんが。)
今後ともどうぞよろしくお願いいたします。
投稿者:齋藤毅  投稿日時:2022-07-08 13:50:00
ご確認をありがとうございます。
今回の修正が意図通りの出力になったとのことで良かったです。

今回の修正分を今後のバージョンアップで消えないように下記の対応をしておいた方が良いです。

/CMSインストールディレクトリ/common/site_include/module/common/classify_category.php
のコードを
/CMSインストールディレクトリ/product/.module/common/classify_category.php
にコピーします。

これでバージョンアップをしても、classify_categoryモジュールが上書きされることはありません。

詳しくは下記の記事に記載があります。
SOY Shopで一つのページで同じshop:moduleを二回使用したい

今後ともSOY CMSをよろしくお願いします。
投稿者:  投稿日時:2022-07-10 13:32:36
今、適用しました。
何から何までありがとうございます!
これからもご活躍を期待しています。
ログインして投稿する