#timeline()

概要

タイムラインを表示

書式

ブロック

#timeline(TYPE,LIMIT,PERIOD,CONFIG,SOURCE,KEYWORD,CREATE,TITLE)

引数

引数名書式必須条件内容
TYPEtype=name
常時デザインタイプ
LIMITlimit=n常時最大表示件数
PERIODperiod=常時期間指定方法
 [ days_before 過去n日 
 | days_after 未来n日 
 | start_end 開始と終了 
 | this_y 年 
 | this_ym 年/月 
 | this_ymd 年/月/日 
 | this_w ] 年/月/日の週 
days_before=nperiod=days_before過去n日
days_after=nperiod=days_before未来n日
start=YYYY/MM/DDperiod=start_and_end開始日
end=YYYY/MM/DDperiod=start_and_end終了日
this_y=YYYYperiod=this_y指定年のみ
this_ym=YYYY/MMperiod=this_ym指定月のみ
this_ymd=YYYY/MM/DDperiod=this_ymd指定日のみ
this_w=YYYY/MM/DDperiod=this_w指定日の週のみ
CONFIGhead_of_week=n-週の初めの曜日の指定。
0=日(初期)~6=土
SOURCEcategory=カテゴリ名常時表示するタイムラインソースの指定。複数記述可
KEYWORDkeyword=キーワード-フィルタ条件にするキーワード。指定したキーワードが付いているページのみ抽出される
CREATEdefault_add_path=階層名-新規作成の設定。
指定すると新規作成用のボタンが有効になる。
default_add_category=カテゴリdefault_add_path新規追加時のカテゴリ。省略時は、newsが指定されたと見なす
TITLEtitle=タイトル-タイトル欄。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;