**[[質問箱5/89]] [#g65d1637] |RIGHT:70|LEFT:410|c |~カテゴリ|デザイン・CSS・スキン| |~サマリ|ユーザーがskinを変更できるようにしたい| |~バージョン|1.4.7| |~投稿者|[[F.C.]]| |~状態|質問| |~投稿日|&new{2012-02-15 (水) 17:22:31};| ***質問 [#tb9b366b] こんにちは、いつもお世話になっています。 スマホ版Pukiwikiを作ろうと思っているのですが、それだけであれば、UAを判別してskinファイルを切り替えれば済む話です。 しかし、スマホユーザーの中にはPC版サイトをスマホから見たいと思っていらっしゃる方もいるかと思うので、skinファイルをユーザーが変更できるようにする機能が欲しいです。 そこで、PukiWiki公式サイトを検索したら、以下のskin.inc.phpが出てきました。 [[dev:BugTrack/634]] このページに掲載されている通りに「default.ini.php」「html.php」「func.php」の3箇所を修正し、pluginフォルダにskin.inc.phpをアップロードして、Menubarに #skin と書きましたが、バージョンが古いためか分かりませんがうまくいきませんでした(私が使用しているのは1.4.7ですが、そのページでは1.4.3をもとに説明されています)。 差分に示されている部分も若干記述が違っていたので、変更箇所を間違えた可能性もあります。 できれば、現行の1.4.7に「ユーザーがskinを変更できる機能」を追加する手順をご教授いただければ幸いです。 回答よろしくお願いします。 ***回答 [#h0907535] - [[質問箱/275]]や[[質問箱4/502]]はユーザーから変更できない(設置者の指定で固定)から、あまり参考にならないですよね -- &new{2012-02-15 (水) 20:33:59}; - 回答ありがとうございます。そうですね、あくまでユーザーが変更できないと意味がないので…。私がもっとPHPに詳しければ参考になるかもしれませんが... -- [[F.C.]] &new{2012-02-15 (水) 20:51:25}; - ひとまず、その3箇所の改造だけでは実質なにも変わりません。(他の名前でもかまわないですが)skinプラグインを使ってglobal変数のskin_fileを変えることでユーザーが他のスキンを呼び出せるようにするというのがその改造で提示されている方法です。あと、1.4.4でkeitai.ini.phpが追加されたので、そのあたりをうまく処理しないと携帯からのアクセスではエラーが出るかもしれません。 -- &new{2012-02-15 (水) 21:45:04}; - 回答ありがとうございます。質問に不備があったので少し訂正させていただきました。3つのファイルを修正してskin.inc.phpをアップロードして、Menubarに#skinを挿入しましたが、うまくいきませんでした。1.4.3ではkeitai.ini.phpがなかったんですか^^; それは知りませんでした。確かにそれを考慮する必要がありそうです。 -- [[F.C.]] &new{2012-02-15 (水) 21:58:45}; - 自分なりに色々試行錯誤してみたところ、何とかなりそうです。その為には、skin.inc.phpをskinファイル内で直接実行する必要があるのですが、それがうまくいきません。skinファイルに if (exist_plugin_convert('skin')) echo do_plugin_convert('skin',pukiwiki); と記述しましたが、駄目でした(上の例ではskinをpukiwiki.skin.phpに切り替える)。 -- [[F.C.]] &new{2012-02-16 (木) 00:41:37}; - とりあえず[[dev:BugTrack2/262]]。大概の場合はこれでエラーを回避できるんですが、skinプラグインのようにをglobal変数を出力に反映させるようなハックでは、それが確定する(今回のだとlib/html.phpの変更箇所)よりも前に呼び出さないとロードするskinファイルを変えられなくなりますよ。 -- &new{2012-02-16 (木) 20:04:03}; #comment