質問箱/4502

カテゴリ
サマリページによって適用するスキンを変更したい
バージョン1.4.7
投稿者ぺぃにゃん?
状態完了
投稿日2009-09-18 (金) 09:52:28

質問

楽しいシステムを提供して頂きありがとうございます。

表題の件ですが、例えばTOPページは大きめにイメージを取ったスキンを自作して適用しているのですが、通常総てのページに同じスキンが適用されます。

しかし文章を読ませたいページなどはTOPページと同じデザインだと可読性が落ちるのでそれに応じたスキンを適用させたいのです。

PHPは多少扱えますので多少ハックする解決方法でも構いません。

何か情報がありましたらご教授願えませんでしょうか?

よろしくお願いします。

回答

  • 同じスキンファイルで分岐させるなら、Q. FrontPageのみ左サイドにサブメニューをつけたい に書かれている、if 文の例が役に立つのかな? -- 2009-09-18 (金) 13:30:19
  • レスポンス有難うございます。 同じスキンじゃないんですよね、でもIF文の変数が解ったからスキンを名指しで読みに行く部分で同じようにIF文で分岐させればいいのかも。 スキンの読込を指定している所誰かご存知ないでしょうか? -- ぺぃにゃん? 2009-09-18 (金) 13:45:15
  • ファイルパスを指定しているのは、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 で呼び出したり、新しく定義しているので、ここなら同じ変数が使えると思います。 -- 2009-09-18 (金) 14:13:40
  • default.ini.phpで定義しているファイルパスを定数SKIN_FILEからグローバル変数$skin_fileに変えてcatbody 関数の最後をrequire($skin_file);*2にすればpluginでページごとにスキンをかえるようなことも可能と思いますが。dev:PukiWiki/1.4/ちょっと便利に/Wikiページにhtmlタグを埋め込む
    ただPukiWikiでスキンファイルを変数でなく定数で定義している理由がイマイチわかりませんのでこの辺は確認要。 -- 2009-09-26 (土) 05:18:14
    • その提案はすでにされています、スキンを定義でなく変数指定にしてほしい(skinプラグイン) dev:BugTrack/634
      同じ名前の(グローバル)変数があって上書きされてしまった場合に発生するかもしれない問題に関する話題は、dev:BugTrack/771 とかdev:BugTrack2/29 に書かれている。 -- 2009-09-26 (土) 09:06:18
  • 有用な情報ありがとうございました。差し当たりcatbody関数の中に$titleでページ名をみてif文でskinファイルのパスを変化させてrequireする事で実現できました。 -- ぺぃにゃん? 2009-10-01 (木) 19:30:27


*1 例えば、http://pukiwiki.sourceforge.jp/ とアクセスした場合、これらのファイルを読み込んでいる時点では、呼び出すページ名が空っぽの状態です
*2 $skin_fileのglobal宣言が必要

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-10-01 (木) 19:35:20
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.271 sec.

OSDN