MODX Evoをver 1.0.6J-r8にしたらRSS機能が使えなくなっている

質問全般・改善要望
modxfan
メンバー
メンバー
記事: 241
登録日時: 2011年3月07日(月) 15:06

Re: MODX Evoをver 1.0.6J-r8にしたらRSS機能が使えなくなっている

投稿記事by modxfan » 2012年12月14日(金) 15:23

な、直った・・・・・
kazuike
メンバー
メンバー
記事: 484
登録日時: 2009年8月12日(水) 12:53

Re: MODX Evoをver 1.0.6J-r8にしたらRSS機能が使えなくなっている

投稿記事by kazuike » 2012年12月14日(金) 15:30

やはり、
orderByを指定しない時の、デフォルトの並び順がおかしいようですね。
(Ditto自体なのか、RSSフォーマット限定なのか、わかりませんが)

私自信は、いつもorderByを指定しているので、気づきませんでした…f(^^;;

>yamaさん
あとは、よろしくお願いします。m(_ _)m

追記)
IEとOperaは、RSSのソースの順は無視して、勝手に並べ替える仕様のようです。
▼ウェブ屋のCMS→modxヒキダス流(備忘録)
http://d.hatena.ne.jp/hikidas_ikeda/
modxfan
メンバー
メンバー
記事: 241
登録日時: 2011年3月07日(月) 15:06

Re: MODX Evoをver 1.0.6J-r8にしたらRSS機能が使えなくなっている

投稿記事by modxfan » 2012年12月14日(金) 15:56

kazuike さんが書きました:やはり、
orderByを指定しない時の、デフォルトの並び順がおかしいようですね。
(Ditto自体なのか、RSSフォーマット限定なのか、わかりませんが)

私自信は、いつもorderByを指定しているので、気づきませんでした…f(^^;;

>yamaさん
あとは、よろしくお願いします。m(_ _)m


以下のサイトが正しい情報ならば、ばっちりのことが書いてありました。
オーダーバイを記述しなければ、勝手に昇順になると。ASCですか。
http://d.hatena.ne.jp/hikidas_ikeda/20090528/1243501085
って、このサイトはヒキダスって書いてあるのでkazuike様のサイトなんですね。これはいいサイトです。

ウン?でも、ならばなんでブラウザによって差が出るのか?
と思っていたら・・・



kazuike さんが書きました:追記)
IEとOperaは、RSSのソースの順は無視して、勝手に並べ替える仕様のようです。


なんとそうだったのですか。

あれ?、でも、5J-r3から6J-r8へアップデートしたこのサイトはいいですが、
アップデートしていない5J-r7のサイトはオーダーバイを記述していないのに(以下がソース)、
[[Ditto? &parents=`16` &format=`rss` &display=`20` &total=`20` &removeChunk=`Comments` &dateSource=`editedon`]]
なんでどのブラウザでもちゃんとDESCで表示されていたんでしょうか??

それに、本件のトラブルサイトも、アップデートする前とした後でRSSのDittoソースはいじっていません。
なんでアップデートする前はどのブラウザでも降順で並んでくれていたのでしょうか???
アタマが混乱しております・・・

とにかく降順指定をすることで解決なんでしょうか・・・
アバター
yama
管理人
記事: 3154
登録日時: 2009年7月29日(水) 02:50

Re: MODX Evoをver 1.0.6J-r8にしたらRSS機能が使えなくなっている

投稿記事by yama » 2012年12月14日(金) 16:25

modxfan さんが書きました:な、直った・・・・・

まじすかw
kazuikeさんナイスフォローです
今日は外出してるので、夜あらためてまとめますね
modxfan
メンバー
メンバー
記事: 241
登録日時: 2011年3月07日(月) 15:06

Re: MODX Evoをver 1.0.6J-r8にしたらRSS機能が使えなくなっている

投稿記事by modxfan » 2012年12月14日(金) 16:27

了解しました。お手数お掛けします、よろしくお願いいたします。
kazuike
メンバー
メンバー
記事: 484
登録日時: 2009年8月12日(水) 12:53

Re: MODX Evoをver 1.0.6J-r8にしたらRSS機能が使えなくなっている

投稿記事by kazuike » 2012年12月14日(金) 18:57

>yamaさん

今回の問題点は、
「Dittoのデフォルトの並び順が、従来通りの作成日時の降順ではない」点です。
(RSSフォーマットに限らず、Ditto本体がそうなっているようです)
少なくとも1.0.6J-r8ではそうなっています。

これ、意図的に仕様変更したということではないですよね?

以前のバージョンでは、
orderByパラメータも、sortDirパラメータも使わなかった場合、
並べ替え(sortDir)のデフォルトは「DESC」でした。

ただし、たとえば「orderBy=`menuindex`」のように、
orderByパラメータを使って「ASC|DESC」を指定しなかった場合のデフォルトは「ASC」でしたが…
こういうことも関係しているのでしょうか?

