nmoxmenuプラグイン考察

2007-10-24 11:44

投稿者: サイト管理者

現在わかっている問題

メニューの表示位置がおかしい

サブメニューが並べる順序順に表示されない問題

並べる順序を指定していない場合に重複表示される

現在解決法が示されているもので上の3つかな?
また新たに問題を発見してしまった。

変な例で申し訳ないがw
「きつね_うどん」と「きつ_つき」というメニューがあると「きつ」メニューのサブに「うどん」が表示されたりされなかったり(記事のあるなしで挙動が変わる)。
現在公式BBSの情報によりfunction.incにある問題のか所は修正されてこのようになっているんだけど(オレンジの部分)グリーンの部分を見て欲しい。

          $sql = "select * from ".$_TABLES["topics"]." where topic like '".$topic_first."_%' ORDER BY sortnum,topic ASC";

あいまい検索の場合$topic_firstの後ろにある「_」が任意の1文字として扱われるため「%」1文字の場合と意味合いは同じになっている。何カ所かでこのあいまい検索が使われているので探ってみる。ちなみに「\_%」とエスケープするだけでは完全に直らなかった。

その後の調べで1階層目のデータをDBから引いてくる段階ですでに問題があることもわかった。先ほどの所のもう少し上を見てみると

    $sql="select * from ".$_TABLES["topics"]." where topic like '".$topic_first."%'";

と、なっていてこの部分で第1階層「きつ」のときに「きつね」にもヒットしてしまっている。「きつ」に表示できる記事がなくとも「きつね」に記事がある場合表示フラグが立ってしまう。その後サブメニューでの表示判定で記事がないことになるのでメニューは表示されるが記事がないということになる。かといって%を取っ払うと2階層目のあるメニューがすべてヒットしなくなるのでダメだ。うーん、なにかカンタンな解決方法はないものか・・・

コメント (0件)


Geeklog実験室
http://geeklogtest.maryn.jp/article.php/20071024114454694