質問箱/2535

カテゴリ
サマリURLによってスキンを振り分けたい
バージョン1.4.4_php5
投稿者tomix
状態完了
投稿日2005-01-13 (木) 19:42:26

質問

既出だったらすみません。

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

たとえば

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

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

ようするにここのような外向けサイトをつくって、内の人のみ編集可能としたいわけなんです。

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

回答

  • 単にスキンをアクセスされる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回要求されることはないと思いますが。 -- 2005-01-13 (木) 21:32:39

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


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2005-01-14 (金) 16:20:12
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u7. HTML convert time: 0.288 sec.

OSDN