RSSとsitemap.xmlの日付をリソースの公開日にするには? 【解決済み】
RSSとsitemap.xmlの日付をリソースの公開日にするには? 【解決済み】
-----
ご利用のサーバ:
MODXのバージョン:1.0.6J-r8
PHPのバージョン:5.3
MySQLのバージョン:5.0.95
ブラウザ:FF16.02
-----
いつもお世話になっています。
RSSを下記のリソースで出力しています。テンプレートは(blank)
[!Ditto? &format=`rss` &parents=`6` &depth=`3` &display=`10` &showInMenuOnly=`1` &hideFolders=`1` &sortBy=`pub_date`!]
リソース作成時に「公開開始日時」を指定して予約投稿しても、公開された時点で日時がリソース作成日時になっています。
作成日時ではなくて、公開された日時でRSSが表示されるようにするには、何処を変えれば良いのでしょうか。
また、sitemap.xmlも同じように作成日時で表示されますが、これも公開日時で表示するのはどのようにすればよろしいのでしょうか。sitemap.xmlの場合は
[[Ditto? &parents=`0` &showInMenuOnly=`1` &depth=`10` &display=`all` &sortBy=`menuindex` &sortDir=`ASC` &format=`html` &tpl=`SitemapTpl` &language=`english`]]
で、SitemapTplの中味は
<url>
<loc>[+url+]</loc>
<lastmod>[+editedon:date=`%Y-%m-%dT%H:%M:%S+09:00`+]</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
このようにしています。
いつも冴えない質問のようで申し訳ございませんが宜しくお願い致します。
ご利用のサーバ:
MODXのバージョン:1.0.6J-r8
PHPのバージョン:5.3
MySQLのバージョン:5.0.95
ブラウザ:FF16.02
-----
いつもお世話になっています。
RSSを下記のリソースで出力しています。テンプレートは(blank)
[!Ditto? &format=`rss` &parents=`6` &depth=`3` &display=`10` &showInMenuOnly=`1` &hideFolders=`1` &sortBy=`pub_date`!]
リソース作成時に「公開開始日時」を指定して予約投稿しても、公開された時点で日時がリソース作成日時になっています。
作成日時ではなくて、公開された日時でRSSが表示されるようにするには、何処を変えれば良いのでしょうか。
また、sitemap.xmlも同じように作成日時で表示されますが、これも公開日時で表示するのはどのようにすればよろしいのでしょうか。sitemap.xmlの場合は
[[Ditto? &parents=`0` &showInMenuOnly=`1` &depth=`10` &display=`all` &sortBy=`menuindex` &sortDir=`ASC` &format=`html` &tpl=`SitemapTpl` &language=`english`]]
で、SitemapTplの中味は
<url>
<loc>[+url+]</loc>
<lastmod>[+editedon:date=`%Y-%m-%dT%H:%M:%S+09:00`+]</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
このようにしています。
いつも冴えない質問のようで申し訳ございませんが宜しくお願い致します。
Re: RSSとsitemap.xmlの日付をリソースの公開日にするには?
確認したわけではないですが、
通常、
Dittoは「dateSource」パラメータで、
日時に何を使うか指定するようになっていたと思います。
公開開始日時を使いたいのであれば、
「&dateSource=`pub_date`」
を追加すれば良いような気がします。
通常、
Dittoは「dateSource」パラメータで、
日時に何を使うか指定するようになっていたと思います。
公開開始日時を使いたいのであれば、
「&dateSource=`pub_date`」
を追加すれば良いような気がします。
▼ウェブ屋のCMS→modxヒキダス流(備忘録)
http://d.hatena.ne.jp/hikidas_ikeda/
http://d.hatena.ne.jp/hikidas_ikeda/
Re: RSSとsitemap.xmlの日付をリソースの公開日にするには?
kazuikeさん、有難うございます。kazuike さんが書きました:公開開始日時を使いたいのであれば、
「&dateSource=`pub_date`」
を追加すれば良いような気がします。
日付の予約投稿は明日以降でないと確認できないので、時間だけ先の時間に設定して
予約投稿してみました。
「&dateSource=`pub_date`」を追加するだけで、RSSの時間が予約した時間で表示されました。
有難うございました。
これでRSSは出来ましたが、sitemap.xmlはどのようにすれば良いのでしょうか。
おんぶに抱っこで申し訳ありませんが、お分かりなら宜しくお願い致します。
Re: RSSとsitemap.xmlの日付をリソースの公開日にするには?
これも、確認したわけではありませんが、
「editedon」を直接「pub_date」に変えるか、
もしくは、
「editedon」を「date」に変えて、パラメータ「&dateSource=`pub_date`」を追加するか、
どちらでも良いように思います。
「editedon」は更新日時(更新していなければ作成日時)ですので、nakahi さんが書きました: SitemapTplの中味は
<url>
<loc>[+url+]</loc>
<lastmod>[+editedon:date=`%Y-%m-%dT%H:%M:%S+09:00`+]</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
「editedon」を直接「pub_date」に変えるか、
もしくは、
「editedon」を「date」に変えて、パラメータ「&dateSource=`pub_date`」を追加するか、
どちらでも良いように思います。
▼ウェブ屋のCMS→modxヒキダス流(備忘録)
http://d.hatena.ne.jp/hikidas_ikeda/
http://d.hatena.ne.jp/hikidas_ikeda/
Re: RSSとsitemap.xmlの日付をリソースの公開日にするには?
kazuikeさん、お世話になっています。
<lastmod>1970-01-01T09:00:00+09:00</lastmod>
と、よく分からない日付になってしまいます。
<lastmod>31-10月-12 12:16</lastmod>
と、大分近づいてはいますが、かなり分かりにくい表現になってしまいます。
妙に細かすぎる部分のような気がしますので、無理やりそこまで訂正しなくても良いような気もします。
RSSが解決できましたので、xmlの方は無理に調べていただかなくても、何かの時にパッとお分かりになった時で結構ですので教えて頂ければと存じます。
上記の書き換えで行うと、kazuike さんが書きました: 「editedon」は更新日時(更新していなければ作成日時)ですので、
「editedon」を直接「pub_date」に変えるか、
<lastmod>1970-01-01T09:00:00+09:00</lastmod>
と、よく分からない日付になってしまいます。
上記で行うとkazuike さんが書きました: 「editedon」を「date」に変えて、パラメータ「&dateSource=`pub_date`」を追加するか、
<lastmod>31-10月-12 12:16</lastmod>
と、大分近づいてはいますが、かなり分かりにくい表現になってしまいます。
妙に細かすぎる部分のような気がしますので、無理やりそこまで訂正しなくても良いような気もします。
RSSが解決できましたので、xmlの方は無理に調べていただかなくても、何かの時にパッとお分かりになった時で結構ですので教えて頂ければと存じます。
Re: RSSとsitemap.xmlの日付をリソースの公開日にするには?
もしかして、記事に公開開始日時が入力されていないということではないでしょうか?nakahi さんが書きました:上記の書き換えで行うと、kazuike さんが書きました:「editedon」を直接「pub_date」に変えるか、
<lastmod>1970-01-01T09:00:00+09:00</lastmod>
と、よく分からない日付になってしまいます。
公開開始日時が入力されていない記事は、「0」つまり、1970年1月1日の扱いになります。
もし、公開開始日時が入っていないのだとすると、そのまま「pub_date」は使えませんね。
これも、やったことないのですが、
最近のMODXなら、「pub_date」の代わりに「publishedon」が使えるかもしれません。
これなら、公開されている記事なら全て値が入っていると思いますので、
一度試してみる価値はあるかもしれません。
ただし、「publishedon」は、厳密には公開開始日時ではなく、
公開開始日時を過ぎて最初に閲覧された日時になるような気がします。
当該記事が閲覧された日時か、
もしくは、サイト(MODX)のどれかのページが閲覧された日時のどちらかだったような…
その他、
公開開始日時が入力されていない場合は更新日時を使う等、
条件分岐をする必要があるのでしたら、Ditto内蔵のPHxを使って、
[+pub_date:is=`0`:then=`[+editedon:date=`%Y-%m-%dT%H:%M:%S+09:00`+]`:else=`[+pub_date:date=`%Y-%m-%dT%H:%M:%S+09:00`+]`+]
のような感じでいけるかもしれません。(これもやったことない気がしますが)
念のため確認ですが、この箇所はnakahi さんが書きました:上記で行うとkazuike さんが書きました: 「editedon」を「date」に変えて、パラメータ「&dateSource=`pub_date`」を追加するか、
<lastmod>31-10月-12 12:16</lastmod>
コード: 全て選択
[+date:date=`%Y-%m-%dT%H:%M:%S+09:00`+]
#Ditto内蔵のPHxは[+date+]に対応してないのかな?
▼ウェブ屋のCMS→modxヒキダス流(備忘録)
http://d.hatena.ne.jp/hikidas_ikeda/
http://d.hatena.ne.jp/hikidas_ikeda/
Re: RSSとsitemap.xmlの日付をリソースの公開日にするには?
pub_dateがセットされてない時はそうだと思います。基本的にはpub_dateの値に合わせるようになってたような・・kazuike さんが書きました:ただし、「publishedon」は、厳密には公開開始日時ではなく、
公開開始日時を過ぎて最初に閲覧された日時になるような気がします。
なのでpublishedonを使うのが無難かな?と思います
Re: RSSとsitemap.xmlの日付をリソースの公開日にするには?
kazuikeさん有難うございます。
予定投稿では公開開始日時を入力していますが、普通の投稿には日時は入力していません。
それで、二種類の投稿で日時が混在してしまいます。
「publishedon」を用いて、
<lastmod>[+publishedon:date=`%Y-%m-%dT%H:%M:%S+09:00`+]</lastmod>
とすると、見事にRSSと同じ時間で表示されます。
ですから、多分、結果的に公開開始日時になるのではないでしょうか・・・・おそらく・・・・
(おおらかないい加減な性格ですみません )
どのように書いたのか忘れてしまったのですが、上記のようではなかったことは確かです。
但し、上記のようにすると、公開開始日時があるものまで、
<lastmod>1970-01-01T09:00:30+09:00</lastmod>と表示されます。
大変お世話になり有難うございました。
これでRSSもsitemap.xmlも解決して頂きました。本当に申し訳ございませんでした。
はい、そうです。kazuike さんが書きました: もしかして、記事に公開開始日時が入力されていないということではないでしょうか?
公開開始日時が入力されていない記事は、「0」つまり、1970年1月1日の扱いになります。
予定投稿では公開開始日時を入力していますが、普通の投稿には日時は入力していません。
それで、二種類の投稿で日時が混在してしまいます。
kazuikeさん有難うございました。解決いたしました!kazuike さんが書きました: 最近のMODXなら、「pub_date」の代わりに「publishedon」が使えるかもしれません。
これなら、公開されている記事なら全て値が入っていると思いますので、
一度試してみる価値はあるかもしれません。
ただし、「publishedon」は、厳密には公開開始日時ではなく、
公開開始日時を過ぎて最初に閲覧された日時になるような気がします。
当該記事が閲覧された日時か、
もしくは、サイト(MODX)のどれかのページが閲覧された日時のどちらかだったような…
「publishedon」を用いて、
<lastmod>[+publishedon:date=`%Y-%m-%dT%H:%M:%S+09:00`+]</lastmod>
とすると、見事にRSSと同じ時間で表示されます。
ですから、多分、結果的に公開開始日時になるのではないでしょうか・・・・おそらく・・・・
(おおらかないい加減な性格ですみません )
すみません、違っていました・・・・・kazuike さんが書きました: 念のため確認ですが、この箇所はとなってますよね?コード: 全て選択
[+date:date=`%Y-%m-%dT%H:%M:%S+09:00`+]
#Ditto内蔵のPHxは[+date+]に対応してないのかな?
どのように書いたのか忘れてしまったのですが、上記のようではなかったことは確かです。
但し、上記のようにすると、公開開始日時があるものまで、
<lastmod>1970-01-01T09:00:30+09:00</lastmod>と表示されます。
大変お世話になり有難うございました。
これでRSSもsitemap.xmlも解決して頂きました。本当に申し訳ございませんでした。
Re: RSSとsitemap.xmlの日付をリソースの公開日にするには?
このへん、オプションで選べるようになっているとよいかもしれませんね。普通のユーザの感覚だと、公開設定になっているページなら最初の編集日時イコール公開日時になっていると思う人もいそうですし。nakahi さんが書きました:ですから、多分、結果的に公開開始日時になるのではないでしょうか・・・・おそらく・・・・
Re: RSSとsitemap.xmlの日付をリソースの公開日にするには?
そうなんですね。yama さんが書きました:pub_dateがセットされてない時はそうだと思います。基本的にはpub_dateの値に合わせるようになってたような・・kazuike さんが書きました:ただし、「publishedon」は、厳密には公開開始日時ではなく、
公開開始日時を過ぎて最初に閲覧された日時になるような気がします。
#長いことMODXやってると、記憶がなかなかリセットされないし、だんだん曖昧になって…
たしかに、最初に閲覧された日時というのはシステムのログとしては役に立つかもしれませんが、yama さんが書きました:このへん、オプションで選べるようになっているとよいかもしれませんね。普通のユーザの感覚だと、公開設定になっているページなら最初の編集日時イコール公開日時になっていると思う人もいそうですし。nakahi さんが書きました:ですから、多分、結果的に公開開始日時になるのではないでしょうか・・・・おそらく・・・・
利用者側としては、createdonと同じになるのが、普通の感覚のような気がします。
ちょっと話がそれますが、
公開終了日時<公開開始日時(一定期間だけ非表示)は、
設定できないようになっているようですが、
これは仕様でしょうか?
▼ウェブ屋のCMS→modxヒキダス流(備忘録)
http://d.hatena.ne.jp/hikidas_ikeda/
http://d.hatena.ne.jp/hikidas_ikeda/
Re: RSSとsitemap.xmlの日付をリソースの公開日にするには?
あ、そうですね。最初の編集日時ってことはcreatedon・・kazuike さんが書きました: たしかに、最初に閲覧された日時というのはシステムのログとしては役に立つかもしれませんが、
利用者側としては、createdonと同じになるのが、普通の感覚のような気がします。
ちょっと話がそれますが、
公開終了日時<公開開始日時(一定期間だけ非表示)は、
設定できないようになっているようですが、
これは仕様でしょうか?
一定期間だけの非表示はそういえばできないですね。$modx->checkPublishStatus()のところでこの制御を行なってますが、工夫すればできるかも?今度機会があったら試してみます
Re: RSSとsitemap.xmlの日付をリソースの公開日にするには?
私自身特にこういうニーズがあるということではないのですが、yama さんが書きました:一定期間だけの非表示はそういえばできないですね。$modx->checkPublishStatus()のところでこの制御を行なってますが、工夫すればできるかも?今度機会があったら試してみますkazuike さんが書きました: 公開終了日時<公開開始日時(一定期間だけ非表示)は、
設定できないようになっているようですが、
これは仕様でしょうか?
以前から、このあたりの仕様で苦い思い出が色々あり、
(公開されるはずが非公開になって…色々調べて結果的には日時の誤入力だった等)
入力した内容で予想される動作と実際の動作が違っているということがちょっと残念なので。
もし、こういうニーズがないようでしたら、
「公開終了日時<公開開始日時」をリソース編集画面でエラーにする等でも良いかもしれませんが、
問題なくこれができるのでしたら、できる方が良いかもしれません。
▼ウェブ屋のCMS→modxヒキダス流(備忘録)
http://d.hatena.ne.jp/hikidas_ikeda/
http://d.hatena.ne.jp/hikidas_ikeda/
Re: RSSとsitemap.xmlの日付をリソースの公開日にするには?
こちら確認してみましたが、すでにそのように改善済みでした。publishedonは、createdonかpub_dateどちらかの値になります。非公開に戻すとゼロにリセットされます。kazuike さんが書きました:たしかに、最初に閲覧された日時というのはシステムのログとしては役に立つかもしれませんが、
利用者側としては、createdonと同じになるのが、普通の感覚のような気がします。
Re: RSSとsitemap.xmlの日付をリソースの公開日にするには?
そうなんですね。yama さんが書きました:こちら確認してみましたが、すでにそのように改善済みでした。publishedonは、createdonかpub_dateどちらかの値になります。非公開に戻すとゼロにリセットされます。kazuike さんが書きました:たしかに、最初に閲覧された日時というのはシステムのログとしては役に立つかもしれませんが、
利用者側としては、createdonと同じになるのが、普通の感覚のような気がします。
たまには色々試してみないといけませんね…
ということで、
とりあえず、リソース編集画面での更新についてpublishedonの値を調べてみました。
・新規作成時に公開:createdonと同じ値
・公開のままで更新:以前の値を保持
・非公開で更新:0
・非公開→公開で更新:editedonと同じ値
・公開のままで更新:以前の値を保持
ということで、期待通りの自然な値が入っていました。
▼ウェブ屋のCMS→modxヒキダス流(備忘録)
http://d.hatena.ne.jp/hikidas_ikeda/
http://d.hatena.ne.jp/hikidas_ikeda/