程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> dedeCMS調用頂級二級欄目及下三級欄目方法(數據庫實現)

dedeCMS調用頂級二級欄目及下三級欄目方法(數據庫實現)

編輯:PHP綜合

  1、通過dede調用二級欄目大家都會調用,但要調用三級欄目,就有點麻煩了,如下樣式的三級欄目dede如何調用呢?如下:
  ----------------------A級主欄目
  +頂級欄目
  +二級欄目
  +三級欄目(A)
  +三級欄目(B)
  +三級欄目(C)
  +二級欄目
  +三級欄目(D)
  +三級欄目(E)
  +三級欄目(F)
  ------------------B級主欄目
  +頂級欄目
  +二級欄目(G)
  +二級欄目(H)
  +二級欄目(I)

  {dede:channelartlist typeid=6 row=4} (注:這是頂級欄目id)
  <div class="cpmll">
  <span><a href="{dede:field name='typeurl'/}">{dede:field name='typename'/}</a></span> (注:這是二級欄目名稱)
  <ul>
  {dede:sql sql='Select * from dede_arctype where reid=~id~  ORDER BY id limit 0,7'}
  <li><a href='[field:typedir function='str_replace("{cmspath}","",@me)'/]' target='_blank'>[field:typename/]</a></li>(注:這是三級欄目的靜態路徑和欄目名稱)
  {/dede:sql}
  </ul>
  </div>
  {/dede:channelartlist}

  因為[field:typedir /]在數據庫存儲的路徑包括{cmspath}這個字符串,所以我們必須處理一下,就用到織夢(dedecms)自帶的cn_substr這個系統函數,這裡簡要說一下這個函數的參數,@me是當前字段值,也就是取出的[field:typedir /]這個值,200和9表示從第9個字符位置( (不包括這個字符))開始截取200個字符。
  typeid='' 指定頂級欄目就可以啦, limit0,7 這個7是控制三級欄目的顯示個數的,顯示樣式自己調整CSS。
  2、可能有很多人因為各種需要,不論是增加密度還是操作方面的便捷性增強用戶體驗,會涉及到dede需要增加三級或者更深層級導航的需求,咱和尚廢話不多說了,直接上代碼:
  <ul>
  <li>{dede:type typeid='3'}<a href="[field:typelink/]">[field:typename/]{/dede:type}</a> (如果上面二級名稱掉不出來可以用這個)
  <ul>
  {dede:channelartlist typeid='3'}
  <li><a href='{dede:field name='typeurl'/}'>{dede:field name='typename'/}</a>
  <ul>
  {dede:sql sql='Select * from dede_arctype where reid=~id~'}
  <li><a href='[field:typedir function='str_replace("{cmspath}","",@me)'/]'>[field:typename/]</a></li>
  {/dede:sql}
  </ul>
  </li>
  {/dede:channelartlist}
  </ul>
  </li>
  </ul>
  以上代碼能夠實現理論上無限層級深度的導航菜單調用,哈哈,當然,只要你需要,就能滿足,顯示效果需要CSS來修飾一下。

*
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved