トップ 差分 一覧 Farm ソース 検索 ヘルプ PDF RSS ログイン

テンプレ説明


はじめに

このドキュメントでは、FSWikiのテンプレートファイル内で有効なタグについて解説します。(サイトテンプレートの概要・ディレクトリ構成・ファイル名については、readme?の「サイトテンプレート」の項目を参照してください)。

FSWikiテンプレートの構成


テンプレートはWikiページの構造を記述します。構造は、次の3つの要素(タグ)で構成されます。

  • (X)HTML
  • 汎用DIV要素(CSSでデザインし易くする目的)
  • FSWikiテンプレートタグ

本項では、FSWikiテンプレートタグについて解説します。(X)HTML、汎用DIV要素については、他の解説書を参照してください。

FSWikiテンプレートタグ

  FSWikiテンプレートタグの区分


FSWikiテンプレートタグをまとめると、次のような区分ができます。

FSWikiテンプレートタグ  … HTML::Template タグ + FSWiki 独自タグ
	|
	+-	HTML::Template タグ … TMPL_(*) 要素 / NAME属性が必須
	|	                       書式 <!--TMPL_(command) NAME="(PARAM)"-->
	|	                       (HTML::Template 依存)
	|
	+-	FSWiki 独自タグ     … FSWIKI_INCLUDE 要素 / PAGE属性が必須
		                       (コアの正規表現 依存)
		                       書式 <!--FSWIKI_INCLUDE PAGE="(WikiPageName)"-->
		                       常時表示ページを取り込む為の独自拡張
	
		                       Wikiページ存在状況で切り分けるため、
		                       HTML::Template の専用パラメータがある
		                       切り分けの為の専用パラメータ … EXIST_PAGE_(WikiPage) 
		                       TMPL_IF , TMPL_ELSE, TMPL_UNLESS の記述で活用

  • FSWikiテンプレートタグは、HTML::TEmplateタグとFSWiki独自のタグがあります。

  • FSWikiテンプレートタグでは、マークアップ言語の要素形式とHTML言語のコメント形式の書式が利用できます。
    • default.tmplなどで利用されているFSWikiテンプレートタグは、HTML言語のコメント形式(<!-- -->でタグをくくった形式)です。見やすさの点から、こちらの形式を推奨します。
    • FSWiki独自タグはHTML言語のコメント形式の書式のみ利用できます。

  FSWikiテンプレートタグ解説


FSWikiのテンプレートで使うタグは、次のものです。HTML::Templateに準じますので、詳細は、HTML::Template - CGI スクリプトから HTML テンプレートを使うための Perl モジュールも参照してください。

TMPL_VAR

  • PARAMETER_NAMEの値に置換されます。
<!--TMPL_VAR NAME="PARAMETER_NAME"-->

TMPL_IF

  • もしPARAMETER_NAMEの値が真(1 or 何か値が入っている)ならば ... の処理を行います。
<!--TMPL_IF NAME="PARAMETER_NAME"--> ... <!--/TMPL_IF-->

TMPL_ELSE

  • もしPARAMETER_NAMEの値が真(1 or 何か値が入っている)ならば a の処理を、値が偽(0 or 空)ならば b の処理を行います。
<!--TMPL_IF NAME="PARAMETER_NAME"--> ..a.. <!--TMPL_ELSE--> ..b.. <!--/TMPL_IF-->

TMPL_UNLESS

  • もしPARAMETER_NAMEの値が偽(0 or 空)ならば ... の処理を行います。
<!--TMPL_UNLESS NAME="PARAMETER_NAME"--> ... <!--/TMPL_UNLESS-->

TMPL_INCLUDE

  • PARAMETER_NAMEで指定されたファイルを読み込み表示します。
<!--TMPL_INCLUDE NAME="PARAMETER_NAME"-->

  • FSWikiにおけるTMPL_INCLUDEの使用例
    • example.tmpl 内で <TMPL_INCLUDE NAME="include.tmpl"> と記しておくと、include.tmpl内に記述したHTMLが表示されます。

FSWiki
  +- /tmpl
     +- /example
         +-  example.tmpl
         +-  include.tmpl

FSWIKI_INCLUDE

  • このタグは、FSWiki独自拡張タグです。
  • 用途は、Header,Footer,Menuなど、常時表示するページをテンプレートに書くためです。
<!--FSWIKI_INCLUDE PAGE="WIKI_PAGE_NAME"-->

  • WIKI_PAGE_NAMEについて
    • WIKI_PAGE_NAMEは任意のWikiページ名です。(例:Header,Menu,Footerなど)
    • 指定できるページは、「/」が名前に入らないページです。
    • 「/」が名前に入っていなければ、漢字やひらがなの入ったページ名も利用できます。

  • EXIST_PAGE_(WikiPage)を併用する
    • Wikiページ存在状況で切り分けるため、切り分けの為の専用パラメータ、「EXIST_PAGE_(WikiPage)」があります。
    • EXIT_PAGE_(WikiPage)は、TMPL_IF , TMPL_ELSE, TMPL_UNLESS の記述で活用します。
    • 指定できるページは、WIKI_PAGE_NAMEに準じます。

  • 使用例
    • もし、Menuというページがある場合、Menuページを表示する。
   <!--TMPL_IF NAME="EXIST_PAGE_Menu"-->
       <!--FSWIKI_INCLUDE PAGE="Menu"-->
   <!--/TMPL_IF-->

 参考

