SOY CMS カスタムフィールド「記事」で記事本文以外を出力させたい

機能の改善・追加に関するリクエストはこちらにお願いします。

SOY CMS カスタムフィールド「記事」で記事本文以外を出力させたい

投稿記事by polka on 2020年1月10日(金) 17:51

いつもありがとうございます。

表題通りなのですが、
カスタムフィールド「記事」の現状は記事本文しか出力させられないと思います。

これを、本文に加えて、

・タイトル
・追記
・作成日時

を出力させることはできますでしょうか?
(できればカスタムフィールドも、なのですけれど)


例えば、
hogeというカスタムフィールド「記事」を作ったとして、
次のような使い方ができれば、とおもっております。

<!-- cms:id="hoge" -->
<div><!-- cms:id="create_date" cms:format="Y.m.d" -->呼び込む記事の作成日時<!-- /cms:id="create_date" --></div>
<h3><!-- cms:id="title_plain" -->呼び込む記事のタイトル<!-- /cms:id="title_plain" --></h3>
<p>
<!-- cms:id="content" cms:length="100" -->
呼び込む記事の本文先頭100文字
<!-- /cms:id="content" -->
</p>
<!-- /cms:id="hoge" -->


ご検討よろしくお願い致します。
polka
 
記事: 222
登録日時: 2013年5月20日(月) 08:15
所在地: 大阪府泉大津市二田町1-20-30-2F

Re: SOY CMS カスタムフィールド「記事」で記事本文以外を出力させたい

投稿記事by inunosinsi on 2020年1月11日(土) 03:49

コード: 全て選択
<!-- cms:id="hoge" -->
<div><!-- cms:id="create_date" cms:format="Y.m.d" -->呼び込む記事の作成日時<!-- /cms:id="create_date" --></div>
<h3><!-- cms:id="title_plain" -->呼び込む記事のタイトル<!-- /cms:id="title_plain" --></h3>
<p>
<!-- cms:id="content" cms:length="100" -->
呼び込む記事の本文先頭100文字
<!-- /cms:id="content" -->
</p>
<!-- /cms:id="hoge" -->


上記のようにcms:hogeで囲った箇所内で記事用に用意されたcms:idを使うといった仕様は出来ませんので、代わりに

記事フィールドのフィールドIDがhogeの場合にcms:id="hoge"で本文を出力しますが、隠し機能として
cms:id="hoge_title"で記事名
cms:id="hoge_more"で追記
cms:id="hoge_create_date"で作成日
を出力するようにしました。

対応したパッケージは下記のURLからダウンロードできます。
https://saitodev.co/soycms/
大阪でフリーのプログラマをしています。
以前はSOY CMSの開発元で働いていました。

SOY ShopのプラグインやSOY Appの開発のサポートをしています。
http://saitodev.co/soycms(SOY CMSのマニュアルを作成しています)

最近はSOY Shopを業務アプリとして使用できないか?と模索しています。
SOY Shopで管理画面のみ使用モードを追加しました - saitodev.co

株式会社京都農販(SOY Shopのサイト)
株式会社コトブキ園(SOY Shop)
inunosinsi
 
記事: 861
登録日時: 2008年6月12日(木) 20:48

Re: SOY CMS カスタムフィールド「記事」で記事本文以外を出力させたい

投稿記事by polka on 2020年1月11日(土) 09:07

inunosinsi さんが書きました:
記事フィールドのフィールドIDがhogeの場合にcms:id="hoge"で本文を出力しますが、隠し機能として
cms:id="hoge_title"で記事名
cms:id="hoge_more"で追記
cms:id="hoge_create_date"で作成日
を出力するようにしました。



早速ありがとうございます! 活用させていただきます!

いくつか希望を申し上げます。(五月雨式にすみません)

【01】
cms:id="hoge_entry_id"を追加してほしい。

ブロック指定でブログページを選ぶような感じで、
この記事フィールドでもリンクを付与できれば、と思うのですけれど、
複雑すぎて難しいだろうと想像します。
代わりに、もしIDがあれば、静的に記述するかjavascriptでリンクをつけて、
その記事のページへ飛ばせることができそうです。
リンクを付けやすくなると、様々に応用できそうです。
例えば、ブログページ「記事」の中に、あたかも個別の記事リスト(b_block:id="entry_list")があるような使い方、などです。

