#timeline()
概要
タイムラインを表示
書式
ブロック
#timeline(TYPE,LIMIT,PERIOD,CONFIG,SOURCE,KEYWORD,CREATE,TITLE)
引数
| 引数名 | 書式 | 必須条件 | 内容 |
| TYPE | type=name | 常時 | デザインタイプ |
| LIMIT | limit=n | 常時 | 最大表示件数 |
| PERIOD | period= | 常時 | 期間指定方法 |
| [ days_before | 過去n日 | ||
| | days_after | 未来n日 | ||
| | start_end | 開始と終了 | ||
| | this_y | 年 | ||
| | this_ym | 年/月 | ||
| | this_ymd | 年/月/日 | ||
| | this_w ] | 年/月/日の週 | ||
| days_before=n | period=days_before | 過去n日 | |
| days_after=n | period=days_before | 未来n日 | |
| start=YYYY/MM/DD | period=start_and_end | 開始日 | |
| end=YYYY/MM/DD | period=start_and_end | 終了日 | |
| this_y=YYYY | period=this_y | 指定年のみ | |
| this_ym=YYYY/MM | period=this_ym | 指定月のみ | |
| this_ymd=YYYY/MM/DD | period=this_ymd | 指定日のみ | |
| this_w=YYYY/MM/DD | period=this_w | 指定日の週のみ | |
| CONFIG | head_of_week=n | - | 週の初めの曜日の指定。 0=日(初期)~6=土 |
| SOURCE | category=カテゴリ名 | 常時 | 表示するタイムラインソースの指定。複数記述可 |
| KEYWORD | keyword=キーワード | - | フィルタ条件にするキーワード。指定したキーワードが付いているページのみ抽出される |
| CREATE | default_add_path=階層名 | - | 新規作成の設定。 指定すると新規作成用のボタンが有効になる。 |
| default_add_category=カテゴリ | default_add_path | 新規追加時のカテゴリ。省略時は、newsが指定されたと見なす | |
| TITLE | title=タイトル | - | タイトル欄。typeによっては出力されない可能性がある。省略時はtypeの表示名が指定されたと見なす |
- LIMITはiCalendar等の、反復定義によって無限に近い数のデータを採取する可能性が有るため無制限にすることは出来ません。1以上10000以下の整数で指定してください
記述例
#timeline(type=calender1,limit=10000,head_of_week=1,head_of_year=1,feed=rss10,paging=1, period=this_ym,this_ym=,category=blog,default_add_path=,default_add_category=blog)
デザインファイル系
YAMLでの設定部分(user-config.yml / default-config.yml)
仕様
CORE:
CATEGORIES:
キー:
LABEL: 表示名
#カテゴリーそのものの存在(-1:無し、1:有り)
DISPLAY: 1
EASYADD:
# 簡易表示の表示順
DISPLAY: 1
MODE: news
PLUGIN:
TIMELINE:
TYPES:
キー:
LABEL: 表示名
# 表示順
DISPLAY: 1
# デザインファイルの名前
DESIGN: デザイン名
# デザインに渡すデータフォーマットの名前
RENDER: list
OPTIONS:
# ページを出力する順番。RENDERによって無視されたり初期値が異なる。
# 現状ではRENDERがlistの時のみ機能し、そのデフォルトはDESC
# ASC:正順 DESC:逆順
# Cacoo ニュースUI (※1参照)
ORDER_BY: DESC
- 各項はDISPLAY > キー の優先順位でソートする。-1は表示対象外。UIで指定出来るDISPLAY値は-1または1~
- キーは新規作成時に、ページ名からコンテンツIDを作るときと同じロジックで表示名からひねる。後から変更することは出来ない。
- PLUGIN.TIMELINE.TYPE_GROUPSは、PLUGIN.TIMELINE.TYPESをグルーピングして表示する為の分類リスト。PLUGIN.TIMELINE.TYPES.キー.GROUPSに配列で列挙指定する
- TYPES にある、RENDERはデザインファイルに引き渡すデータ構造の指定。
- listは旧来のnewsプラグインと同じ構造。
- カテゴリのキーは、後にRSSに出す時にも使われる
- 強制的に決まっているものとして以下がある(何らかの手段で変更しても常に上書きされる)
PLUGIN:
TIMELINE:
TYPES:
news:
LABEL: ニュース
DISPLAY: 0
DESIGN: base
RENDER: list
OPTIONS:
ORDER_BY: DESC
CORE:
CATEGORIES:
news:
LABEL: ニュース
DISPLAY: 0 ※常に最上位
EASYADD:
DISPLAY: 1
MODE: news
サンプル
PLUGIN:
TIMELINE:
TYPES:
news:
LABEL: ニュース
DISPLAY: 1
DESIGN: base
RENDER: list
OPTIONS:
ORDER_BY: DESC
calender:
LABEL: 月ごとカレンダー
DISPLAY: 1
DESIGN: cal
RENDER: cal
OPTIONS:
RENDERの種類とデザインに渡されるデータ
list
旧来のnewsにそっくりなもの。差は以下の通りです。
- $news という変数名が $data に変わった
- 各ページの編集、削除用の変数が追加されました
簡易的にjson形式で表記していますが、実際にはphp(smarty)の配列です。
$data = [
{
"pagename":"ページ名"
,"linkname":"ページ名の最後の部分"
,"url":"ページへの相対リンクURL"
,"date":"帰属日(YYYY/mm/dd)"
,"openhttp":"http側で見れるかどうか(0or1)"
,"openhttps":"https側で見れるかどうか(0or1)"
,"fresh":"新着フラグ(0or1)"
,"desc":"概要でかかれた文章から改行を除去したもの"
,"keyword":このページに設定されているキーワードの配列
,"admin_tag":編集ボタンをまとめたhtml
,"edit_tag":このページの編集ボタンhtml
,"edit_js":このページの編集ボタンに使用するjavascript部分
,"delete_tag":このページの編集ボタンhtml
,"delete_js":このページの編集ボタンに使用するjavascript部分
}
]
cal
カレンダー風
- 簡易的にjson形式で表記していますが、実際にはphp(smarty)の配列です。
- 複雑なデータ構造で、汎用例で表現するのは難しいため例のみとします
例:2012年3月の日曜日始まりカレンダーで、2012/03/03に記事がある場合(第一週のみ記載)
$dayofweek=
[
{"index":"1","label":"月"}
,{"index":"2","label":"火"}
,{"index":"3","label":"水"}
,{"index":"4","label":"木"}
,{"index":"5","label":"金"}
,{"index":"6","label":"土"}
,{"index":"0","label":"日"}
]
$data =
{"20120303":{
[
{
"pagename":"ページ名"
,"linkname":"ページ名の最後の部分"
,"url":"ページへの相対リンクURL"
,"date":"帰属日(YYYY/mm/dd)"
,"openhttp":"http側で見れるかどうか(0or1)"
,"openhttps":"https側で見れるかどうか(0or1)"
,"fresh":"新着フラグ(0or1)"
,"desc":"概要でかかれた文章から改行を除去したもの"
,"keyword":このページに設定されているキーワードの配列
,"edit_tag":このページの編集ボタンhtml
,"edit_js":このページの編集ボタンに使用するjavascript部分
,"delete_tag":このページの編集ボタンhtml
,"delete_js":このページの編集ボタンに使用するjavascript部分
}
]
}
$prev=スクリプト ←中身はonlickで使用するjavascriptとなる。
$next=スクリプト ←中身はonlickで使用するjavascriptとなる。
$cal ={"2012":{"03": ←第一層のキーは年、第二層のキーは月。中身はカレンダーのセルが入った配列となる
[
{
"key": "20120227"
,"gap":-1 ←pre gapを表す値。ここでは結果的に第一週の前月分を意味する
,"year":"2012"
,"month":"02"
,"day":"27"
,"week":"1" ←曜日を表す数字。0:日 ~ 6:土
,"head_of_w":"1" ←週の最初の日に該当するかどうかのフラグ。
,"bot_of_w":"0" ←週の最後の日に該当するかどうかのフラグ。
}
(2012/02/28略)
,{
"key": "20120229"
,"gap":-1
,"year":"2012"
,"month":"02"
,"day":"29"
,"week":"3"
,"head_of_w":"0"
,"bot_of_w":"0"
}
,{
"key": "20120301"
,"gap":0
,"year":"2012"
,"month":"03"
,"day":"01"
,"week":"4"
,"head_of_w":"0"
,"bot_of_w":"0"
}
(2012/03/02~03は略)
,{
"key": "20120304"
,"gap":0
,"year":"2012"
,"month":"03"
,"day":"04"
,"week":"0"
,"head_of_w":"0"
,"bot_of_w":"1"
}
(二~四週目は略)
,{
"key": "20120326"
,"gap":0
,"year":"2012"
,"month":"03"
,"day":"26"
,"week":"1"
,"head_of_w":"1"
,"bot_of_w":"0"
}
(2012/03/27~30は略)
,{
"key": "20120331"
,"gap":0
,"year":"2012"
,"month":"03"
,"day":"31"
,"week":"6"
,"head_of_w":"0"
,"bot_of_w":"0"
}
,{
"key": "20120401"
,"gap":1 ←post gapを表す値。ここでは結果的に第五週の来月分を意味する
,"year":"2012"
,"month":"04"
,"day":"01"
,"week":"0"
,"head_of_w":"0"
,"bot_of_w":"1"
}
]
}}
PLUGIN:
TIMELINE:
TYPES:
news:
LABEL: ニュース
DISPLAY: 0
DESIGN: base
RENDER: list
OPTIONS:
ORDER_BY: DESC
calender:
LABEL: 月ごとカレンダー
DISPLAY: 1
DESIGN: cal
RENDER: cal
OPTIONS:
calenderw:
LABEL: 週ごとカレンダー
DISPLAY: 1
DESIGN: calw
RENDER: calw
OPTIONS:&br;