1.0.14J-r9ベータです

プログラム(機能)関連の開発の話題
アバター
yama
管理人
記事: 2895
登録日時: 2009年7月29日(水) 02:50

Re: 1.0.14J-r9ベータです

投稿記事by yama » 2015年2月20日(金) 16:57

modx-1.0.14J-r9-b16.zip
(1.66 MiB) ダウンロード数: 50 回
こちらにアップデートしてみてください。b15からであればmanager/includes/フォルダの上書きのみでOKです
aki
メンバー
メンバー
記事: 56
登録日時: 2013年1月23日(水) 20:59

Re: 1.0.14J-r9ベータです

投稿記事by aki » 2015年2月20日(金) 17:23

いつもお世話になっております。
どのトピックに投稿するか迷ったのですが、管理画面の表示でトラブルという程ではない
ちょっと気になるところがあったので、こちらにご報告いたします。

1.0.14J-r9-b12 デモサイト
http://150220161852-6160.evo.demo.modx.jp/manager/

1.0.13J-r1 デモサイト
http://150220165720-6160.evo.demo.modx.jp/manager/

1つのテンプレートに対して複数のテンプレート変数が関連付けられている場合、
1.0.13J-r1の頃は、それぞれのテンプレート変数が点線の水平線で区切られていました。
それが、1.0.14J系(少なくともr7から)にアップデートしてから、
1番上のテンプレート変数と2番目のテンプレート変数の間だけ、点線がなくなってしまいました。
ちなみに、1.0.12Jの頃は、点線の区切り自体がなく、1.0.13Jで実装されたのかなと思います。

HTMLのソースで見ると

コード: 全て選択

<tr>
   <td colspan="2"><div class="split"></div></td>
</tr>

これで点線を表示しているのだと思うのですが、1番目と2番目の間だけ抜けているようなので
どこかでついでに修正していただけたら嬉しいです。表示が気になるだけで動作には支障ないです。
よろしくお願いします。
アバター
yama
管理人
記事: 2895
登録日時: 2009年7月29日(水) 02:50

Re: 1.0.14J-r9ベータです

投稿記事by yama » 2015年2月20日(金) 17:39

http://150220161852-6160.evo.demo.modx.jp/manager/
修正しました。こうでしょうか?
アバター
min-o
メンバー
メンバー
記事: 291
登録日時: 2009年10月07日(水) 18:32

Re: 1.0.14J-r9ベータです

投稿記事by min-o » 2015年2月20日(金) 18:26

修正ありがとうございます。
b15 → b16 へmanager/includes/フォルダの上書きしましたが、
症状変わらずです。
aki
メンバー
メンバー
記事: 56
登録日時: 2013年1月23日(水) 20:59

Re: 1.0.14J-r9ベータです

投稿記事by aki » 2015年2月20日(金) 19:10

yamaさん、修正ありがとうございます。
ばっちりです!
noka
メンバー
メンバー
記事: 83
登録日時: 2013年6月19日(水) 10:02

Re: 1.0.14J-r9ベータです

投稿記事by noka » 2015年2月20日(金) 19:55

お疲れさまです。

検証不足ですが、2点ほど報告します。
↓わかりづらいですが、
http://150220185849-6160.evo.demo.modx. ... dable.html


1)Dittoテンプレ内でのwayfinderの不具合
dittoテンプレート内でのwayfinderコール時、config指定が効かずデフォルトが適用されます。また、@CODEで書いた場合は、プレースホルダが空白になるようです。
もともとは、J12あたりで動いていた後者(@CODE)が効かなかったのでconfigを試したのですが、config指定は過去のバージョンでもダメっぽいです。

--

2)pub_dateとpublshedonが初回のみ、一致しない

これは以前からですけれども。

再現手順
========================================
例えば、
<ul>
[[Ditto
&parents=`[*id*]`
&orderBy=`publishedon DESC`
&tpl=`@CODE:<li><span>[+publishedon:date='%Y-%m-%d'+]</span>[+pagetitle+]</li>`
]]
</ul>
といった記述が、親リソースのテンプレがあったとして、

    1新規に子リソース(記事に相当)を作成する
    2公開日(pub_date)を過去の日付を設定して保存する
    3リストを見ると、日付は指定した日付ではなく保存日になっている。
    4再度編集して、何も変更せず「更新」
    5リストを見ると、日付は指定した日付になっている。
*リソースの複製を押して同じ作業する場合は、一度保存されたものを開くからか同じ処理をしてもpub_dateがある場合はpub_dateが適用される。
========================================

過去の記事を後から投稿する際に、pub_dateに過去の日付を指定して調整するのですが、pub_dateで並び替えや表示を行っていると、何かの拍子(空白時処理を忘れたり)に1970.1.1になってしまうことがあり、公開日をリストする際はpublishdedonで統一したいという需要はあろうかと思います。

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

Re: 1.0.14J-r9ベータです

投稿記事by yama » 2015年2月20日(金) 23:07

2)pub_dateとpublshedonが初回のみ、一致しない

