*MenuBar にも通常ページにも設置するプラグインを [#a9864854] -ページ: BugTrack -投稿者: [[みすく]] -優先順位: 低 -状態: 完了 -カテゴリー: プラグイン -投稿日: 2005-02-07 (月) 06:58:37 -バージョン: **メッセージ [#r9b75824] 作ろうとしているのですが、MenuBar におかれているということを 判断するような方法はありますでしょうか? それによって少し動作を変えたいと思っています。 ---- -脊髄反射 -- &new{2005-02-07 (月) 18:15:16}; <?php function plugin_hoge_convert() { global $body; return $body ? 'MenuBar': 'PageBody'; } ?> -こんにちは :) どうしたもんでしょうね。上記のハックは、本文とMenuBarの出力順が逆にならない限りそこそこうまく動きそうですね (^^; -- [[henoheno]] &new{2005-02-07 (月) 21:06:31}; --globalな$bodyは、スキン(においてplugin_menu_convert())が実行されるよりも前に確定していますから、出力順は関係無いと思いますが。 -- &new{2005-02-07 (月) 21:44:18}; -- お (^^; じっとソースを見る。確かにそうですね。失礼しました (^^; ((tDiaryスキンの正規表現による処理とごっちゃにしていたらしいです)) ということはファイナルアンサー? -- [[henoheno]] &new{2005-02-07 (月) 23:17:19}; -お、できました。$body という変数は通常ページの場合 true で MenuBar で表示される場合は false になる変数ということでいいんですよね?ちょっとどこで定義されているのかわかりませんでした。スキン?いきなり echo $body か・・・。うーん? -- [[みすく]] &new{2005-02-08 (火) 18:16:43}; --[[cvs:lib/pukiwiki.php]]参照。通常のページで空なのは当然です。 -- &new{2005-02-08 (火) 18:31:31}; -- うーん、とにかく MenuBar で表示される場合は本文のほうの html が入ってくるようですね。ありがとうございました。#なにがなにやら。なぜ MenuBar では $body が使えるのかここだけじゃわからないですよね?-- [[みすく]] &new{2005-02-08 (火) 19:34:08}; --?何故分かりませんか?プラグインのaction処理、又はページソースのconvert_htmlが完了するまでは未定義 → 処理の結果(=ページ部のHTML)が$bodyに格納される → スキンでplugin_menu_convert()によりMenuBar部のHTMLが生成・出力 という流れです。 与えられたポインタから後を追わないで、「わからないですよね」と言われても…&worried; -- &new{2005-02-08 (火) 20:25:04}; --スキンがどこでよびだされているのかわかりません。ちなみに言葉尻をとってもしょうがないのですが、わからないですよね''?''なのでそんな気がした程度のニュアンスです。まだ良く見てないと。しかも # 付きで書いたのは PS. ぐらいのあまり気にしないでいいよというニュアンスです。-- [[みすく]] &new{2005-02-08 (火) 20:38:48}; --ここでPHP講座をやるのは適当でありませんし、私の能力を超えます。&worried; -- &new{2005-02-08 (火) 20:41:13}; --あー catbody = スキンか。納得。元々そこまで読むつもりはなかったんですどね。すでに完了にしてましたし。とにもかくにもありがとうございました。#PHP講座というかPukiwiki講座ですねw -- [[みすく]] &new{2005-02-08 (火) 20:49:56}; -return $body のかわりに retun isset($body) はどうだろう思ってきた今日このごろです (すいません例によってあまり考えていません) -- [[henoheno]] &new{2005-02-08 (火) 22:40:06}; -- いかん。手を動かさねば。ということで確認しました。isset($body) としておくのが意図が示せて良さそうです。(つづかない) -- [[henoheno]] &new{2005-02-08 (火) 22:43:38}; #comment //#comment