ちなみに、今回混乱した要因に、
「IEとOperaのRSSの表示順は、RSSのソース上の順序と無関係」
ということもありました。(>_<)
▼ウェブ屋のCMS→modxヒキダス流(備忘録)
http://d.hatena.ne.jp/hikidas_ikeda/
アバター
yama
管理人
記事: 3154
登録日時: 2009年7月29日(水) 02:50

Re: MODX Evoをver 1.0.6J-r8にしたらRSS機能が使えなくなっている

投稿記事by yama » 2012年12月14日(金) 20:06

ですね。たぶん単純なことだと思います。ハマりどころがいくつかあって、デモデータに関しても旧デモ・新デモどちらもちょっとした問題がありそうです。またのちほど調べてみます
アバター
yama
管理人
記事: 3154
登録日時: 2009年7月29日(水) 02:50

Re: MODX Evoをver 1.0.6J-r8にしたらRSS機能が使えなくなっている

投稿記事by yama » 2012年12月14日(金) 22:45

基本的には&orderByパラメータを指定するほうがメンテ時でも分かりやすくてよいと思いますが(私もふだんそうしてます)、いちおうパッチを作成しました。このパッチでは&orderByパラメータを指定しなかった時のデフォルト値の問題が修正されます。もしよければ試してみてください。
ファイルを解凍してテキストエディタで開いて全文をコピーし、管理画面のDitto編集画面のテキストエリアに貼り付けて更新ボタンをクリックです。

コード: 全て選択

[[Ditto? &parents=`62` &format=`rss`]]

スニペットコールは上記だけで指定し、意図どおり最新順に並べば、デフォルト値の件としても問題なしです。

https://github.com/modxcms-jp/evolution ... 36194c285c
上記はkazuikeさん向けの参考情報です。ありがとうございました。
もともとはこの行自体が存在しなくて、最近になって日本語版で追加しています。
&dateSourceパラメータも確認してたらブラウザごとに表示順が変わる謎も早く解けてたかもしれませんね。
添付ファイル
ditto.zip
(7.54 KiB) ダウンロード数: 182 回
アバター
yama
管理人
記事: 3154
登録日時: 2009年7月29日(水) 02:50

Re: MODX Evoをver 1.0.6J-r8にしたらRSS機能が使えなくなっている

投稿記事by yama » 2012年12月14日(金) 23:20

viewtopic.php?f=7&t=1033
上記の件は、&orderBy="publishedon desc" を指定するとラクかも?publishedonというのは公開日時のことで、文字どおりリソースが公開された日時を示します。
「公開開始日時」フィールドで公開開始日時を明示すると、その値がpublishedonとしてセットされます。なので、日時を変更したい場合は「公開開始日時」に値を入れるとよいですね。
(1.0.5J-r7ではpublishedonは不具合があったと思います)

createdonだと下書き期間が長いリソースは古いリソースという扱いになってあまり実用的ではないので、RSSに関してはデフォルトでpublishedonを見る設定でよいかも。
modxfan
メンバー
メンバー
記事: 241
登録日時: 2011年3月07日(月) 15:06

Re: MODX Evoをver 1.0.6J-r8にしたらRSS機能が使えなくなっている

投稿記事by modxfan » 2012年12月17日(月) 11:50

yama さんが書きました:http://forum.modx.jp/viewtopic.php?f=7&t=1033
上記の件は、&orderBy="publishedon desc" を指定するとラクかも?publishedonというのは公開日時のことで、文字どおりリソースが公開された日時を示します。
「公開開始日時」フィールドで公開開始日時を明示すると、その値がpublishedonとしてセットされます。なので、日時を変更したい場合は「公開開始日時」に値を入れるとよいですね。
(1.0.5J-r7ではpublishedonは不具合があったと思います)

createdonだと下書き期間が長いリソースは古いリソースという扱いになってあまり実用的ではないので、RSSに関してはデフォルトでpublishedonを見る設定でよいかも。


こちらについては、念のため実際に質問テーマとしているページの方でご返答いたしました。
viewtopic.php?f=7&t=1033&p=5815#p5815

宜しくお願い申し上げます。
アバター
yama
管理人
記事: 3154
登録日時: 2009年7月29日(水) 02:50

Re: MODX Evoをver 1.0.6J-r8にしたらRSS機能が使えなくなっている

投稿記事by yama » 2012年12月17日(月) 12:00

createdon・・・リソースを最初に作成した日時
editedon・・・リソースを編集した日時(逐次変わる)
publishedon・・・リソースを公開した日時(ただしpub_dateが入力されている場合はpub_dateで上書きされる・非公開にするとゼロに戻る)
pub_date・・・リソース投稿予約日時(過去の日時に設定することもできる)
unpeb_date・・・リソースの公開取り消し予約日時(過去の日時に設定することもできる)

