カスタムフィールドアドバンスド「記事」のリンク、カテゴリーについて 投稿する

投稿者:mitsu  投稿日時:2021-11-09 23:58:43
度々お世話になります。

現在、ブログ記事詳細ページにおいて、関連リンクエリアのようなものを検討しております。
想定としては、各詳細画面のコンテンツ内容に応じて、サイト内のブログ詳細画面へユニークなリンクを貼ることができます。
リンクの数は、1〜3ぐらいです。

当方でもすぐに思いついたのは、記事詳細の編集画面の「追記」欄に、
リンク先の各情報(ルート相対パス、ラベル名、タイトル名、カスタムフィールド1)を
以下のようにhtmlで直接記載する方法でした。

		<a href="/art/article/4">
		<div>ラベル名</div>
			<h2>タイトル名</h2>
			<h3>カスタムフィールド1</h3>
		</a>

複数のリンク先であれば、上記を増やします。


もっとスマートにできないかと考え、当ブログの以下も参考にさせていただき、

・カスタムフィールド「記事」内でサムネイルプラグインを動かしたい
・SOY CMSのカスタムフィールドに「ラベル」の追加を希望します

カスタムフィールドアドバンスドの「記事」フィールドで、
当方が想定した関連リンクエリアが作れないか検討してみると、
b_block:id内において、

		<a cms:id="*****_entry_link">
		<div><!-- cms:id="*****_category_name" -->ラベル名<!-- /cms:id="*****_category_name" --></div>
			<h2><!-- cms:id="*****_title" -->タイトル名<!-- /cms:id="*****_title" --></h2>
			<h3><!-- cms:id="*****_more" -->追記に変更<!-- /cms:id="*****_more" --></h3>
		</a>

記載のない、記事へのリンク(_entry_link)や
カテゴリー名(_category_name)も試してみましたが、変換はされませんでした。

大変恐れ入りますが、

そもそも、当方が検討している関連リンクをページごとにユニークな1〜3のリンク先(ブログ記事)へ設ける場合には、
記事フィールドのような選択しやすいUIを利用できるような他の有効な方法があるのでしょうか?

または、カスタムフィールドアドバンスドの「記事」フィールドをうまく利用すれば、リンクを作成したり、
ラベル名(リンク先の記事のカテゴリー名)を表示することも可能なのでしょうか?

よろしければ、お時間があるときにアドバイスをいただけると幸いです。
何卒よろしくお願いいたします。
投稿者:齋藤毅  投稿日時:2021-11-10 05:54:00
先にカスタムフィールドアドバンスドの記事フィールドのついてですが、
<a cms:id="*****_entry_link">
<div><!-- cms:id="*****_category_name" -->ラベル名<!-- /cms:id="*****_category_name" --></div>
	<h2><!-- cms:id="*****_title" -->タイトル名<!-- /cms:id="*****_title" --></h2>
	<h3><!-- cms:id="*****_more" -->追記に変更<!-- /cms:id="*****_more" --></h3>
</a>
上記のコードで、cms:id="*****_entry_link"とcms:id="*****_cateogory_name"のタグが用意されていないので、意図通りの出力にはなりませんでした。

cms:id="*****_entry_link"の方は解決方法がありまして、
<a cms:id="*****_entry_link">

<a href="/art/article/<!-- cms:id="*****_id" /-->">
に書き換えるとおそらく意図通りの動作になるはずです。

厄介なのがカテゴリ名の箇所で、カスタムフィールドアドバンスの記事フィールドの記事は何のカテゴリ(ラベル)と紐付いているのか?が現時点ではわからないことになっています。

記事が複数のブログで表示されていないことが前提でカテゴリ名を出力できるタグを設けてみます。
改修に少々お時間を下さい。
投稿者:mitsu  投稿日時:2021-11-10 08:08:25
早速のご返事を有難うございます!

記事へのリンクの仕方について理解できました。
助かります。

カテゴリの出力についても恐れ入ります。
記事を単独のブログで表示する想定でしたので
もし可能でしたら、お時間のあるときご対応いただけると幸いです。

何卒よろしくお願いいたします。
投稿者:齋藤毅  投稿日時:2021-11-11 12:02:19
本件ですが
<a href="/art/article/<!-- cms:id="*****_id" /-->">
	<div><!-- cms:id="*****_label_caption" -->ラベル名<!-- /cms:id="*****_label_caption" --></div>
	<h2><!-- cms:id="*****_title" -->タイトル名<!-- /cms:id="*****_title" --></h2>
	<h3><!-- cms:id="*****_more" -->追記に変更<!-- /cms:id="*****_more" --></h3>
