#author("2016-05-16T22:30:50+09:00","","")
#author("2016-05-17T01:12:22+09:00","","")
* 左側のMenubarに置いた検索バーが出ない問題 [#e728dbd4]

- ページ: [[BugTrack2]]
- 投稿者: [[鷺梁津]]
- 優先順位: 低
- 状態: 完了
- カテゴリー: プラグイン
- 投稿日: 2016-05-06 (金) 13:48:07
- バージョン: 1.5.1

** メッセージ [#i8276f05]
始めまして、[[折紙戦士wiki>origamiwiki.xyz]]を運営している鷺梁津と申します。

ウィキーを新しいバージョンの1.5.1にアップデートしましたが、前バージョンでは問題なく使えた検索バーがこんなメッセージーを出し、バーが使えなくなりました。

 #search(): You already view a search box

自ら改造して使ってたスキンにsearch関数を二回以上入れちゃったか確認したら、ナビバー以外search関数が重なっている所は見つかりませんでした。ナビから検索リンクを消しえもあのメッセージはそのままです。

Menubarページに直接入ってメニューの状態を確認したら検索バーが問題なく出ます。バージョンアップの途中できたバグではないかと思って、ここに質問します。
--------
- here? origamiwiki.xyz --  &new{2016-05-07 (土) 21:38:55};
- search プラグイン本体や呼び出し方法に問題が無いなら、[[commit:e4915ebaad7ccebc25007bf05afcd5c18cb97835]] で変数名が変更されたdo_plugin_init() の static $done を plugin_search_convert() の static $done が見てしまっている可能性を疑う必要があるのだろうか? --  &new{2016-05-07 (土) 21:42:09};
- はい、正しいURLはそれです。リンク間違いましたね。plugin_search_convert()の因数は更に$doneではない新しい名前を付けてみました。しかし問題の原因ではなさそうです。 -- [[鷺梁津]] &new{2016-05-08 (日) 01:25:12};
- まずはsearchプラグイン呼出が重なっている場合、検索バーの代わりに警告メッセージを出すコードを削除する方法を使って問題を解きました。もっといい方法が見つかったらこちらにもう一度報告します。 -- [[鷺梁津]] &new{2016-05-15 (日) 09:21:11};
- 内部で何回呼び出されているか興味ある。[[BugTrack2/348]]じゃないけど、
 static $done = 0;
 if (++$done >= 3) {
     return '#search(): You already view a search box<br />' . "\n";
のような、実行回数を比較する形式に変更で原因のヒントわかったりしないかな?(あれ?もともとの''static $done;'' って、[[isset()>PHP関数:isset]]で初期化済み扱いになるんでしたっけ??) --  &new{2016-05-16 (月) 19:01:53};
- 理由を見つけました。まず、純正エンジンであれば起こらない問題です。
折紙戦士ウィキーでは色んなファイルたちを少し変えたカスタムエンジンを使ってますし、基本スキン編集ファイル(pukiwiki.skin.php)もその一つです。純正ファイルにはメニューを呼び出す命令が、
   <td class="menubar">
   <div id="menubar"><?php echo $menu ?></div>
このように書いています。しかし自体カスタムエンジンでは、
   <td class="menubar">
   <div id="menubar"><?php echo do_plugin_convert('menu') ?></div>
に変わってますので、do_plugin_convert命令が$doneをTRUEに認識しちゃったため、検索バーがちゃんと出れなかったことだと思います。あとスキンを作る場合、ご注意が要りますね。 -- [[鷺梁津]] &new{2016-05-16 (月) 22:17:55};
- なるほどそういうことでしたか。do_plusin_convert('menu') はv1.5.0のときは表示するHTMLの中で実行していましたが、v1.5.1で、skinの先頭部分で実行するように変わっています。 [[osdn.jp:projects/pukiwiki/scm/git/pukiwiki/blobs/c02b67db174092b8170c671914f86404040b8c73/skin/pukiwiki.skin.php]] 他にもこういうケースはありそうです -- [[umorigu]] &new{2016-05-17 (火) 01:12:22};

#comment

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Site admin: PukiWiki Development Team

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 8.2.12. HTML convert time: 0.098 sec.

SourceForge