**[[続・質問箱/535]] [#b3963f1f]
#author("2018-03-11T14:40:04+09:00;2005-01-14T16:20:12+09:00","","")
**[[質問箱/2535]] [#b3963f1f]
|RIGHT:70|LEFT:410|c
|~カテゴリ||
|~サマリ|URLによってスキンを振り分けたい|
|~バージョン|1.4.4_php5|
|~投稿者|[[tomix]]|
|~状態|完了|
|~投稿日|&new{2005-01-13 (木) 19:42:26};|
***質問 [#t0862cc5]
既出だったらすみません。

URL(またはサブドメイン)でスキンを振り分けることは可能でしょうか?

たとえば

www.hoge.jp では編集等の機能が隠れているスキン

edit.hoge.jp、www.hoge.jp/editer.php,
www.hoge.jp/staff/では通常のスキンと振り分けて後者に認証をかけたいです。

ようするに[[ここ>http://www.zend.co.jp/tech/index.php?Top]]のような外向けサイトをつくって、内の人のみ編集可能としたいわけなんです。

www.hoge.jp/staff/とした場合で、staffにBasic認証かけたとき、サーバーのBasic認証とWiki側の編集認証と2回認証を要求されると思うのですが、それを1回にすることもできるでしょうか

***回答 [#l7efa84d]
-単にスキンをアクセスされるURL毎に切替えるだけなら簡単にできます。
例えば、default.ini.phpのSKIN_FILEを定義する部分を改造するとか。
  /////////////////////////////////////////////////
  // スキンファイルの場所
 -define('SKIN_FILE', DATA_HOME . SKIN_DIR . 'pukiwiki.skin.' . LANG . '.php');
 +define('SKIN_FILE', DATA_HOME . SKIN_DIR . $_SERVER['SERVER_NAME'] . '.php');
こうすれば、ホストに応じて(DATA_HOMEやSKIN_DIRが標準のままなら)skin/www.hoge.jp.phpやskin/edit.hoge.jp.phpがスキンとして用いられる
ようになります。

複数のスキンを管理するのが面倒なら、スキンの中に$_SERVER['SERVER_NAME']や$_SERVER['REQUEST_URI']等で判別して、お好みの項目の
表示/非表示を制御するという手でも良いでしょう。

但し、スキンから編集のリンクを隠したところで、実際にプラグインがあり、
そしてそこに何らかの制限がかかっていない限り、機能そのものを
殺せている訳ではないことはお忘れなく。

サーバが同一なら、DATA_DIR等は共有、外向け側のPLUGIN_DIRからはedit類を削除した、複数のPukiWikiを設置するというのも一案かと思います。

また、認証についてですが、PukiWikiの認証はBASIC認証なので、2回要求されることはないと思いますが。 --  &new{2005-01-13 (木) 21:32:39};

-なるほど! 「DATA_DIR等は共有、外向け側のPLUGIN_DIRからはedit類を削除」は確かにその手がありました。1.4.4から分離もしやすいことだし! スキンだけで対処しようと考えていましたが、たしかにプラグインへのアクセスが可能だと、URLで直接引っ張っちゃった時に対応できませんものね。DATA_DIRを共有、PLUGIN_DIR+スキンは個別という設置方法をまずはためしてみます。! -- [[tomix]] &new{2005-01-14 (金) 14:42:34};
-なかなか面白い対応方法ですね :) -- [[teanan]] &new{2005-01-14 (金) 16:20:12};

#comment

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Site admin: PukiWiki Development Team

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

SourceForge