ブログリンクブロックで、最終更新日の降順で表示させたい 投稿する

投稿者:kaiya  投稿日時:2022-08-22 16:46:43
ブログリンクブロックで、最終更新日の降順で表示させたい

過去に他社ブログで作成したブログのデータを、SOYCMSで再構築するのを手伝っています。

過去の作成データと混同しないように、過去に造られたブログの投稿日とあわせて SOYCMSの記事作成日としています。

ただ、1つここで問題になるのは、過去記事を 編集したとき、データ追加した事を、「新着記事」としてブログのプラグインブロックで表示させたいとき、

ブログリンクブロックなどのブロック設定では、記事作成の降順、記事作成の昇順でしか 表示させる事が出来ません。

過去のデータの作成日にあわせているため、新着にデータをアップしても、作成日は過去日付にあわせているため。

現在は、手動で、記事表示ブロックで、該当の記事を 選んでいるのですが・・

ブログリンクブロックで、「最終更新日」の降順で ブロック表示させる設定はできないでしょうか?
(作成日と更新日が ズレてしまう件はありえると思います)
投稿者:齋藤毅  投稿日時:2022-08-23 06:23:44
ブログリンクブロックのみ更新日時順にすること自体は簡単です。

/CMSインストールディレクトリ/common/logic/site/Entry/class/new/LabeledEntryDAO.class.php の259行目にある
//ブログリンクブロックの場合
if(isset($this->blockClass) && strpos($this->blockClass, "Multi") !== false) return " Order By entry.cdate " . $sort . ", entry.id " . $sort;

//ブログリンクブロックの場合
if(isset($this->blockClass) && strpos($this->blockClass, "Multi") !== false) return " Order By entry.udate " . $sort . ", entry.id " . $sort;
のように変更するだけで良いです。
※entry.cdateの箇所をentry.udateに変更

ただ、これではバージョンアップをする度に修正内容が上書きされてしまいます。

改修内容を考えてみます。
投稿者:齋藤毅  投稿日時:2022-08-24 13:20:19
ラベルブロック、ブログリンクブロックと他サイトブロックで更新日順でソートできる機能を設けました。
各ブロックの設定画面を開くと、作成日と更新日を選択できるセレクトボックスがあります。

上記の機能が同梱されたバージョンは下記ページからダウンロードできます。
https://saitodev.co/soycms
投稿者:kaiya  投稿日時:2022-08-24 14:16:10
早速の対応ありがとうございます!できました!
ただ、また見慣れないエラーが出てました

Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /ルート/common/site_include/block/MultiLabelBlockComponent/block.php on line 179
投稿者:齋藤毅  投稿日時:2022-08-24 15:13:43
エラー報告をありがとうございます。
修正版を下記のページでダウンロードできるようにしました。
https://saitodev.co/soycms
投稿者:kaiya  投稿日時:2022-10-28 20:45:02
いつもありがとうございます

このトピックで出てくる SOYCMSの 記事作成日 と最終更新日ですが、

記事作成日は https://saitodev.co/soycms/tags/?t=blog_top  でb_block:でブログ公開側に表示できるのですが、

最終更新日を 公開側に表示できる cms:idは 存在しないのでしょうか?

古くなった記事を更新する時に、更新日を入れたいと思っています。

の為、可能であれば、 更新日と作成日を比較して、違う時のみ 更新日をブロックごと表示させる事ができればいいのですが。(作成日を最終更新日が同じ・・なら、作成日のみ表示しておく(更新日:○○ のブロックごと非表示にする)
投稿者:齋藤毅  投稿日時:2022-10-29 06:05:37
SOY CMSのコードを確認しましたところ、SOY CMS1系の時点でcms:id="update_date"とcms:id="update_time"が追加されていました。
最終更新日に関するcmsタグです。
ログインして投稿する