Subscribe: RSS
  • Ditto2.0.2のパラメータについて調べてみました。

    調査環境:
    サーバOS: 自前 Debian 3.1
    Apache : 2.0.54
    MySQL : 4.1.11
    PHP : 4.3.10

    MODx : 0.9.5
    Ditto: 2.0.2


    いろんな形式でドキュメントを表示できます。
    スニペットコール
     [[Ditto? &parents=`...` &depth=`..` &tpl=`テンプレートチャンク`]]
    等の書式でコールします。
    基本的な部分は1.0.2と同じ感じで使えます。
    http://modxcms.com/forums/index.php/topic,11072.0.html


    ☆Ditto2.0.2の日本語化について:
    Ditto1.0.2で使用できていた日本語パックのDitto用日本語ファイルは、2.0.2では大幅に変数名などが置き換わってしまっているため、使用できなくなっているようです。

    中途半端な翻訳ではありますが、こちらでDitto2.0.2用の日本語ファイルを作成して、配布していますので、ご利用ください。一応 EUC-JP , SHIFT-JIS , UTF-8 の3つを用意しておきます。
    (日本語部分は改良して使用されることを推奨w)

    http://www.pc-maniax.com/downloads/ditto-202jp.html

    追記:yamaさんがMOD0.9.6RC3の日本語パックを提供してくださってるようです。(UTF-8)
    http://modxcms.com/forums/index.php/topic,14255.0.html   
    5/3再追記:どうやら上記の日本語パックには私が作ったものがマージされてるようです。(あんなのでいいのかなぁ…σ(^_^;  )

    ================== Ditto2.0.2の動作関連 =============================
    &debug
    デバッグ出力するか否か

    &language
    Dittoで使用するlangageファイルを指定 (デフォルト english)
    初期状態ではlangファイルにはenglishしか含まれていないため、日本語で使用する場合には別途日本語化パック
    http://www.pc-maniax.com/downloads/ditto-202jp.html
    のjapanese-euc.inc.php , japanese-utf8.inc.php , japanese-sjis.inc.phpのいずれかを assents/snipets/Ditto/lang/内に
    アップロードして、languageパラメータを指定します。

    又は以下のようにスニペットコードを直接編集しておけば、逐一languageパラメータを指定する必要がなくなります。

    code:
    // ---------------------------------------------------
    // Get Language
    // ---------------------------------------------------

    $language = (isset($language))? $language : "japanese-utf8";

    japanese-utf8の部分をそれぞれeuc,sjis等にしてください。
    ただ、MODx自体がsjisでの運用では何かしら問題が起こることも多いようですので、utf-8か、eucを使うほうが良いでしょう。

    &format
    Dittoの出力フォーマット (デフォルト html)
    Dittoの成形フォーマットを指定できます。
    html,json,xml,atom,rssが利用可能なようです。

    &parent
    取得する親フォルダのID
    1.0.2ではstartIDだったパラメータです。
    スニペット内でparent=startIDと置き換えてますが、今後はparentになる模様なのでparentで指定した方が無難でしょう。
    デフォルトではスニペットをコールしてるドキュメント自身のIDが渡されるようです。

    &display
    取得するサマリの数を指定。
    同じく1.0.2ではsammarizeだったパラメータです。
    デフォルトは3
    allを指定することで、該当する全てのサマリを表示します。

    &total
    取得する件数を指定。
    allを指定することでparent配下のdepth深さ(後述)全ての記事を対象にできます。
    デフォルトはall

    &depth
    取得する階層の深さ(デフォルト 1)
    指定したフォルダ階層分のドキュメントを取得対象とします。
    1.0.2ではdescendentDepth=10になっていたため、デフォルトで10階層分取得してましたが、2.0.2ではデフォルト値が1になっているので、depthを指定しないと、スニペットをコールしたフォルダの中身しか取得できませんので注意が必要です。

    &showPublishedOnly
    公開ドキュメントのみを対象とするか否か 1:YES 0:NO(デフォルト 1)

    &showMenuOnly
    「メニューに表示」をONにしているドキュメントのみを対象とするか否か 1:YES 0:NO (デフォルト 0)

    &hideFolders
    フォルダを隠すか否か 1:YES 0:NO (デフォルト 0)

    &seeThruUnpub
    非公開フォルダの中身を取得対象とするか否か 1:YES 0:NO (デフォルト 1)

    &sortDir
    ドキュメントのソート順指定 ASC(昇順) or DESC(降順) (デフォルト DESC)

    &sortBy
    ドキュメントのソートキー createdon(作成日) editedon(更新日) pub_date(公開日)を指定可 (デフォルト createdon) ....pagetitle(ページのタイトル)も指定できました。

    &removeChunk
    ドキュメント中のチャンクを削除するか。 (デフォルト false)
    ドキュメントに含まれているチャンクコードを指定します。
    たとえば remoeChunk=`commnet` などとすると、記事中のコメントを,(カンマ)で置き換えます。

    &noResults
    表示するドキュメントが存在しない場合(1件も取得できなかった場合)の表示テキスト。
    デフォルトでは langageファイルの $_lang[’no_entries`] が使用されます。
    チャンクを渡すこともできます。

    &start
    ドキュメント表示の際のオフセット (デフォルト 0)
    start=`3`のようにすると、Dittoで取得したドキュメントリストのうち、3番目以降のドキュメントが表示されます。

    &dateSource
    [+date+]で表示する日付の種類を指定します。 (デフォルト createdon)
    createdon(作成日) pub_date(公開日) editedon(更新日)が指定できます。

    &dateFormat
    [+date+]で表示する日時のフォーマット (デフォルト $_lang["dateFormat"])
    PHPのdate関数に対して指定可能なフォーマットが使えます。

    &paginate
    ページ分割するかどうか (デフォルト

    &paginateSplitterCharacter

    ページ分割の際の区切り文字 (デフォルト $_lang[’button_splitter’])

    &tplPaginatePrevious (デフォルト $_lang[’prev’])
    ページ分割時の「前ページ」へのリンクを表示するテンプレート

    &tplPaginateNext (デフォルト $_lang[’next’])
    ページ分割時の「次ページ」へのリンクを表示するテンプレート



    ===== テンプレート関連 =========================

    &tpl
    表示に使用するテンプレート (デフォルト $_lang[’default_template’])
    チャンクを指定できます

    &tplAlt
    tplと交互に表示するテンプレートチャンク (デフォルト tpl)

    &tplFirst
    最初に表示される行のテンプレート。 (デフォルト tpl)

    &tplLast
    最後に表示される行のテンプレート。 (デフォルト tpl)

    &tplCurrentDocument
    Dittoをコールしている自分自身に対する表示テンプレート (デフォルト tpl)

    *** テンプレート関連のパラメータに関する考察 ***

    たとえば以下のような5件の記事を取得する場合の、tpl,tplAlt,tplFirst,tplLast,tplCurrentDocumentの関係を考えてみます。(DittoをコールしているのはDoc4とした場合。)

    Doc1 .... tplFirst
    Doc2 .... tplAlt
    Doc3 .... tpl
    Doc4 .... tplCurrentDocument
    Doc5 .... tplLast

    (DittoをコールしてるのがDoc1であった場合)

    Doc1 .... tplFirst
    Doc2 .... tplAlt
    Doc3 .... tpl
    Doc4 .... tplAlt
    Doc5 .... tplLast

    この場合、Doc1に対してDocCurrentDocumentが適用される事を期待していても、tplFirst,tplLastの方が優先順位が高いらしく、適用されませんので注意が必要です。

    ***********************************************************************

    まだまだ検証しきれてないパラメータも沢山ありますが、随時追加していきます

    よくわからないもの
    phx
    filter
    exteners
    • chobiさん。こんにちは。
      どうもありがとうございます。

      えっと、「Ditto: 2.0.2」ですよね。
      rssの出力でエラーが出ていませんか?
      もしかして直されているのかもしれませんが。。

      私は0.9.6rc3に同梱のDittoで試したのですが
      バージョンが同じ2.0.2になっています。

      で、コンテンツタイプ「text/xml(サンプルコンテンツでは
      feed.rss)」を表示しようとすると以下のメッセージが表示されます。
      XML パースエラー: 整形式になっていません。
      URL: /index.php?id=55&manprev=z
      行番号: 1, 列番号: 3:<?
      --^

      で、これは詳しい方に教えて頂いて、対処のし方がわかっているので、
      一応書いておきますね。

      「ditto/configs/default.config.php」を訂正します
      <?
      // Use the following syntax $param = 'value';
      ?>


      <?php
      // Use the following syntax $param = 'value';
      ?>
      • MEGUさん、こんにちわ。


        &formatにrssを指定したときの挙動についてでしょうか?

        私の方でもMODx 0.9.6RC3入れてみて検証してみました。
        え、と。サンプルサイトのfeed.rssはちゃんと表示されますね・・・?

        コンテンツタイプが xmlなコンテンツ(feed.rss)にアクセスすると普通にRSSな表示がされます。
        中身は [[Ditto? &startID=`2` &format=`rss` &summarize=`20` &total=`20` &commentschunk=`Comments`]] です。


        XML パースエラー: 整形式になっていません。
        URL: /index.php?id=55&manprev=z
        行番号: 1, 列番号: 3:<?
        --^

        このエラーは普通なドキュメントを無理やりコンテンツタイプをxmlにしてしまったときにはよく目にしますが…
        すみません。中身がよくわかってないのかも…です。 :’(
        • chobiさん。わざわざ検証頂いてありがとうございます。

          もしかするとサーバーによって挙動が違うかも知れません。
          (そういえば以前もそんなことがあったような…)。

          コンテンツタイプが xmlなコンテンツ(feed.rss)にアクセスすると普通にRSSな表示がされます。
          中身は [[Ditto? &startID=`2` &format=`rss` &summarize=`20` &total=`20` &commentschunk=`Comments`]] です。

          そうです。そしてコンテンツタイプが「text/xml」ですが、うちでは、前述のエラーメッセージが表示されます。

          で、うちは、さくらインターネットなのですが、
          <?
          .....
          ?>
          

          と書いてあると動作しないようなのです。

          でそれを
          <?php
          .....
          ?>
          

          としてやると動くようになるという。。もしかしてそれかも。。
          chobiさんの環境ではちゃんと表示されるのですね。
          お騒がせしてすみません。。
          • こんにちわー。
            少しだけ補足させてください。

            Quote from: MEGU at May 01, 2007, 07:33 AM

            でそれを
            <?php
            .....
            ?>
            

            としてやると動くようになるという。。もしかしてそれかも。。

            これはphpの設定でshort_open_tagがoffになっている場合、"<?php"と書かないと<? ~ ?>の中をphpコードと認識してくれず、そのまま出力されてしまうのが原因です。
            レンタルサーバによってこのshort_open_tagの設定がマチマチなので動く人と、動かない人が出てくるみたいですね。

            short_open_tagの設定はMODxの管理画面の「レポート」→「システム情報」にあるphpinfo()(※「ここをクリック」と書かれています)を見れば確認できると思います smiley

            • soushiさん。どもありがとうございます~。

              なるほど。納得できました。すっきり。。 laugh
              • こんにちわ。Chobiです。
                Quote from: soushi at May 01, 2007, 08:42 AM

                これはphpの設定でshort_open_tagがoffになっている場合、"<?php"と書かないと<? ~ ?>の中をphpコードと認識してくれず、そのまま出力されてしまうのが原因です。
                レンタルサーバによってこのshort_open_tagの設定がマチマチなので動く人と、動かない人が出てくるみたいですね。

                short_open_tagの設定はMODxの管理画面の「レポート」→「システム情報」にあるphpinfo()(※「ここをクリック」と書かれています)を見れば確認できると思います smiley

                当方でも確認してみました。
                確かに私のとこではshort_open_tagはONになってますね。
                私の方でもすっきりです。
                • こんにちは。
                  Dittoのサポートスレッドで報告されていました。
                  fixされているようです wink
                  http://modxcms.com/forums/index.php/topic,14190.0.html
                  • 言語ファイルありがとうございます。Dittoに関してはエントリー数の帳尻合わせただけなんで、
                    chobiさんの作ったものをマージさせていただきますね。助かります。 cool

                    ※23時01分追記
                    僕がマージしたぶん、よく見ると1.02ベースですね。アブナイアブナイ。汗
                    • Ditto2.1 出ました。
                      私の解説は、まだ2.1beta ですが、よろしければご参照下さい。
                      http://www.liolion.info/modx/resource/ditto2.html
                      (いずれ検証して、こちらのフォーラムにもアップします)。

                      Reflectのバージョンも2.1.0にあがっています。
                      解説はこちらです(でもパラメタとか若干増えてるかも)。
                      http://www.liolion.info/modx/resource/reflect2.html
                      こちらも、検証次第、フォーラムにアップします。

                      ※かんけーない話題ですが、0962でるかもですね※