We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 19033
    • 892 Posts
    こんにちは。よろしくお願い致します。

    現在、MODx0.9.5に、標準添付のDitto1.0.2を試しているのですが、
    表示がうまくいかない時があります。

    例えば、以下のようにスニペットを呼び出しますと、

     [[Ditto? &startID=`0` &summarize=`5`]]

    ・概要まで表示するタイトルは、5件、残りはアーカイブとして表示。
    ・ドキュメントに「要約(summary)」がない場合は、contentをデフォルトの長さ(300バイト…だと思うのですが)で
    切りつめて表示。

    してきます。が、この時、何かの条件が重なると、変なところでソースを
    切ってしまうのです。。この「何かの条件」は、プログラムされる方なら
    プログラムを見てわかるのかも知れません。。

    例えばDittoが取得しようとしているコンテンツの中に、「a」タグや「img」タグを含む場合、その
    変なところでちょん切れる現象が起きるようです。

    Dittoが取得しようとしているcontentの中に、「<cite><a href="http://ドメインとか/xxxx.html">こちらへ</a></cite>…」などが
    あると、そのピリオド以降のaの閉じタグまでを切ってしまうのです(<cite><a href="http://ドメインとか/xxxx.</cite>…になってしまう)

    ただ、いつも「.」で切ってしまうかというと、そうでもないようで、
    何かの条件が重なった時のようなのです。

    原因と対処方法がわかりますでしょうか。。
    どうぞよろしくお願い致します。
      • 33488
      • 429 Posts
      ロジックとして指定の長さの切り出し処理の中でtextTrunc()の中でピリオドで切っちゃってますねぇ
      英文の終端であるピリオドまでをなんとか救う為の処理なようですが、これが悪さしているようです。
      その後処理でタグが閉じてなければ閉じるようにしいているのでそのような出力になるようです。

      変な風にならないようにするには、
      1.Dittoの呼び出しパラメタtrunc を1以外にして、Contentを全部出しちゃう
      2.IntroTextに書く
      3.Dittoの呼び出しパラメタのTructSplitを1にして、Contentの中にSplitter($_lang[’default_splitter’]の文字列)を入れる
      4.Contentの中にタグを使わない

      ぐらいが考えられます。
      1は、抜粋じゃないので意味がないし、4は縛りがきつすぎるので、2または3の対処が現実的かと思われます。
        • 19033
        • 892 Posts
        ZeRoさん。
        どうもありがとうございます。
        内部の処理上の問題なのですね。

        私も、
        2.IntroTextに書く
        が一番確実で、わかりやすいのかなと思いました。
        どうもありがとうございます。

        追記:1/16 18:30
        MODxのサンプルサイト「id=24(Extendable by design)」で、
        <!-- splitter -->を入れるように推奨しているみたいです…。
        (今気がつきました…)

        さらに追記…。
        <!-- splitter -->を推奨する理由がわかりました。
        後ほど、まとめて、フォーラムに書きます。