Welcome !! Now 2008.07.25 16:32 (JST)

Ditto (1.0.2)

[ スニペット ]

Dittoは、様々な形式で、ドキュメントの一覧を出力するスニペットです
ドキュメントにタグを挿入したり、カテゴリページを作ったり、ブログやニュース形式でページを作ったり出来ます
rss feedも出力出来ます。マルチ言語対応

参照ページ:Ditto 1.0.2

テスト環境

  • サーバ:さくらインターネット  
    • PHP 4.4.4
    • MYSQL 4.0.27
  • MODX:0.9.5
  • Ditto (1.0.2)

このページの解説について

このページは、Ditto 1.x系の解説です。Ditto 2.x系の解説はこちらになります。

日本語化

  1. 言語ファイルは日本語言語パックに含まれています。適用がまだの場合は、適用してください
  2. スニペットの言語設定を以下の様にします

    例:

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

    languageは、利用したい言語名にしてください

注意事項:

取得内容にタグ(aやimg等)を含んでいると、取得に失敗することがあるようです。内部の処理の問題上、ある条件が重なった時、「.」を見つけるとそこで切ってしまうからです。例えば、「<cite><a href="http://ドメインとか/index.html>テキスト</a></cite>」とかがあると、条件によっては「<cite><a href="http://ドメインとか/index.</cite>」というようになり、ソースが崩れます。

対処法として、サンプルサイトの「Extendable by design」にもありますが、「<!-- splitter -->(後述)」を有効に使い、この問題を避ける事が出来ます。

また、デフォルトのテンプレートでは、タイトルの後に、ドキュメントに要約がなければ、コンテンツを切りつめて表示してくるようですので、要約をかならず、書けば(タグなしで…<p>や<br />なら大丈夫)失敗しないと思います。

基本的な書式

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

パラメータ

archiveDateType

アーカイブのデータタイプを指定。デフォルト「createdon(作成日)」。その他「pub_date(公開日)」「editedon(更新日)」を指定可

archivePlaceholder

アーカイブをプレースフォルダとして呼び出すか否か…?よくわからない。どうやって使うんだろう。デフォルト「0(しない)」

archiveText

アーカイブのタイトル。デフォルト「アーカイブ($_lang['archives'])」

commentsChunk

ドキュメントにコメント欄を設定している場合、そのチャンク名を指定し、表示可

dateFormat

日付の形式。デフォルト「%Y/%m/%d %H:%M($_lang['date_format'])」

debug

デバッグ情報を出力するか否か。デフォルト「しない(0)」

descendentDepth

取得する階層の深さ。デフォルト「10」

displayArchive

アーカイブを表示するか否か。デフォルト「する(1)」

emptyText

表示すべきドキュメントがない場合に表示するテキスト。デフォルト「<p>記事はありません。</p>($_lang['no_entries'])」

filter

フィルタを指定。デフォルト「false」

format

出力形式。デフォルト「html」。他「rss」、「JSON」、(「archive」?)

hiddenTVs

隠しTVを指定。

hideFolders

フォルダは隠すか否か。デフォルト「隠さない(0)」

mode

プログラムの実行モードを指定。デフォルト「development」。他「production(これを指定するとちょっと実行速度が速くなる…らしい)」

paginate

ページ分割するか否か。デフォルト「しない(0)」。「paginate=1」の場合は、アーカイブリストを表示しない(当たり前か…)。ページナビゲーションはテンプレートに書くのではなく、Dittoを呼び出しているドキュメントに書く(そんなことで悩むのは私だけかも知れないけど…)。ページ分割する時は、キャッシュ「しない」にしないと動作しない。Dittoのドキュメントにあるページナビ用のスニペット呼び出しの中のパラメータ「multiLevel」は、実際には存在しないので、書いても無効

paginateAlwaysShowLinks

常に「次へ」「前へ」のリンクを表示するか否か。デフォルト「しない(0)」。

paginateSplitterCharacter

paginateAlwaysShowLinksが無効の時の区切り文字。デフォルト「|($_lang['button_splitter'])」。

※機能せず?※

seeThruUnpub

非公開フォルダの子ドキュメントを取得するか否か。デフォルト「しない(0)」。

※機能せず?※

showInMenuOnly

メニュー化してないドキュメントを隠すか否か。デフォルト「隠さない(0)」。

showPublishedOnly

非公開ドキュメントを隠すか否か。デフォルト「隠す(1)」。

sortBy

並べ替えの基準を指定。デフォルト「作成日(createdon)」。推奨「createdon」「pub_date」「editedon」

「pagetitle」でも大丈夫。みたい。

sortDir