</a>
上記のようにすれば出力されるようにしました。

当初の話題にありましたcms:id="*****_category_name"ではなく、cms:id="*****_label_caption"にした理由は、SOY CMSのデータベースの仕様でして、SOY CMS内では、categoryというデータがなく、categoryの代わりにlabelを用いているからです。

本件が反映されたものは下記のページからダウンロードできます。
https://saitodev.co/soycms
投稿者:mitsu  投稿日時:2021-11-11 14:37:11
早速にご対応をいただき有難うございます。

いただいた内容を試して見ようと最新版にアップグレードしたところ、
なぜか別の箇所で、これまで出力できていた以下のことが出来なくなっておりました。

■ ブログトップ b_block:id="entry_list" 内や、ページ内のblock:id="home_list" 内

のうち、カスタムフィールドアドバンスドで指定した
記事編集画面のラベル下にある6項目(ぐらい)が、
記事で入力されている画像やテキストに変換されない。


他のカスタムフィールドアドバンスドのフィールドは、問題ありませんでした。

大変お手数をおかけしますが、
上記現象が発生したのが、バージョンアップ後でしたので、
何か関係があるかもしれず、アドバイスをいただけると幸いです。

何卒よろしくお願いいたします。
投稿者:齋藤毅  投稿日時:2021-11-11 14:41:58
■ ブログトップ b_block:id="entry_list" 内や、ページ内のblock:id="home_list" 内

のうち、カスタムフィールドアドバンスドで指定した
記事編集画面のラベル下にある6項目(ぐらい)が、
記事で入力されている画像やテキストに変換されない。
上記の内容から不具合の特定は難しいので、何の項目であるかをお伝え下さい。
例えば、追加したフィールドのタイプ(一行テキスト等)

出力されないのはカスタムフィールドアドバンスドで指定した全ての項目なのか?
それとも一部なのか?

一応、バージョンアップ後はキャッシュの削除を推奨しており、キャッシュの削除でも症状は改善されなかった等です。
投稿者:mitsu  投稿日時:2021-11-11 14:48:18
早速に有難うございます!

複数のブログで共通の現象として、起こっているようで、
フィールドのタイプは、カスタムフィールドアドバンスドで指定した
一行テキスト、画像(付随するalt)だけなのですが、
いろいろ調べてみると、どうやら、記事編集画面に追加した同カスタムフィールドアドバンスドの項目のうち、
ラベル(追記欄の下)の下に配置されている5項目(最後の項目は画像フィールドのためalt欄がありそれを加えると6項目)が、反応していないようです。

ちなみに6項目目以降は、正常に書き換えられております。

キャッシュもクリアしてみましたが、変わりませんでした。

大変お手数をおかけしますが何卒よろしくお願いいたします。
投稿者:齋藤毅  投稿日時:2021-11-11 14:55:39
本件ですが、おそらくですが、直接設定内容を見ないと解決は難しいかもしれません。
可能であれば、管理画面のURLとログイン可能なアカウント、FTP用のアカウントをお問い合わせ経由でお伝え下さい。
投稿者:齋藤毅  投稿日時:2021-11-11 15:10:16
私の開発環境で、カスタムフィールドアドバンスドを6項目(一行テキスト ✕ 3、alt付き画像 ✕ 3)を設けて、公開側で表示の確認を行いましたが、公開側でカスタムフィールドの値が表示されないという症状は見られませんでした。

おそらくテンプレートの記述方法に誤りがある可能性があります。
テンプレートを作成された時のSOY CMSのバージョンがわかりませんので、これ以上の判断は難しいです。
投稿者:mitsu  投稿日時:2021-11-11 15:22:22
お世話になります。

遅くなりましたが、さきほどお問い合わせにて環境をご連絡させていただきました。

SOY CMSのバージョンについては、当初インストールした時点では、3.1.3.34でしたが、
カスタムフィールドアドバンスを利用し出した頃は、3.1.3.69になりまして、
その後、諸々ご質問をさせていただき、76→79→81に至ります。

今回、問題が起きたのが81になります。

大変お手数をおかけしてしまい、恐れ入ります。

