[基礎用法]
名稱:navig
功能:導航菜單標簽,可以循環嵌套標簽。通常用于網站導航以獲取站點導航信息,方便網站會員分類瀏覽整站信息
語法:
{eju:navig position_id='2' type='top' row='8' currentstyle='active'}
<li class="{$field.currentstyle}"><a href='{$field.navig_url}'>{$field.navig_name}</a> </li>
{/eju:navig}
參數:
position_id='' 導航位置ID
-
position_id='1' 表示PC端主導航
-
position_id='2' 表示PC端頂部導航
-
position_id='4' 表示PC端底部導航
-
position_id='5' 表示移動端中部導航
-
position_id='6' 表示移動端底部導航
row='10' 返回導航菜單列表總數(建議不要與limit屬性同時存在,否則row無效)
limit='起始ID,記錄數' (起始ID從0開始)表示限定的記錄范圍(如:limit='1,2' 表示從ID為1的記錄開始,取2條記錄)
titlelen='30' 欄目名稱長度
type='top' 表示頂級欄目
-
type='self' 表示同級欄目
-
type='son' 表示下級欄目
-
type='sonself' 表示當前下級欄目以及同級欄目
-
type='first' 表示當前欄目ID的最頂級欄目下的所有層級欄目集合
currentstyle='' 應用樣式class類名
offset=‘0’ 記錄的起始ID,默認從0開始,假如指定2,將過濾最前面的2條,從第三條顯示
name='' 數組類型的變量名(三級導航時才用到)
empty='' 沒有數據時顯示的文案
mod='' 每隔N行輸出的內容
id='' 可以任意指定循環里的變量名替代field,假設id='field1',模板調用如:{$field.title} 變成 {$field1.title}
底層字段:
請查閱易居Cms官方提供的數據字典,找到表名 ey_navig_list
-------------------------------效果展示--------------------------------
1,調用一級的PC端頂部導航
模板調用代碼
{eju:navig position_id='2' type="top" row="8" id="field" currentstyle="on"}
<li> <a class="{$field.currentstyle}" href="{$field.navig_url}">{$field.navig_name}</a> </li>
{/eju:navig}

-------------------------------示例1--------------------------------
描述:輸出最頂級菜單,不包括子孫菜單,可用于網站簡單的頂部導航
{eju:navig position_id='2' type="top" row="10" currentstyle="active"}
<a href="{$field.navig_url}" title="{$field.navig_name}" class="{$field.currentstyle}">{$field.navig_name}</a>
{/eju:navig}
-------------------------------示例2--------------------------------
描述:輸出二個層級菜單(這里用到navig標簽層次嵌套,注意屬性id | name的用法)
{eju:navig position_id='2' type='top' row='10' id='field1' currentstyle='active'} // 第一級菜單循環開始
<li>
<a href="{$field1.navig_url}" title="{$field1.navig_name}" class="{$field1.currentstyle}">
{$field1.navig_name}
{eju:notempty name='$field1.children'} // 判斷是否有子菜單(該示例指的是第二級菜單)
有子菜單時才顯示這里的html代碼,比如:箭頭、圖標等
{/eju:notempty}
</a>
{eju:notempty name='$field1.children'} // 判斷是否有子菜單(該示例指的是第二級菜單)
<div>
{eju:navig name='$field1.children' id='field2' row='10'} // 第二級菜單循環開始
<a href="{$field2.navig_url}" class="dropdown-item ">{$field2.navig_name}</a>
{/eju:navig} // 第二級菜單循環結束
</div>
{/eju:notempty}
</li>
{/eju:navig} // 第一級菜單循環結束
-------------------------------示例3--------------------------------
描述:輸出復雜的三個層級導航菜單(這里用到navig標簽層次嵌套,注意屬性id | name的用法)
{eju:navig position_id='2' type='top' row='10' id='field1' currentstyle='active'} // 第一級導航菜單循環開始
<li>
<a href="{$field1.navig_url}" title="{$field1.navig_name}" class="{$field1.currentstyle}">
{$field1.navig_name}
{eju:notempty name='$field1.children'}
有子菜單時才顯示這里的html代碼,比如:箭頭、圖標等
{/eju:notempty}
</a>
{eju:notempty name='$field1.children'} // 判斷是否有子菜單(第二級菜單)start
<div>
{eju:navig name='$field1.children' id='field2' row='10'} //第二級菜單循環開始
<div>
<a href="{$field2.navig_url}" class="dropdown-item ">{$field2.navig_name}</a>
{eju:notempty name='$field2.children'} // 判斷是否有子菜單(第三級菜單)start
<div class="dropdown-menu animate">
{eju:navig name='$field2.children' id='field3' row='10'} //第三級菜單循環開始
<a href="{$field3.navig_url}" class="dropdown-item ">{$field3.navig_name}</a>
{/eju:navig} //第三級菜單循環結束
</div>
{/eju:notempty} // 判斷是否有子菜單(第三級菜單)end
</div>
{/eju:navig} // 第二級菜單循環結束
</div>
{/eju:notempty} // 判斷是否有子菜單(第二級菜單)end
</li>
{/eju:navig} //第一級菜單循環結束
-------------------------------示例4--------------------------------
描述:每隔3條輸出文檔記錄
{eju:navig position_id='2' row='10' mod='3'}
{eju:eq name='mod' value='0'}
<a href='{$field.navig_url}'>{$field.navig_name}</a>
{/eju:eq}
{/eju:navig}
-------------------------------示例5--------------------------------
描述:mod屬性還用于控制一定記錄的換行,每3條記錄換行一次
{eju:navig position_id='2' row='10' mod='3'}
<a href='{$field.navig_url}'>{$field.navig_name}</a>
{eju:eq name='mod' value='0'}
<br/>
{/eju:eq}
{/eju:navig}
-------------------------------示例6--------------------------------
描述:輸出指定起始ID的記錄,過濾最前面2條,從第三條開始輸出
{eju:navig position_id='2' navigid='導航菜單ID' type='son' offset='2'}
<a href='{$field.navig_url}'>{$field.navig_name}</a>
{/eju:navig}
-------------------------------示例7--------------------------------
描述:內置變量輸出數據索引與記錄順序,key 表示索引,默認從0開始;i 表示順序,默認從1開始。
{eju:navig position_id='2' type='top'}
{$key} - {$i}
{/eju:navig}
效果:
0 - 1
1 - 2
2 - 3
3 - 4
4 - 5
-------------------------------示例8--------------------------------
描述:自定義變量名
{eju:navig position_id='2' type='top' id='field2'}
<a href='{$field2.navig_url}'>{$field2.navig_name}</a>
{/eju:navig}
-
type='self' 表示同級導航菜單
-
type='son' 表示下級導航菜單
-
type='sonself' 表示當前下級導航菜單以及同級導航菜單
-
type='first' 表示當前導航菜單ID的最頂級導航菜單下的所有層級導航菜單集合