FSWikiテンプレートタグに利用できるPARAMETER_NAME

  PARAMETER_NAME一覧

主に<head>〜</head>内で利用されるPARAMETER_NAME

PARAMETER_NAME
SITE_NAME サイト名
SITE_TITLE ページ名 - サイト名
HEAD_INFO RSS auto-discovery情報
THEME_CSS テーマのCSSへの相対パス
USER_CSS ユーザ定義スタイル
THEME_URI テーマ格納ディレクトリパス

主に<body>〜</body>内で利用されるPARAMETER_NAME

PARAMETER_NAME
TITLE ページ名がリンク形式で表示されます。
MENU Wikiメニュー
CONTENT 表示ページの内容(HTMLに変換済み)
FOOTER FSWikiのバージョン、管理者情報

制御系のPARAMETER_NAME

制御系のPARAMETER_NAMEは主にTMPL_IF,TMPL_UNLESSで利用されます。

PARAMETER_NAME
IS_ADMIN 管理者でログイン中なら1、それ以外なら0
IS_LOGIN 管理者またはユーザでログイン中なら1、それ以外なら0
FRONT_PAGE 表示するページがFrontPageなら1、それ以外なら0
CAN_SHOW 表示するページが参照可能なら1、参照不可能なら0
EDIT_MODE 編集画面なら1、それ以外なら0
HAVE_USER_CSS ユーザ定義スタイルがある場合1、ない場合0
EXIST_PAGE_WikiPage WikiPageが存在する場合1、しない場合は0

  SITE_NAME

    • SITE_NAMEの値は「サイト名」です。
    • 「サイト名」は、管理者でログイン→「管理」→「環境設定」ページの設定できます。
    • この値はタグなどは入りません。
    • 類似パラメータネームにSITE_TITLEがあります。
  • 値の例
    • このサイトの場合。
ドキュメント
  • 記述例
    • もし表示ページがFrongPageならば、「サイト名」を表示する。そうでない場合、「ページ名 - サイト名」(SITE_TITLE)を表示する。
   <!--TMPL_IF NAME="FRONT_PAGE"-->
     <title><!--TMPL_VAR NAME="SITE_NAME"--></title>
   <!--TMPL_ELSE-->
     <title><!--TMPL_VAR NAME="SITE_TITLE"--></title>
   <!--/TMPL_IF-->

  SITE_TITLE

    • SITE_TITLEの値は「ページ名 - サイト名」です。
  • 値の例
    • このサイトのSandBox?ページの場合
SandBox - ドキュメント
  • 記述例(default.tmpl)
    • default.tmplでは<head>〜</head>内で次のように利用しています。
<title><!--TMPL_VAR NAME="SITE_TITLE"--></title>

  HEAD_INFO

    • HEAD_INFOの値は、RSS auto-discovery情報です。
    • ※下記の文字列中、hrefのhは小文字に読み換えてください。
<link rel="alternate" type="application/rss+xml" title="RSS" href="wiki.cgi?action=RSS">
  • 記述例(default.tmpl)
    • default.tmplでは<head>〜</head>内で次のように利用しています。
<!--TMPL_VAR NAME="HEAD_INFO"-->

  THEME_CSS

    • テーマのCSSへの相対パスが表示されます。
    • 管理者でログイン→「管理」→「スタイル設定」ページの「テーマ」で指定します。
  • 値の例
    • 「スタイル設定」でdefaultを指定します。すると次の値がTHEME_CSSに入っています。
./theme/default/default.css
  • 記述例(default.tmpl)
    •  default.tmplでは<head>〜</head>内で次のように利用しています。
    • 下記の記述は、もしTHEME_CSSに値がある場合、THEME_CSSで指定した外部スタイルシート(テーマ)へのlinkを表示します。
    • ※下記の文字列中、hrefのhは小文字に読み換えてください。
   <!--TMPL_IF NAME="THEME_CSS"-->
     <link rel="stylesheet" type="text/css" href="<!--TMPL_VAR NAME="THEME_CSS"-->">
   <!--/TMPL_IF-->

  USER_CSS

    • 「ユーザ定義スタイル」で定義された文字列です。
    • 「ユーザ定義スタイル」の設定は、管理者でログイン→「管理」→「スタイル設定」ページの「ユーザ定義スタイル」に記述します。
  • 値の例