MODXのリソース変数は上記の5種類の日時情報を持っていて、DittoのRSSフォーマッタではデフォルトでcreatedonを参照します。

・createdonの順番で並べる(&orderByパラメータ)(デフォルト)
・表示される値も当然createdon(&dateSourceパラメータ)(デフォルト)

上記の2つのパラメータ指定がセットで必要で、publishedonやeditedonに変更する場合は

コード: 全て選択

[[Ditto?format=rss&dateSource=publishedon&orderBy=publishedon desc]]

というふうに、同じくセットでパラメータを指定する必要があります。

今回の件はブラウザがアイテムを自動的に日付順に並べてしまうことが分かったので、dateSourceパラメータを指定しないと見た目には順番が変わらない・・ということだと思います。
modxfan
メンバー
メンバー
記事: 241
登録日時: 2011年3月07日(月) 15:06

Re: MODX Evoをver 1.0.6J-r8にしたらRSS機能が使えなくなっている

投稿記事by modxfan » 2012年12月17日(月) 13:37

yama さんが書きました:基本的には&orderByパラメータを指定するほうがメンテ時でも分かりやすくてよいと思いますが(私もふだんそうしてます)、いちおうパッチを作成しました。このパッチでは&orderByパラメータを指定しなかった時のデフォルト値の問題が修正されます。もしよければ試してみてください。
ファイルを解凍してテキストエディタで開いて全文をコピーし、管理画面のDitto編集画面のテキストエリアに貼り付けて更新ボタンをクリックです。

コード: 全て選択

[[Ditto? &parents=`62` &format=`rss`]]

スニペットコールは上記だけで指定し、意図どおり最新順に並べば、デフォルト値の件としても問題なしです。

https://github.com/modxcms-jp/evolution ... 36194c285c
上記はkazuikeさん向けの参考情報です。ありがとうございました。
もともとはこの行自体が存在しなくて、最近になって日本語版で追加しています。
&dateSourceパラメータも確認してたらブラウザごとに表示順が変わる謎も早く解けてたかもしれませんね。


作成いただいたパッチを使うのがいいのか、それともDittoソースを変更するのがいいのか、
でもDittoソースだと、新旧どちらのバージョンでも使えるものではないのですよね・・・
ウ~ン、バックアップのことも含めると、MODX Ver1.0.6J-r8のダウンロードしたファイルには手を付けずに
いられるので、Dittoソースをいじることを選択しようかな・・・
modxfan
メンバー
メンバー
記事: 241
登録日時: 2011年3月07日(月) 15:06

Re: MODX Evoをver 1.0.6J-r8にしたらRSS機能が使えなくなっている

投稿記事by modxfan » 2012年12月17日(月) 14:17

yama さんが書きました:createdon・・・リソースを最初に作成した日時
editedon・・・リソースを編集した日時(逐次変わる)
publishedon・・・リソースを公開した日時(ただしpub_dateが入力されている場合はpub_dateで上書きされる・非公開にするとゼロに戻る)
pub_date・・・リソース投稿予約日時(過去の日時に設定することもできる)
unpeb_date・・・リソースの公開取り消し予約日時(過去の日時に設定することもできる)

MODXのリソース変数は上記の5種類の日時情報を持っていて、DittoのRSSフォーマッタではデフォルトでcreatedonを参照します。

・createdonの順番で並べる(&orderByパラメータ)(デフォルト)
・表示される値も当然createdon(&dateSourceパラメータ)(デフォルト)

上記の2つのパラメータ指定がセットで必要で、publishedonやeditedonに変更する場合は

コード: 全て選択

[[Ditto?format=rss&dateSource=publishedon&orderBy=publishedon desc]]

というふうに、同じくセットでパラメータを指定する必要があります。

今回の件はブラウザがアイテムを自動的に日付順に並べてしまうことが分かったので、dateSourceパラメータを指定しないと見た目には順番が変わらない・・ということだと思います。



[[Ditto? &parents=`16` &format=`rss` &dateSource=`publishedon` &orderBy=`publishedon DESC`]]

このように差し替えてやってみました。

1.0.5J-r7のサイト・・・トップページ:日付変わった。RSS:日付変わらず。「公開開始日時」から日付を削除してみると、トップページは日付戻った。

1.0.6J-r8のサイト・・・トップページ:日付変わった。RSS:日付変わった。が、「公開開始日時」から日付を削除してみると、RSSのみ日付変わらず。トップページは日付戻ったが・・・

5J-r7で解決するにはどうしたらいいでしょうか。6J-r8にアップデートは絶対したくありません。5J-r3から6J-r8へアップデートしたら、
あまりにも色々とトラブルが発生してしまったので恐ろしくてできませんので・・・