標準のサポートの範疇を超えているようでしたら、別途ご相談をさせていただけると幸いです。
何卒よろしくお願いいたします。
投稿者:齋藤毅  投稿日時:2021-11-11 15:27:14
先ほど、アカウント情報が届きました。
ありがとうございます。

ブログトップ b_block:id="entry_list" 内や、ページ内のblock:id="home_list" 内
上記の内容はどのページに設定されていますか?
投稿者:mitsu  投稿日時:2021-11-11 15:37:40
ご返事を有難うございます!

ブログトップは、Art, Design, Newsのすべての51行目ぐらい(クラス名clistの直後)になります。
Artの場合、54行目の画像フィールド(artthumbnail)
Designの場合、57行目の画像フィールド(artthumbnail)
Newsの場合、56行目のnews_gray、58行目のnews_thumbnail_title、59行目のnews_thubnail_sub

ページ内は、
Homeの42行目のうち、45行目のnews_thumbnail_title、47行目のnews_thubnail_sub、49行目のhome_white
になります。
その他、New Art、News Design、Newsのページも同様のIDが表示されません。

何卒よろしくお願いいたします。

ちなみに、問題が起きたバージョンは、81ではなく88でした。失礼いたしました。
投稿者:齋藤毅  投稿日時:2021-11-11 15:42:37
取り急ぎ、ブログトップは原因が分かりまして修正致しました。
Artの場合、54行目の画像フィールド(artthumbnail)
上記の件はArtのブログトップを開いて、文字列検索をかけてみましたが引っかからずで発見できていません。

おそらく今回の修正で他のページも修正されている可能性がありますので、表示の確認をお願いします。
投稿者:mitsu  投稿日時:2021-11-11 15:58:08
早速に有難うございます!

拝見し、すべての画面でもとのようにサムネイル画像や関連するテキストが記事の内容を反映できておりました。
大変助かりました!

ご連絡いただいたArtの54行目に関しても、問題なく画像が反映できております。
当方のテンプレートの記述方法など、おかしなところなど、ご指摘いただけると助かります。

この後、ご対応いただいたラベル(カテゴリ)についても確認させていただきます。

お手数をおかけしますが、
ひきつづきよろしくお願いいたします。
投稿者:mitsu  投稿日時:2021-11-11 16:22:24
たびたびお世話になります。
遅ればせながら、作成いただいた_label_captionも、問題なくページに反映できました。
有難うございました!

ちなみに、1つの記事は、1つのブログのみに紐付いているのですが、

関連リンクのリンク先を複数のブログで検討している場合には、
_label_captionに加えて、_label_nameなどのように
<code>
<a href="/<!-- cms:id="relatedcontent02_label_name" /-->/article/<!-- cms:id="relatedcontent02_id" /-->">
</code>
というように、カテゴリーのディレクトリ名を指定することは、難しいそうでしょうか。

きちんと理解しておらず、恐れ入りますがアドバイスをいただけると幸いです。
何卒よろしくお願いいたします。
投稿者:齋藤毅  投稿日時:2021-11-11 19:02:41
カテゴリーのディレクトリ名を指定することは、難しいそうでしょうか。
上記の件はすぐに対応できますので、明日対応します。
ちなみにカテゴリの基になっているラベルのディレクトリに関する値をエイリアスと呼びますので、
/<!-- cms:id="relatedcontent02_label_alias" /-->
にする予定です。
投稿者:mitsu  投稿日時:2021-11-11 21:15:04
早速のご返事を有難うございます!

エイリアスについても承知いたしました。
お手数をおかけしますが何卒よろしくお願いいたします。
投稿者:齋藤毅  投稿日時:2021-11-12 10:22:51
cms:id="***_label_alias"タグとcms:id="***_blog_uri"タグを追加しました。

cms:id="***_label_alias"は添付されている画像にあるラベル詳細のURLの値を出力します。
cms:id="***_blog_uri"は指定のラベルがブログページの使用するラベルに設定されている場合は、紐づくブログページのURIを出力します。

要件を読み直してみたら、cms:id="***_blog_uri"の方が該当しそうだったので、両方作成してみました。

対応したものは下記のURLからダウンロードできます。
https://saitodev.co/soycms
投稿者:mitsu  投稿日時:2021-11-12 11:48:52
お世話になっております。
2つのタグまでご用意いただき感謝です!