/* エラーメッセージ */
.error {
  color       : #FF0000;
  font-weight : bold;
}

/* 存在しないWikiページ */
span.nopage {
   background-color : #FFFF88;
}

(以下省略)
  • 記述例(default.tmpl)
    •  default.tmplでは<head>〜</head>内で次のように利用しています。
    • 下記の記述は、もしユーザ定義スタイルが存在する場合、head中に定義されたCSSをstyleタグで埋め込みます。
   <!--TMPL_IF NAME="HAVE_USER_CSS"-->
     <style type="text/css">
     <!--
     <!--TMPL_VAR NAME="USER_CSS"-->
     -->
     </style>
   <!--/TMPL_IF-->

  THEME_URI

    • setup.datの「テーマを参照するためのURI(theme_uri)」で定義したパスを表示します。
  • 値の例
    • デフォルト値の場合
./theme
  • 記述例
<!--TMPL_VAR NAME="THEME_URI"-->

  TITLE

    • 表示されるページ名が出力されます。
    • wiki内を検索するリンク形式です。
  • 値の例
    • SandBoxは任意のWikiページ名になります。
    • ※下記の文字列中、hrefのhは小文字に読み換えてください。
<a href="wiki.cgi?action=SEARCH&amp;word=SandBox">SandBox</a>
  • 記述例(default.tmpl)
    • default.tmplでは<body>〜</body>内で次のように利用しています。
<h1><!--TMPL_VAR NAME="TITLE"--></h1>

  MENU

    • Wikiメニューです。
      • Wikiメニューは、「トップ 新規 編集 差分 一覧 検索 ヘルプ ログイン」などのWikiを操作するメニューです。
      • サイドバーのメニューではありませんのでご注意ください。
    • ログイン状態によってWikiメニューは自動的に表示項目が決まります。
  • 値の例
    • ※下記の文字列中、hrefのhは小文字に読み換えてください。
<!--========================================================================-->
<!-- ヘッダ(メニューを表示) -->
<!--========================================================================-->
<div class="adminmenu">
  
    <span class="adminmenu">
      <a href="wiki.cgi?page=FrontPage">トップ</a>

    </span>
  
    <span class="adminmenu">
      <a href="wiki.cgi?action=NEW" rel="nofollow">新規</a>
    </span>
(以下省略)  
  • 記述例(default.tmpl)
    • default.tmplでは<body>〜</body>内で次のように利用しています。
<!--TMPL_VAR NAME="MENU"-->
    • もし、ログイン時のみWikiメニューを見せたい場合は次のように書くこともできます。
      • 次の記述例は、ログインしている場合Wikiメニューを表示し、ログインしていない場合はログインのみを表示します。
    • ※下記の文字列中、hrefのhは小文字に読み換えてください。
 <!--TMPL_IF NAME="IS_LOGIN"-->
   <!--TMPL_VAR NAME="MENU"-->
 <!--TMPL_ELSE-->
   <div class="adminmenu">
    <span class="adminmenu">
       <a href="wiki.cgi?action=LOGIN">ログイン</a>
     </span>
   </div> <!--adminmenu-->
 <!--/TMPL_IF-->

  CONTENT

    • 表示するページの内容が、HTMLに変換済みで表示されます。編集モードの時はtextarea(とWiki記法で記載されたコンテンツ)が表示されます。
  • 記述例(default.tmpl)
    • default.tmplでは<body>〜</body>内で次のように利用しています。
   <div class="body">
     <div class="section">
       <!--TMPL_VAR NAME="CONTENT"-->
     </div>
   </div>

  FOOTER

    • 管理者情報、FSWikiのバージョン情報が表示されます。
    • 管理者情報は管理画面の「サイト情報」にある「管理者の名前」と「管理者のメールアドレス(公開用)」で定義した値です。
    • Footerページではないのでご注意ください。
    • CSSの指定はclass="footer"です。
  • 値の例
    • yournameは管理者の名前
    • 管理者のメールアドレス(公開用)がある場合、<a href="mailto:your_mail_address">yourname</a>になります。
    • ※下記の文字列中、hrefのhは小文字に読み換えてください。
<!--========================================================================-->
<!-- フッタ -->
<!--========================================================================-->
<div class="footer">
 
 <!-- 管理者の情報 -->
 
   Copyright (C) 2002-2006
   
     yourname
   
   <br>
 
 
 <!-- FSWikiのバージョン情報 -->
 Powered by <a href="http://fswiki.poi.jp/">FreeStyleWiki3.6.2</a>
   with Perl5.008004
 </div>
  • 記述例(default.tmpl)
    • default.tmplでは<body>〜</body>内で次のように利用しています。
 <!--TMPL_VAR NAME="FOOTER"-->

編集履歴


このページの編集に関する記録に関しては、テンプレート/編集ノート?を参照してください。また、内容に関する議論は、Fswiki-dev MLで行ったりしています。