【02】
本文(追記)にcms:lengthを使いたい。

01の希望にも絡んでくるのですが、cms:lengthを使って本文の冒頭だけを見せておいて、
詳細は遷移先の「その記事の」ページで参照させることができれば、と思っております。

【03】
cms:id="hoge_content"としても使いたい。

cms:id="hoge"は、cms:id="hoge_content"として記述しても使えるようになっていると、
統一性がでてわかりやすいと思います。


以上、ご検討よろしくお願い致します。
polka
 
記事: 222
登録日時: 2013年5月20日(月) 08:15
所在地: 大阪府泉大津市二田町1-20-30-2F

Re: SOY CMS カスタムフィールド「記事」で記事本文以外を出力させたい

投稿記事by inunosinsi on 2020年1月12日(日) 06:55

下記の機能を追加しました。
記事フィールドでフィールドIDが***の場合、
cms:id="***_id"とcms:id="***_content"のタグを追加
cms:id="***_content"とcms:id="***_more"の場合はcms:lengthを使用可

対応済みパッケージは下記のページからダウンロードできます。
https://saitodev.co/soycms/
大阪でフリーのプログラマをしています。
以前はSOY CMSの開発元で働いていました。

SOY ShopのプラグインやSOY Appの開発のサポートをしています。
http://saitodev.co/soycms(SOY CMSのマニュアルを作成しています)

最近はSOY Shopを業務アプリとして使用できないか?と模索しています。
SOY Shopで管理画面のみ使用モードを追加しました - saitodev.co

株式会社京都農販(SOY Shopのサイト)
株式会社コトブキ園(SOY Shop)
inunosinsi
 
記事: 861
登録日時: 2008年6月12日(木) 20:48

Re: SOY CMS カスタムフィールド「記事」で記事本文以外を出力させたい

投稿記事by polka on 2020年1月12日(日) 09:14

inunosinsi さんが書きました:下記の機能を追加しました。
記事フィールドでフィールドIDが***の場合、
cms:id="***_id"とcms:id="***_content"のタグを追加
cms:id="***_content"とcms:id="***_more"の場合はcms:lengthを使用可

対応済みパッケージは下記のページからダウンロードできます。
https://saitodev.co/soycms/



機能追加ありがとうございます!

早速試してみまして、気づいた点をお伝えします。

【04】
出力結果に「<>」が付いてしまう。

追加していただいたうち、***_content, ***_title, ***_id, ***_create_dateを使ってみたところ、
先頭に「<>」とタグの残骸?のような文字が表示されます。


【05】
cms:lengthが2つめのブロックで無効になっている。

b_block:id="entry_list"に必要分「*(アスタリスク)」をつけて2つのブロックをつくって試したところ、
1つめではcms:lengthが動作して、本文先頭の任意数のテキストが出力されていましたが、
2つめのブロックでは動作せず、本文そのままで出力されていました。

複数の利用を許可していただくか、もしくはプラグインを通さない
通常の<!-- cms:id="content" cms:length="任意の数" /-->と同じように、
ソース上で最初に指定したcms:lengthの数がそれ以降も同じになる仕様に
あわせていただくことはできますでしょうか?
polka
 
記事: 222
登録日時: 2013年5月20日(月) 08:15
所在地: 大阪府泉大津市二田町1-20-30-2F

Re: SOY CMS カスタムフィールド「記事」で記事本文以外を出力させたい

投稿記事by inunosinsi on 2020年1月13日(月) 06:10

出力結果に「<>」が付いてしまう。

追加していただいたうち、***_content, ***_title, ***_id, ***_create_dateを使ってみたところ、
先頭に「<>」とタグの残骸?のような文字が表示されます。


これは私の方では確認できませんので、テンプレートの記述ミスの可能性があります。


cms:lengthの方ですが、古い機能且つ私は一度も見たり触れたことがないコードになりますので、システムの深いところにある機能でこれ以上の改修は難しいです。
お手数ですが、出力用の別のカスタムフィールドを用意してもらうといった対応でおねがいします。
大阪でフリーのプログラマをしています。
以前はSOY CMSの開発元で働いていました。

SOY ShopのプラグインやSOY Appの開発のサポートをしています。
http://saitodev.co/soycms(SOY CMSのマニュアルを作成しています)