昇順(ASC)か降順(DESC)か。デフォルト「降順(DESC)」

start

表示する際のオフセット値を指定。指定した数より前(後)のドキュメントから表示。デフォルト「最初からすべて表示(0)」

<MTEntries lastn="11" offset="1">のオフセットみたいなやつ

startID

表示させたいドキュメントを含む親フォルダ(ドキュメント)ID。デフォルト「カレントドキュメント」。 コンマで区切って複数指定可

summarize

summaryを表示する数。残りは、アーカイブとして表示。デフォルト「3」。

tagData

Tagsを表示する際のソース。テンプレート変数を指定

tagDelimiter

Tagを区切る文字。TVのwidgetで指定した値が入る。デフォルト「" "(space)」

tagMode

Tagのモード。デフォルト「onlyTags」。他「onlyAllTags」、「removeAllTags」、「removeTags」

tags

条件になるキーワード(Tag)。TVで定義した正確な単語を書く。区切り文字は「tagDelimiter」で指定した値

total

取得する(表示する)ドキュメントの最大数。デフォルト「全てのドキュメント」。

total - summarize = archive

tpl

表示用テンプレート(チャンク)。デフォルト「$_lang['default_template']」

<div class="ditto_summaryPost">
  <h3><a href="[~[+id+]~]">[+title+]</a></h3>
  <div>[+summary+]</div>
  <p>[+link+]</p>
  <div style="text-align:right;">投稿者:<strong>[+author+]</strong> [+date+]</div>
</div>

tplAltRows

デフォルト「$tpl」。これを指定すると「tpl」と「tplaltRows」が交互に現れる。背景の色を行毎に交互に変えて見やすくしたい時、などに使うと良いのかも
ちょうどこんな感じ → Ditto Parameters

tplArch

アーカイブリスト用のテンプレート(<li></li>の中身)。デフォルト「言語ファイルから読み込み($_lang['default_archive_template'])」

<a href="[~[+id+]~]">[+title+]</a> (<span class="ditto_date">[+date+]</span>) 

tplArchiveNext/tplArchivePrevious

ページ送りの時表示するテキスト用テンプレート(チャンク)。デフォルト「$tpl」「前へ($_lang['prev'])」。

※「tplArchivePrevious=`ここに直接テキストを書いても機能しません。ここにはチャンク名を書きます`」※

tplFirstRow

最初の行用のテンプレート。デフォルト「$tpl」

tplLastRow

最後の行用のテンプレート。デフォルト「$tpl」

trunc

ドキュメントにsummary(要約)がある場合、summary(要約)を表示するか否か。デフォルト「する(1)」。「0」の場合、summary(要約)のあるなしに関わらず、コンテンツを全文表示。かつ、その他のバラメータ「trunc~」は、無効になる

truncAt

コンテンツを表示している場合、どこで切り詰めるか。デフォルト「<!-- splitter -->($_lang['default_splitter'])」。summary内では機能しない

truncChars

文章の途中でも切りつめるか否か。デフォルト「しない(0)」。Lenで指定したバイト数より前のHTML終了タグで切りつめられる?。もしかすると、何バイト戻るか決まっているのかも…。
「truncChars=1」だと文章の途中でも切りつめられる。

truncLen

切りつめる長さ。デフォルト「300」。

truncOffest

切りつめる時、HTMLタグの途中だった場合、どれくらい(何バイト)戻って切りつめるか…だと思うんですけど(アヤシイ…笑)、でもパラメータ自体存在しないようです

truncSplit

「<!-- splitter -->」を有効にするか否か。デフォルト「する(1)」「0」にするとコンテンツ中に<!-- splitter -->があっても無視また、文章中にスプリッターを挿入した場合は、たとえ、truncLenで長さを指定していたとしてもそれは無視され、必ず、スプリッターの位置で、区切られる

truncText

いわゆる「続きを読む」を指定。デフォルト「続きを読む...($_lang['more_text'])」

サンプルを表示

タイトル、概要、日付を表示

スニペットコールサンプル
[[Ditto? &mode=`production` &summarize=`5` &displayArchive=`1` &startID=`54` &tpl=`forDittoTpl` &tplAltRows=`forDittotplAltRows`]]

rss feedを出力

スニペットコールサンプル
[[Ditto? &startID=`2` &format=`rss` &summarize=`20` &total=`20`]]

※サンプルサイトにあるRSS Feed では、Dittoで以下のように呼び出していますが:

[[Ditto? &startID=`2` &format=`rss` &summarize=`20` &total=`20` &commentschunk=`Comments`]]

rssfeedに&commentschunkは、必要ないので、書かなくて良いと思います

△ページトップ