RIGHT:&size(12){Category:[[Design>:Design]]}; *スキン内のディレクトリ指定 [#ve2de516] -ページ: BugTrack -投稿者: [[toba]] -優先順位: 低 -状態: 提案 -カテゴリー: その他 -投稿日: 2004-09-16 (木) 08:59:46 -バージョン: 1.4.4 #contents **メッセージ [#nd9ffd94] 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" /> では? ---- -現状は「半分」わざとです。そこをSKIN_DIRにしてしまうと、デフォルトのまま配置するぶんには良いのですが、DATA_HOMEをWebブラウザから見えない場所に移動した瞬間に(Webブラウザから)CSSにアクセスできなくなり、PukiWikiの見た目がとーっても味気なくなるのです。致命的ではないですけどね :) -- [[henoheno]] &new{2004-09-16 (木) 20:39:37}; --あれ? [[BugTrack/656]] から SKIN_DIR と DATA_HOME は直接的な関連はなく、別々に管理するという認識だったのですが違いましたか? &br;BugTrack/656から得た私の認識では、SKIN_DIR は SKIN関連のファイル(php, cssファイルなど)を格納するディレクトリ名で、DATA_HOME をWebブラウザから見えない場所に移動したとしても、PukiWiki側では、SKIN関連のphpファイルは DATA_HOME と組み合わせた SKIN_FILE変数でアクセスし、cssファイルへは SKIN_DIR の値のみを参照してアクセスしますよね。指摘があった変更をしても問題ないと思いますけど-- [[jjyun]] &new{2004-09-20 (月) 20:25:19}; --pukiwiki.ini.phpにも散々注意書きがして有りますから、SKIN_DIRを使っても問題ないと思いますが…。 -- [[Ratbeta]] &new{2004-09-20 (月) 21:43:30}; -[[BugTrack/509]] -- [[Ratbeta]] &new{2004-09-20 (月) 14:25:49}; - 私も先ほどこれが原因でしばらく調べておりました。複数のwikiを設置して、スキンだけ共有使用と思い、SKIN_DIRの場所をpukiwiki.ini.phpで共通のディレクトリを指定しているにもかかわらず、設定がうまく反映されませんでした。定数に変更することでうまくCSSを読み込んでくれましたが、やはり修正してもよいのではないでしょうか? -- [[hkb]] &new{2005-12-16 (金) 21:44:36}; - 外部リソース用の別の定数を SKIN_DIR とは別に用意しておいて、デフォルトの値を SKIN_DIR と同じにしておけば、二つのニーズの共存が可能になるかしら? -- [[henoheno]] &new{2006-06-11 (日) 22:20:28}; 1. define('RSRC_DIR', 'skin/') みたいな定数を用意 2. 各スキンファイルなどにその定数を使用する 3. 切り替えたい人は、その定数の値を変更すれば、まとめて切り替わって幸せ (ハードワイヤされたコードをいじらなくて良い) ** BugTrack2/190にて、SKIN_DIRをechoするものをコミットした件 (2006/07) [#i66570c8] - [[BugTrack2/190]]にて、SKIN_DIRをechoするものをコミットしてしまいました・・・・ -- [[teanan]] &new{2006-07-21 (金) 11:14:46}; - ([[BugTrack2/190]]から転載) - SKIN_URI か何かも指定しては?IMG_URI もついでに。 -- &new{2006-07-20 (木) 21:23:26}; - plus よりコピー define('ROOT_URI', ''); define('SKIN_URI', ROOT_URI . SKIN_DIR); define('IMAGE_URI', ROOT_URI . IMAGE_DIR); デフォルトはとりあえずこれでいいでしょうね。-- &new{2006-07-20 (木) 21:23:26}; - (ここまで) #comment ** Yoshiiさんの手法 [#j47c457c] - SkinSelectを作成していて思ったのですが、PukiWiki は SKIN_DIR とスキン名を同一に扱っているので拡張するのに苦労しました。私の手法を以下に紹介します。 -- [[Yoshii]] &new{2006-07-22 (土) 00:17:16}; 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のスキンをいじることなく変更が可能なので失敗してもすぐに戻せる事も魅力です。 #comment * コメント [#ga3137d9] #comment