再帰関数を使用してサイトメニューを作成するというアイデアを本当に掘り下げていますが、問題が発生していて、何年も前から頭を悩ませています。ネストされたリストを返すためにメニュー関数が必要ですが、ツリーの非アクティブな関連要素を表示したくありません。
詳細。私は、navアイテムの通常のフィールド(target、link_text、titleなど)のすべてと、各アイテムの一意のID、そして重要なのはparent_idを格納するmenu_itemsというテーブルを持つMySqlデータベースを持っています。
しかし、これはすべて議論の余地があります。たとえば、この情報をXMLファイルに保存する方が簡単でしょうか。
たとえば、すべての要素が表示されたメニューの例を次に示します。
<ul>
<li><a href="1.html">link 1</a>
<ul>
<li><a href="1-1.html">link 1-1</a>
<li><a href="1-2.html">link 1-2</a>
</ul>
</li>
<li><a href="2.html">link 2</a>
<ul>
<li><a href="2-1.html">link 2-1</a>
<li><a href="2-2.html">link 2-2</a>
</ul>
</li>
<li><a href="3.html">link 3</a></li>
</ul>
しかし、現在のページがたとえば1-2.htmlの場合、次のようなメニューが必要です。
<ul>
<li><a href="1.html">link 1</a>
<ul>
<li><a href="1-1.html">link 1-1</a>
<li><a href="1-2.html">link 1-2</a>
</ul>
</li>
<li><a href="2.html">link 2</a></li>
<li><a href="3.html">link 3</a></li>
</ul>
明らかに、現在のページのIDまたは名前のいずれかをメニュー関数に渡します。
誰かアイデアはありますか?私はしばらくの間壁に頭をぶつけてきました:-)