先にこちらだけ修正しました
http://150220185849-6160.evo.demo.modx.jp/manager/
確認をお願いします
アバター
yama
管理人
記事: 2895
登録日時: 2009年7月29日(水) 02:50

Re: 1.0.14J-r9ベータです

投稿記事by yama » 2015年2月20日(金) 23:26

min-o さんが書きました:リソースの個数が非常に多いものを1ページに表示している場合に、途中までしか表示されません。

調べてみましたが、b11とb15とではDittoにはこれといった違いはありませんでした。パーサ本体の問題のような気がして、だとするとたぶん重さや量の問題ではなくHTML的な構造の問題だと思います。たとえば、Dittoがせっかく出力した結果を、パーサが勝手に削ってしまってるとかです。
HTMLが途中で途切れるということですが、そのHTMLはいずれかのリソースに含まれますか?あるいはDittoのテンプレート側のHTMLでしょうか?
今回はサンプルを作るのがちょっと無理っぽいので、ヒントを探るのが大変かもですが・・
アバター
yama
管理人
記事: 2895
登録日時: 2009年7月29日(水) 02:50

Re: 1.0.14J-r9ベータです

投稿記事by yama » 2015年2月21日(土) 00:22

noka さんが書きました:dittoテンプレート内でのwayfinderコール時、config指定が効かずデフォルトが適用されます。また、@CODEで書いた場合は、プレースホルダが空白になるようです。
もともとは、J12あたりで動いていた後者(@CODE)が効かなかったのでconfigを試したのですが、config指定は過去のバージョンでもダメっぽいです。

上記の件、
http://150220185849-6160.evo.demo.modx. ... dable.html
修正しました。これで合ってますか?

コード: 全て選択

[[Wayfinder?
 &startId=`[+id+]`
 &level=`2`
 &ignoreHidden=`1`
 &outerTpl=`@CODE:[+wf.wrapper+]`
 &rowTpl=`@CODE:<h4>title:[+wf.title+]</h4>[+wf.wrapper+]`
 &innerTpl=`@CODE:<ul>[+wf.wrapper+]</ul>`
 &innerRowTpl=`@CODE:<li>itemtitle:[+wf.title+]</li>`
]]

「Dittoのテンプレート」が上記のようになっている場合、
&startId=`[+id+]`
この行の[+id+]はDittoのプレースホルダとしての[+id+]ですし、
&outerTpl=`@CODE:[+wf.wrapper+]`
この行の[+wf.wrapper+]はWayfinderのプレースホルダとしての[+wf.wrapper+]ですし、単純な入れ子構造として処理できないので工夫が必要と思いました。

今回は抜本的な工夫は行わず、Dittoのプレースホルダと思われる文字列があれば先に展開して、展開できない文字列はそのまま残してWayfinderに渡すというアプローチをとりました。なので、もしWayfinderのプレースホルダが[+id+]だったり[+title+]だったりすると先にDittoに横取りされてしまうわけですが。
noka
メンバー
メンバー
記事: 83
登録日時: 2013年6月19日(水) 10:02

Re: 1.0.14J-r9ベータです

投稿記事by noka » 2015年2月21日(土) 00:23

yama さま

yama さんが書きました:http://150220185849-6160.evo.demo.modx.jp/manager/
確認をお願いします


早速ありがとうございました。
確認しました。オッケーでした。
アバター
yama
管理人
記事: 2895
登録日時: 2009年7月29日(水) 02:50

Re: 1.0.14J-r9ベータです

投稿記事by yama » 2015年2月21日(土) 09:25

min-o さんが書きました:b15 → b16 へmanager/includes/フォルダの上書きしましたが、
症状変わらずです。

document.parser.class.inc.zip
(28.4 KiB) ダウンロード数: 43 回
添付のファイルを解凍してmanager/includes/ディレクトリに上書きすると変わりますか?一部問題がある処理なのでこのままは使えないですが。
noka
メンバー
メンバー
記事: 83
登録日時: 2013年6月19日(水) 10:02

Re: 1.0.14J-r9ベータです

投稿記事by noka » 2015年2月21日(土) 12:18

yama さんが書きました:「Dittoのテンプレート」が上記のようになっている場合、
&startId=`[+id+]`
この行の[+id+]はDittoのプレースホルダとしての[+id+]ですし、
&outerTpl=`@CODE:[+wf.wrapper+]`
この行の[+wf.wrapper+]はWayfinderのプレースホルダとしての[+wf.wrapper+]ですし、単純な入れ子構造として処理できないので工夫が必要と思いました。


なるほど、スコープの問題ですね。
してみると、DittoにDittoを重ねるなどプレースホルダが重なると、
http://150220185849-6160.evo.demo.modx. ... menus.html
のように、
@CODEで記述することは勘違いしやすくなりそうなので、チャンク指定やconfig指定すると、その文脈でスコープが移動する、というのがわかりやすいと思いますです。
#チャンク指定も@CODEも同じ挙動だと思っていたので発見でした。