早速、試してみて、_label_aliasについては、選択したラベルのURLの値が出力するとのこと、理解できました。
こちらに関しては、そのラベルがブログに紐付いているかどうか関係なくdesignや、階層構造にしているdesign_graphicなどが出力されました。

また、新たに作成いただいた_blog_uriも同時に試したところ、
・design(ブログに指定)では、designが出力されました。
・design(ブログに指定)の下に階層化したdesign_graphicでは、なにも出力されません。

大変恐れ入りますが、

当方のように、ラベルを階層化している場合ですと、_blog_uriの挙動として、
階層化しているラベルを選択すると、その一番上の親のラベル(または、ブログに指定しているラベル)の値を出力いただけると
ユーザーが記事編集画面において、階層化されたセレクトメニューで該当する記事数が減り、絞り込みやすいのではと考えております。

上記のような仕様についてアドバイスをいただけると幸いです。
大変お手数をおかけしますが何卒よろしくお願いいたします。
投稿者:齋藤毅  投稿日時:2021-11-12 11:57:55
階層化しているラベルを選択すると、その一番上の親のラベル(または、ブログに指定しているラベル)の値を出力いただける
上記の件の対応は難しいです。
ラベル名のスラッシュ区切りで親子関係を表現していますが、見た目だけで、データベース上でどのラベルに親子関係があるか?のデータは扱っていません。

もし、designとdesign_graphicのラベルでどのページでもURLの項目の値を利用していないであれば、URLの項目に出力したいURIを入れておいて、cms:id="***_label_alias"で出力するという手があります。
投稿者:mitsu  投稿日時:2021-11-12 12:22:19
早速のご返事を有難うございます!

親子関係があるかをデータで扱っていないとのこと承知いたしました。

また、教えていただいたDesignとDesign/GraphicのラベルのURLを変更する方法を試したところ、
Designのurlであるdesignを変更していない状態で、Design/GraphicのURLをdesign_graphicから、designへ変更しようとしても、
更新に失敗してしまいました。
試しに、design2などにすると更新できました。

当方の理解が足りず恐れ入りますが、ラベルのURLは、他と競合するものはつけられないとの理解であっておりますでしょうか?
その場合、Design/GraphicのURLをdesign/articleなどにして、a(アンカー)タグ内を調整すればひとつのラベルに関してはなんとかきちんとしたパスを再現できそうですが、複数の親子関係にあるラベル(その他にあるLogo, Package, Spaceなど)もユニークなURLにはできないので、難しそうでしょうか?

そもそも解釈が間違っているかもしれないですし、または、上記で解決方法などあれば、
アドバイスをいただけると幸いです。

何卒よろしくお願いいたします。
投稿者:齋藤毅  投稿日時:2021-11-12 12:28:03
ラベルのURLは、他と競合するものはつけられないとの理解であっておりますでしょうか?
上記の理解で間違いありません。

親ラベルを辿るのは難しいですが、できるかもしれませんので挑戦してみます。
投稿者:mitsu  投稿日時:2021-11-12 12:30:01
早速にご返事をいただき、恐れ入ります。

大変お手数をおかけしますが
ご検討のほどよろしくお願いいたします。
投稿者:齋藤毅  投稿日時:2021-11-12 14:49:00
https://saitodev.co/soycms
取り急ぎ、親ラベルを辿る処理を追加してみました。

例えば、ブログ/ラベルAがあり、ブログラベルがブログページに紐付いていたとします。
cms:id="***_label_caption"はラベルAになります。
cms:id="***_blog_uri"はブログラベルに紐付いたブログページのURIになります。
cms:id="***_label_alias"はブログ/ラベルAのラベルのURLの項目に登録した値になります。

ここから内容を詰めていくことにしましょう。
投稿者:mitsu  投稿日時:2021-11-12 16:10:03
素晴らしいです!
有難うございます。

調整いただいた_blog_uriと_idを用いることで、
紐付いているブログ記事へのリンクが作成できました!

当方の場合、_label_captionにあたる部分は、記事毎に書き換える可能性もあるため、
追記としてユーザーが編集できる仕様にしようと考えているため、作成いただいた仕様で大丈夫そうです。


一方で、今後、他の方含め、この仕組みを利用する際には、
_label_captionのブログ版として_blog_captionのようなタグも利用できるとよりよいように感じました。

