今日 phpcms を調べたところ、ナビゲーション バーの情報をクエリする際に、$r[arrchildid] が返されるという問題が見つかりました。ドキュメントには、サブカラム ID が返されると書かれていました。しかし、それは少し違っていました。
開始アイデア:
ホームページ
{pc:content action="category" catid="0" num="10" siteid="$siteid" order="listorder ASC"} {loop $data $r} {if $r[arrchildid]}{$r[catname]}{pc:content action="category" catid="$r[catid]" num="10" siteid="$siteid" order="listorder ASC" return="data2"} {loop $data2 $v}{$v[catname]}{/loop} {/pc}{/if} {/loop} {/pc}
一般的なアイデア: ドキュメントの下にサブ列 ID があるかどうかを確認し、サブ列 ID がある場合は、2 番目のナビゲーションを出力します。コードの5行目はカラム配下にサブカラムIDがあるかどうかを判定するものですが、サブカラムがない場合はカレントカラムのIDが返されてしまい、判定ができていないことが分かりました。期待される効果があったので、考えを変えてコードは次のようになります:
Homepage
{pc:content action="category" catid="0" num="10" siteid="$siteid" order="listorder ASC"} {loop $data $r} {if $r[arrchildid] != $r[catid]}{$r[catname]}{pc:content action="category" catid="$r[catid]" num="10" siteid="$siteid" order="listorder ASC" return="data2"} {loop $data2 $v}{$v[catname]}{/loop} {/pc}{else}{$r[catname]}{/if} {/loop} {/pc}
取得したサブカラム ID がカラム ID と等しいかどうかを判断します。等しい場合は、サブカラムが存在しないことを意味します。等しくない場合は、サブ列があることを意味し、そのサブ列が表示されます
上記は、二次ナビゲーションを追加するためにエディターによって追加されたアイデアの詳細な説明です。ご質問がございましたら、メッセージを残してください。編集者が時間内に返信させていただきます。スクリプト ハウス Web サイトをサポートしてくださった皆様にも感謝いたします。
関連記事:
PHPCMS V9のタイトルのSEO設定方法
phpcms v9の二次開発と利用における諸問題の解決方法
PHPCMS V9でのカスタムページング機能の二次開発方法