Category:Design

スキン内のディレクトリ指定

修正

(1.4.8)

css や javascript などの外部ファイルが置かれているディレクトリ (従来は skin/ ディレクトリ固定) は、定数 SKIN_DIR (本来はスキンファイルのあるディレクトリを指す。デフォルトでは skin/) を参照します。

これによって、SKIN_DIR を変更するだけで、スキンファイルの置き場所 も 外部ファイル の置き場所も変更されます。

ただし、この二つの違いに注意する必要があります。

  1. スキンファイルは PukiWiki 本体からロードされるPHPコードです。これを設置する場所はWebブラウザから閲覧できる場所である必要はありません。
  2. 外部ファイルは Webブラウザによって参照されます。これらはWebブラウザから閲覧できる場所になくてはなりません。

メッセージ

pukiwiki.skin.ja.phpにおいて、skinディレクトリの位置を

<link rel="stylesheet" href="skin/default.ja.css" type="text/css" media="screen" charset="Shift_JIS" />
<link rel="stylesheet" href="skin/print.ja.css" type="text/css" media="print" charset="Shift_JIS" />

というように記載してあるのですが、これはわざとでしょうか? 修正忘れでしょうか?

<link rel="stylesheet" href="<?php echo SKIN_DIR ?>default.ja.css" type="text/css" media="screen" charset="Shift_JIS" />
<link rel="stylesheet" href="<?php echo SKIN_DIR ?>print.ja.css" type="text/css" media="print" charset="Shift_JIS" />

では?


BugTrack2/183より移動: テンプレートファイルにおいてSKIN_DIR不使用

skin/{pukiwiki.skin.php,tdiary.skin.php}の、<head>でのスタイルシート参照、JavaScript指定で、それぞれhref="skin/、src="skin/ となっていますが、SKIN_DIR を echo したほうが良いと思います。

BugTrack2/190より移動: SKIN_DIRをechoするものをコミットした件 (2006/07)

デフォルトのスキンでディレクトリが "skin/"に固定されています。pukiwiki.ini.php で SKIN_DIR を変更するとパスが変化せず、スタイルシートが適用されません。 official:質問箱3/457

Yoshiiさんの手法

SKIN_DIRとは別に $skinname と言う変数を作成します。$skinnameは適当な値(defaultとか)を pukiwiki.ini.php に記述します。

そうして pukiwiki.skin.php には以下のように記述します。

<?php echo SKIN_DIR . 'theme/' . $skinname . '/' ?>pukiwiki.css.php?

theme/ はスキンが散らばらないようにするフォルダなので必須ではありません。

pukiwiki.skin.php に到達するパスも変更する必要があります。私はSKIN_DIR/pukiwiki.skin.php をダミーにし、以下のように実体を読み込んでいます。

require(SKIN_DIR . 'theme/' . $skinname . '/pukiwiki.skin.php');

このように $skinname を独立させれば値を変更するだけでスキンを切り替える事が可能です。pukiwiki.ini.phpからindex.phpに値の場所を変更すればURL毎にスキンの切り替えが可能になったりします。また、defaultのスキンをいじることなく変更が可能なので失敗してもすぐに戻せる事も魅力です。

コメント



トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2014-02-15 (土) 09:01:34
Site admin: PukiWiki Development Team

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 8.2.12. HTML convert time: 0.963 sec.

SourceForge