スキンの技術資料†
PukiWikiパッケージのスキン†
スキン開発者向け†
スキンを開発してみようと思う方へ(作成途中...)
スキン開発者向け、内部定義される変数†
- $_page
- ページ名($vars['page']のコピー)
各種判定などに用いる
- $r_page
- URI用にエンコードされたページ名
- $is_page
- フラグ: バックアップを表示している時以外で、有効なページ名を持った一般ページの時にTRUE
- $is_read
- フラグ: 存在するページを閲覧している時にTRUE
- $is_freeze
- フラグ: ページが凍結されている時にTRUE
- $title
- エスケープ済みのタイトル
主に、titleタグで使用する。
- $page
- リンク加工されたタイトル
- $body
- エスケープ済みの本文
- $lastmodified
- そのページの最終更新時刻
どのように表示するかは、スキンのポリシーによる
- $related
- 関連するページのリスト
どのように表示するかは、スキンのポリシーによる
- $attaches
- 添付ファイルのリスト
どのように表示するかは、スキンのポリシーによる
- $notes
- 注釈のリスト
どのように表示するかは、スキンのポリシーによる
- $head_tag
- プラグインなどが独自に<head>内に追加するタグ
実際に出力するかは、スキンのポリシーによる
スキン開発者向け、主な内部関数†
- lib/html.php
- catbody()
- スキンファイルを直接呼び出している場所
- スキン内定義を除けば、各種定義などを最終設定している場所
- pkwk_common_headers()
- pkwk_output_dtd($pkwk_dtd, $charset)
- $pkwk_dtdの値に応じて(X)HTMLのDTD、およびHTMLの開始タグを出力する。1.4.5 以降対応。(BugTrack/768)
通常は必要ないが、本文などの出力内容の文字コードを内部定義とは違うものに変換した場合は、$charsetにその文字コード名を明示して呼び出す必要がある。
- lib/func.php
- htmlsc($string, $flags, $charset)
- 変換に用いるデフォルトの文字コードがUTF-8やdefault_charset設定に変更された、htmlspecialchars 関数用の互換ラッパーです(1.5 系) → BugTrack2/355
- GREPによる検索・置き換えで簡単に互換動作できるよう、htmlspecialchars() → htmlsc() とした場合の$flags と$charset 初期値は、過去のバージョン準拠に近づくよう設定されています。(本体設定と異なる文字コードを扱う可能性がある場合は、置き換えだけでなく文字コードを明示指定する必要があります)
- 将来のバージョンでデフォルト動作が変更となっても問題がないよう、ソースコードでは$flags と$charset を可能な限り明示的に呼び出す事をお勧めします。
補足情報†
- BugTrack2/213 グローバル変数 $scriptは参照せず、get_script_uri() を使用することを推奨
- リダイレクトする場合は絶対パスである事が必須なので、必ずget_script_uri() を使用してください
- BugTrack2/262
- 出力を開始する前にメニューバーなどのコンバートをしておかないと、(X)HTMLのフラグ($pkwk_dtd)変更などがあっても無意味になる
- スキン内で以前の仕様と混在する状況が発生すると多重呼び出しを防止する機構などが誤動作する可能性があるため、パッチを適用など改修をする際には注意が必要です のの→ BugTrack2/386