#author("2016-05-18T22:02:28+09:00","","") #author("2016-06-29T17:25:13+09:00","","") RIGHT:&size(12){Category:[[Design>:Design]], [[:Category_Document]], [[:CategoryDev]]}; #topicpath *スキンの技術資料 [#o8cfe0a9] ---- #contents ---- **関連 [#xcd9e739] -[[PukiWiki/スキン研究]] -[[PukiWiki/技術資料]] --[[PukiWiki/CSSのclass一覧]] --[[PukiWiki/関数一覧表]] -[[アクセシビリティとユーザビリティ>Accessibility]] -[[文法チェックプログラム>Validator]] -[[official:スキン]] --[[official:自作スキン]] **PukiWikiパッケージのスキン [#v4181ccd] -[[BugTrack/769]] tDiaryスキン (tDiaryテーマラッパー) #ls2 **スキン開発者向け [#wd62a245] スキンを開発してみようと思う方へ(作成途中...) - [[PukiWiki/Plug-inの仕様#y03c2d4c]]や[[PukiWiki/Plug-inの仕様#x5a0079e]]も参考にどうぞ ***スキン開発者向け、内部定義される変数 [#jc5ddafe] :$_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>内に追加するタグ~ 実際に出力するかは、スキンのポリシーによる ***スキン開発者向け、主な内部関数 [#j829896e] :lib/html.php| --catbody() ---スキンファイルを直接呼び出している場所 ---スキン内定義を除けば、[[各種定義>#jc5ddafe]]などを最終設定している場所 --pkwk_common_headers() ---設置者がスキンの種類に関係なく設定しているheaderを、出力するための関数。1.4.5 以降対応。([[開発日記/2004-12-24>開発日記/2004-12-24#iafedf29]])~ デフォルトでは、zlib.output_compression 関連([[BugTrack/738]])のみ定義されている。 --pkwk_output_dtd($pkwk_dtd, $charset) ---$pkwk_dtdの値に応じて(X)HTMLのDTD、およびHTMLの開始タグを出力する。1.4.5 以降対応。([[BugTrack/768>BugTrack/768#reea7092]])~ 通常は必要ないが、本文などの出力内容の文字コードを内部定義とは違うものに変換した場合は、$charsetにその文字コード名を明示して呼び出す必要がある。 :lib/func.php| -- htmlsc($string, $flags, $charset) --- 変換に用いるデフォルトの文字コードがUTF-8やdefault_charset設定に変更された、[[htmlspecialchars 関数>PHP関数:htmlspecialchars]]用の互換ラッパーです(1.5 系) → [[BugTrack2/355>BugTrack2/355#lb1b06b4]] --- GREPによる検索・置き換えで簡単に互換動作できるよう、htmlspecialchars() → htmlsc() とした場合の$flags と$charset 初期値は、過去のバージョン準拠に近づくよう設定されています。(本体設定と異なる文字コードを扱う可能性がある場合は、置き換えだけでなく文字コードを明示指定する必要があります) --- 将来のバージョンでデフォルト動作が変更となっても問題がないよう、ソースコードでは$flags と$charset を可能な限り明示的に呼び出す事をお勧めします。 ***補足情報 [#xcb03b92] -[[BugTrack2/213>BugTrack2/213#hb0abc89]] グローバル変数 $scriptは参照せず、get_script_uri() を使用することを推奨 -- リダイレクトする場合は絶対パスである事が必須なので、必ずget_script_uri() を使用してください -[[BugTrack2/262]] --出力を開始する前にメニューバーなどのコンバートをしておかないと、(X)HTMLのフラグ($pkwk_dtd)変更などがあっても無意味になる -- スキン内で以前の仕様と混在する状況が発生すると多重呼び出しを防止する機構などが誤動作する可能性があるため、パッチを適用など改修をする際には注意が必要です → [[BugTrack2/386]] -- スキン内で以前の仕様と混在する状況が発生すると多重呼び出しを防止する機構などが誤動作する可能性があるため、パッチを適用など改修をする際には注意が必要です のの→ [[BugTrack2/386]]