6J-r8にアップデートした方のサイトも、上述通り、公開開始日時に設定してみた日付を、あとから削除しても反応が無く、設定した日付のままとなっていて
妙ですが、これは運用でカバーできる程度かなと思っておりますが。
アバター
yama
管理人
記事: 3154
登録日時: 2009年7月29日(水) 02:50

Re: MODX Evoをver 1.0.6J-r8にしたらRSS機能が使えなくなっている

投稿記事by yama » 2012年12月17日(月) 14:25

modxfan さんが書きました:1.0.6J-r8のサイト・・・トップページ:日付変わった。RSS:日付変わった。が、「公開開始日時」から日付を削除してみると、RSSのみ日付変わらず。トップページは日付戻ったが・・・

なるほど。元の値を記憶しているわけではないので、pub_dateで設定した値がそのまま残っちゃいますね。ここはcreatedonに戻すなど改善を工夫してみます。(運用的に「公開開始日時」を任意の日時にセットするとかのほうが柔軟に扱えてよいかもしれませんが)

1.0.5J-r7のほうはこういう仕様なので、値を操作できるeditedonを基準にしてプラグインなどで操作する・しないをコントロールするしかない気がします。
modxfan
メンバー
メンバー
記事: 241
登録日時: 2011年3月07日(月) 15:06

Re: MODX Evoをver 1.0.6J-r8にしたらRSS機能が使えなくなっている

投稿記事by modxfan » 2012年12月18日(火) 10:31

yama さんが書きました:
modxfan さんが書きました:1.0.6J-r8のサイト・・・トップページ:日付変わった。RSS:日付変わった。が、「公開開始日時」から日付を削除してみると、RSSのみ日付変わらず。トップページは日付戻ったが・・・

なるほど。元の値を記憶しているわけではないので、pub_dateで設定した値がそのまま残っちゃいますね。ここはcreatedonに戻すなど改善を工夫してみます。(運用的に「公開開始日時」を任意の日時にセットするとかのほうが柔軟に扱えてよいかもしれませんが)

1.0.5J-r7のほうはこういう仕様なので、値を操作できるeditedonを基準にしてプラグインなどで操作する・しないをコントロールするしかない気がします。


そうですか、pub_dateで設定した値が残るプログラミングになっているのですか。
改善する場合、運用しやすく、いじることが少ない方法であれば良いと思います。


> 1.0.5J-r7のほうはこういう仕様なので、値を操作できるeditedonを基準にしてプラグインなどで操作する・しないをコントロールするしかない気がします。

そうですか、わかりました。最新バージョンでないと、教えていただいたDittoソースが使えないのですね。
しかし1.0.5J-r7ではそのプラグインもうまくいかないようなので、保留にしました。
これまでのバージョンではどのようにニュースやRSSの運用をしていたのかな?と不思議に思いました。
コーポレートサイトであれば、ニュース投稿後に変更が入って文章を変えねばならないことはよくあるはずなので。
特に朝令暮改の迅速な動きを要求される中小企業などは。
その時に日時が連動して変わってしまって直せないのでは、経営陣から「そんなものも直せないのか」と大クレームが入りますので・・・
アバター
yama
管理人
記事: 3154
登録日時: 2009年7月29日(水) 02:50

Re: MODX Evoをver 1.0.6J-r8にしたらRSS機能が使えなくなっている

投稿記事by yama » 2012年12月18日(火) 23:41

少し前まで日本公式ではpub_dateを参照してました。入力し忘れないようにするためにManagaerManagerを使うとよいと思います。あまりすっきりしない気がしたので、最近になってpublishedonに変更しましたが・・
(本家版はpub_dateに必ず値を入れることを推奨しているようです)
modxfan
メンバー
メンバー
記事: 241
登録日時: 2011年3月07日(月) 15:06

Re: MODX Evoをver 1.0.6J-r8にしたらRSS機能が使えなくなっている

投稿記事by modxfan » 2012年12月19日(水) 07:11

pub_dateに値を入れるのですか。わかりました。試してみて追記いたします。

【追記】
該当のサイトである、1.0.5J-r7 のバージョンの方でテストしょうとしております。
ManagerManagerを使うと良いとありますが、プラグインに
「ManagerManager (3) - 0.3.10dev 投稿画面を自由自在にカスタマイズ。」
とありました。
打ち消し線も無く、ONになってるので使えるようになっているということで、どこから作業するのか
探しているのですが、ManagerManagerを使うというのはどのようにすることでしょうか?
以下のURLでManagerManagerのpub_dateがあったのですが、
どこで入力等をすればいいのかがわからずにおりました。

http://modx.jp/docs/extras/plugins/mm/fields.html

pub_dateのところを見るに、ラジオボタンを生成できるようですが。
投稿したニュースの編集画面で加工するのか?と思ったのですが、それらしいものは見当たりませんでした。