細かな違いですが、当方の今回の内容ですと、選択した記事のラベルがDesign/Graphicだとすると、
_label_captionを用いて、Design/Graphicを表示することはできるのですが、紐付いているブログ名のDesignは使用できません。

よろしければ、上記に関してもお時間のある時にご意見をいただけると幸いです。
お手数をおかけしますが何卒よろしくお願いいたします。

大変助かりました。
投稿者:齋藤毅  投稿日時:2021-11-12 17:57:36
_label_captionのブログ版として_blog_captionのようなタグも利用できるとよりよいように感じました。
_blog_captionというのはブログページのタイトルの事でしょうか?
今の仕様であれば、新たに追加することは難しい事はありませんので、来週の月曜までには実装してみます。
投稿者:mitsu  投稿日時:2021-11-12 20:02:49
早速のご返事を有難うございます!

_blog_captionというのは、当初、ブログに紐付いている上位のラベル名を想定しておりました。

しかし、教えていただいたように、データ上では、ラベルに階層関係はないので、
Design/Graphicの上のラベルであるDesignのラベル名を取得するという考え方ではなく、
ラベル(Design/GraphicやDesignなど)にひもづいているブログタイトルであれば取得できるのですね?

当方の場合、上位(と思っている)のラベル名(Art)と各ブログに紐付いているブログタイトル(Art)は、
同一の名称にしているため、ご提案いただいたブログページのタイトルで大丈夫です。
(おそらく一般的にもご提案いただいた仕様で問題ないのではと思いました。)

重ね重ね、お手数をおかけしますが
何卒よろしくお願いいたします。
投稿者:齋藤毅  投稿日時:2021-11-13 05:20:45
cms="***_blog_title"を追加しました。
反映版は下記ページからダウンロードできます。
https://saitodev.co/soycms
投稿者:mitsu  投稿日時:2021-11-13 11:40:52
お世話になっております。
週末にも関わらず、早速にご調整をいただき感謝です!

早速試そうと3.1.3.95にアップグレードしたところ、
なぜか、カスタムフィールドアドバンスドで追加した
一行テキストと複数行テキストのフィールドが
ブログ全般にわたり、表示されなくなりました。

大変お手数をおかけしますが、
ご確認をいただけると幸いです。

何卒よろしくお願いいたします。
投稿者:mitsu  投稿日時:2021-11-13 12:32:09
念のため、3.1.3.94にダウングレードしたところ、
上記、フィールドが表示されるようになりました。

ご参考になれば、幸いです。
投稿者:齋藤毅  投稿日時:2021-11-13 20:07:25
なぜか、カスタムフィールドアドバンスドで追加した一行テキストと複数行テキストのフィールドがブログ全般にわたり、表示されなくなりました。
上記の内容では、原因調査が難しいです。

バージョンアップした直後に公開側のブログページを確認して、表示されなくなったことがわかったのか?
それともテンプレートで何らかの編集を行った後にバージョンアップ後はじめて公開側のブログページを開いてカスタムフィールドの項目が表示されなくなったのか?

なぜかという表現だけですと、原因の特定が困難になることが多いので、何の操作をしたのか?もしくはしていないのか?の詳細はほしいです。
投稿者:mitsu  投稿日時:2021-11-13 20:13:18
早速にご返事をいただき恐れ入ります。

追加した一行テキストと複数行テキストがすべて表示されなくなりました。
ブログ全般というのは、上記の一行テキストと複数行テキストで入力した内容が、
ブログページ(b_block)や、ブログではないページ(block)で表示されない状態です。

お手数をおかけしますが、ご確認をいただけると幸いです。
何卒よろしくお願いいたします。
投稿者:齋藤毅  投稿日時:2021-11-13 20:24:59
1箇所、怪しい箇所がありましたので修正しました。
https://saitodev.co/soycmsでダウンロードできるようにしてあります。

表示周りのみの修正で、データベースに影響を与えるというものではありません。
投稿者:mitsu  投稿日時:2021-11-13 20:57:07
早速に有難うございます!

元の状態に戻りました。
助かりました!
投稿者:mitsu  投稿日時:2021-11-13 21:25:05
遅ればせながら、ご変更いただいた_blog_titleも、当方環境にて利用できました。

諸々、有難うございました!

お手数をおかけしますが、
今後ともよろしくお願いいたします。
ログインして投稿する