なので、config指定が効かなかった問題が解決されていればだいぶ助かります!

おそらく従来(J12あたり?)は、値がないプレースホルダはそのままプレースホルダを出力していたので、@CODEで書いていても大丈夫なことが多かったということでしょうか。バージョンアップ時の互換性配慮と、仕様の整理の問題であるような気がします。
アバター
min-o
メンバー
メンバー
記事: 291
登録日時: 2009年10月07日(水) 18:32

Re: 1.0.14J-r9ベータです

投稿記事by min-o » 2015年2月23日(月) 10:19

yamaさま
返信遅れて申し訳ありません
添付のファイルを解凍してmanager/includes/ディレクトリに上書きすると変わりますか?

document.parser.class.inc.php差し替えてみましたが、症状変わりませんでした。

HTMLが途中で途切れるということですが、そのHTMLはいずれかのリソースに含まれますか?あるいはDittoのテンプレート側のHTMLでしょうか?

確認しました。
3か所あるのですがすべてDittoのテンプレート側のHTMLでした。

3か所ともDittoを入れ子で使用していて、内側のDittoのテンプレートに記述している部分です。
外側のdittoスニペーットコール&tpl=`tpl_リストouter` ←このチャンク内に内側のdittoスニペーットコールで&tpl=`tpl_リストinner`
という構造です。
問題の3か所とも、outer、inner別々のテンプレートです。

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

Re: 1.0.14J-r9ベータです

投稿記事by yama » 2015年2月23日(月) 11:02

http://150223102911-16138.evo.demo.modx.jp/news/
サンプルを作ってみましたが再現できませんでした。構造的にどこか違うところはありますか?
アバター
min-o
メンバー
メンバー
記事: 291
登録日時: 2009年10月07日(水) 18:32

Re: 1.0.14J-r9ベータです

投稿記事by min-o » 2015年2月23日(月) 11:39

htmlはもっと複雑ですが、構造は同じです。
当方のページでも同じ構造で同じテンプレートを使っていて、ちゃんと表示されているページもあるのです。差はリソース数だけぽいのですが。
途切れるページもdittoで&displayをallから減らすとちゃんと表示されます。
アバター
yama
管理人
記事: 2895
登録日時: 2009年7月29日(水) 02:50

Re: 1.0.14J-r9ベータです

投稿記事by yama » 2015年2月23日(月) 12:36

ditto.class.inc.zip
(10.33 KiB) ダウンロード数: 43 回
添付のファイルを解凍してassets/snippets/ditto/classes/ディレクトリに上書きするとどうなりますか?
アバター
min-o
メンバー
メンバー
記事: 291
登録日時: 2009年10月07日(水) 18:32

Re: 1.0.14J-r9ベータです

投稿記事by min-o » 2015年2月23日(月) 12:49

ditto.class.inc.php 上書きしてみましたが、変わらずです。
アバター
yama
管理人
記事: 2895
登録日時: 2009年7月29日(水) 02:50

Re: 1.0.14J-r9ベータです

投稿記事by yama » 2015年2月23日(月) 13:51

うーん、不思議ですね。必ず何か原因があるはずですが。b11に戻すと問題ないのですよね?
http://150223122406-16138.evo.demo.modx ... frame=main
このようにDittoスニペット本体に「$debug=1;」を追記し、
http://150223122406-16138.evo.demo.modx.jp/news/
Dittoスニペットコールが記述されたページを開くとデバッグコンソールが添付された状態になります。
このデバッグコンソールの情報を見て、不自然に感じる部分があるか確認することはできますか?
アバター
min-o
メンバー
メンバー
記事: 291
登録日時: 2009年10月07日(水) 18:32

Re: 1.0.14J-r9ベータです

投稿記事by min-o » 2015年2月23日(月) 14:35

b16とb11のdittoに「$debug=1;」を追記してみました。

b16の方も取得済みデータを見るとすべて取得しているようです。
気になったのはフィールドタブのdisplay項目
b11には
unknown
phx
というのが出ますが
b16は
unknown列がないことです。

とちらもプラグインのphxは使用停止になっています。
b11 phx(20) 2.2.0
b16 phx(20) 2.1.4  ですが。

デバックモードを追加したことで、途切れる個所が、デバックモードがない場合より上になり、表示されるリソースが少し減りました。

イベントログを確認すると

コード: 全て選択

イベントID    1420
ソース    Call undefined property
日付    2015/02/23 14:40:49
$modx->event_params is undefined property

がずっと出ています。(問題のページを読み込むごとに出ている模様)
アバター
yama
管理人
記事: 2895
登録日時: 2009年7月29日(水) 02:50

Re: 1.0.14J-r9ベータです

投稿記事by yama » 2015年2月23日(月) 15:16

modx-1.0.14J-r9-b17.zip
(1.66 MiB) ダウンロード数: 50 回
まだ問題を解決できてませんが、数日間の細かい修正をベータ17としてまとめました。

https://github.com/modxcms-jp/evolution ... #L259-L365
このへんに問題がありそうという気がしています。引き続き調べてみます