今日 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 がある場合は、セカンダリ ナビゲーションを出力します。コードの5行目はカラム配下にサブカラムIDがあるかどうかを判定するものですが、サブカラムがない場合はカレントカラムのIDが返されてしまい、判定が満たされないことが分かりました。期待通りの効果だったので、考えを変えてコードは以下の通りです:
首页 {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と等しいかどうか、等しい場合はサブカラムが存在しないことを意味し、等しくない場合はサブカラムが存在しないことを意味します。はサブ列があり、そのサブ列が表示されていることを意味します