* The United States http://uegaiquyni.de.tl picture galleries preteen  its not actually his grandma lol and he was clearly thumbing in a semi so he wasnt enjoying it! lol [#o6412765]
 
#author("2016-05-17T01:12:22+09:00","","")
* 左側のMenubarに置いた検索バーが出ない問題 [#e728dbd4]

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

** メッセージ [#wabe9fc9]
The United States http://uegaiquyni.de.tl picture galleries preteen  its not actually his grandma lol and he was clearly thumbing in a semi so he wasnt enjoying it! lol
 
** メッセージ [#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 5.6.40-0+deb8u12. HTML convert time: 0.086 sec.

OSDN