会社のWEBサイトは、
WebサーバーにModXというCMSを仕込んで、MS Accessによる社内の商品データベースからCSVを吐き出して、
- CSVから各商品個別のページを作成し本サイトで表示
- RSSを生成し、別途用意したWordPRESSというCMSを仕込んだWebサイトにも表示されるようにする、
という構造になっています。
このたび、いつも色々アドバイスくださっている方から、「各商品個別のページには、最終更新日の日付を掲載すると良い」と提案されました。
掲載内容がフレッシュに感じるということでしょうね。
これまで日付には全く無頓着だったんですが、早速更新した日付を掲載するため、改良することにしました。
色々検索して試行錯誤し、最終的には次の通りにやったところ、うまく行きました。
Accessでの改良点
商品の更新はMS Accessで行っていますので、Accessのクエリに
editedon:Datediff("s",#1/1/1970#,Now())-32400
というフィールドを作成しました。
editedonはModXの更新日のドキュメント変数で、上記の通りにすると各ページにunixtimeで更新日を持つことが出来ます。
ModXでの改良点
RSSはDittoで生成していますが、そのDittoのスニペットコールに、
&dateSource=`editedon`
を加えると、指定したテンプレートのタグ内の日付が最終更新日に置き換わりました。
よってWordPRESS衛星サイトで表示すると、公開日の日付が最終更新日に置き換わります。
最初Accessでのeditedonは、32400を引かないでいたんですが、これだと日付が9時間後になります。
9時間後の日付だと、WordPRESSのサイトの方では更新日が未来となり、記事が非公開になってしまいました。
WebサーバーもJSTで、Accessが入っているローカルPCはもちろんJSTだし大丈夫なんでは・・・と思っていましたが、考えると混乱してきたので、単純に9時間分マイナスすることにしました。