カテゴリ | |
サマリ | ページによって適用するスキンを変更したい |
バージョン | 1.4.7 |
投稿者 | ぺぃにゃん |
状態 | 完了 |
投稿日 | |
楽しいシステムを提供して頂きありがとうございます。
表題の件ですが、例えばTOPページは大きめにイメージを取ったスキンを自作して適用しているのですが、通常総てのページに同じスキンが適用されます。
しかし文章を読ませたいページなどはTOPページと同じデザインだと可読性が落ちるのでそれに応じたスキンを適用させたいのです。
PHPは多少扱えますので多少ハックする解決方法でも構いません。
何か情報がありましたらご教授願えませんでしょうか?
よろしくお願いします。
- 同じスキンファイルで分岐させるなら、Q. FrontPageのみ左サイドにサブメニューをつけたい に書かれている、if 文の例が役に立つのかな? --
- レスポンス有難うございます。 同じスキンじゃないんですよね、でもIF文の変数が解ったからスキンを名指しで読みに行く部分で同じようにIF文で分岐させればいいのかも。 スキンの読込を指定している所誰かご存知ないでしょうか? -- ぺぃにゃん
- ファイルパスを指定しているのは、default.ini.php とkeitai.ini.php です。定数SKIN_FILE がそうです。ここでサブのスキンパスを新しく定義しておけば、default.ini.php は2種類設定して、keitai.ini.php はどちらも同じファイル、といった事もできそう。ただしこの時点では、呼び出すページが確定していない*1 ので、ここで使うスキンファイルを確定させるのは難しいと思います。(それ以前に、初期化処理の途中なので使える変数がかなり限定されます)
実際の呼び出し位置は、lib/html.php のcatbody 関数の最後、require(SKIN_FILE); です。catbody 関数の中でスキンファイルで使う大半の変数を、global で呼び出したり、新しく定義しているので、ここなら同じ変数が使えると思います。 --
- default.ini.phpで定義しているファイルパスを定数SKIN_FILEからグローバル変数$skin_fileに変えてcatbody 関数の最後をrequire($skin_file);*2にすればpluginでページごとにスキンをかえるようなことも可能と思いますが。dev:PukiWiki/1.4/ちょっと便利に/Wikiページにhtmlタグを埋め込む
ただPukiWikiでスキンファイルを変数でなく定数で定義している理由がイマイチわかりませんのでこの辺は確認要。 --
- 有用な情報ありがとうございました。差し当たりcatbody関数の中に$titleでページ名をみてif文でskinファイルのパスを変化させてrequireする事で実現できました。 -- ぺぃにゃん