#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;