最近はSOY Shopを業務アプリとして使用できないか?と模索しています。
SOY Shopで管理画面のみ使用モードを追加しました - saitodev.co

株式会社京都農販(SOY Shopのサイト)
株式会社コトブキ園(SOY Shop)
inunosinsi
 
記事: 861
登録日時: 2008年6月12日(木) 20:48

Re: SOY CMS カスタムフィールド「記事」で記事本文以外を出力させたい

投稿記事by inunosinsi on 2020年1月13日(月) 06:17

下記のページを参考に修正すれば、もしかしたら対応されるかもしれません。
※エラーが出ないことの操作確認のみです
https://github.com/inunosinsi/soycms/commit/ec36fbf61385677d6e21b4363d27fb2a42aff53d#diff-f0aa07b703a95e18e2445cf1fa5fea73
大阪でフリーのプログラマをしています。
以前はSOY CMSの開発元で働いていました。

SOY ShopのプラグインやSOY Appの開発のサポートをしています。
http://saitodev.co/soycms(SOY CMSのマニュアルを作成しています)

最近はSOY Shopを業務アプリとして使用できないか?と模索しています。
SOY Shopで管理画面のみ使用モードを追加しました - saitodev.co

株式会社京都農販(SOY Shopのサイト)
株式会社コトブキ園(SOY Shop)
inunosinsi
 
記事: 861
登録日時: 2008年6月12日(木) 20:48

Re: SOY CMS カスタムフィールド「記事」で記事本文以外を出力させたい

投稿記事by polka on 2020年1月13日(月) 17:18

inunosinsi さんが書きました:cms:lengthの方ですが、古い機能且つ私は一度も見たり触れたことがないコードになりますので、システムの深いところにある機能でこれ以上の改修は難しいです。
お手数ですが、出力用の別のカスタムフィールドを用意してもらうといった対応でおねがいします。

承知しました。ご検討ありがとうございます!


【04】
出力結果に「<>」が付いてしまう。

これについては、<body></body>内に、必要な内容以外に何も記述しない状態にしてテストしてみました。

「_title」「_content」など「_」をつける追加機能については、
標準ブロック・ブログブロックの両方とも、「*」アスタリスクをつけた重複ブロック内で、
しかも「_title*」「_content*」とcms:idのID名にも「*」をつけた状態の場合、
「<>」が付かなくなりました。


また、改めてわかったのですが、
標準ブロック・ブログブロックの両方とも、「最初の」ブロックでは
「_title」「_content」など「_」をつける追加機能については、内容が呼び込まれず、
<!-- cms:id="***_title" /--><!-- cms:id="***_content" /-->と
SOYタグのままソースに出力されていました。



ちなみに、最初にテストさせていただいたSOYページでは、重複ブロックで行っていました。
(追加機能の「_」付きcms:idで出力はできたけれど、各先頭に「<>」がついたテストです)



inunosinsi様の環境では再現されないとのことでしたので、
2つの違うドメイン下のSOY CMSで同じことを試しましたが結果は同じでした。

SQLite版でしか試していないので、MySQL版ではどうなるかは見ていません。


ややこしくなってきたので、フォーラムでの書き込みは一旦保留し、
inunosinsi様に直接ご連絡させていただこうと思います。


【1/14追記】
inunosinsi様に改修いただき、ブログページ(ブログブロック)、標準ページ(標準ブロック)ともに、
出力結果に「<>」は付かなくなりました。

なお、2つのブログブロック(b_block:id="entry_list")を使ったテストでわかったことですが、
<!-- cms:id="***_content" cms:length="任意の数" /-->を各ブロックで使う場合、
”最初のブロック”で、重複を示す「*(アスタリスク)」をID名に付けると、
(<!-- cms:id="***_content*" cms:length="任意の数" /-->)
2つともcms:lengthが動作しました。

今回テストしたサイトだけの特有の現象かもしれませんが、
cms:lengthがうまく動作しないときは、
「*」を付ける付けないの組み合わせを試すと良いかもしれません。
polka
 
記事: 222
登録日時: 2013年5月20日(月) 08:15
所在地: 大阪府泉大津市二田町1-20-30-2F


Return to 機能の改善・追加リクエスト

オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[1人]

cron