我們在制作DEDE的模板的時候經(jīng)常需要用到調(diào)用上一級欄目的欄目名稱和欄目鏈接,網(wǎng)上找了一大堆辦法,終于實現(xiàn)這個效果
方法如下:
<a href="{dede:field.typeid runphp='yes'"} global $dsql ; $reid = $dsql->GetOne("SELECT reid FROM dede_arctype where id=@me"); $reid = $reid['reid']; $typename = $dsql->GetOne("SELECT typedir FROM dede_arctype where id=$reid"); @me=str_replace('{cmspath}','',$typename['typedir']);{/dede:field.typeid}" >{dede:field.typeid runphp='yes'"} global $dsql ; $reid = $dsql->GetOne("SELECT reid FROM dede_arctype where id=@me"); $reid = $reid['reid']; $typename = $dsql->GetOne("SELECT typename FROM dede_arctype where id=$reid"); @me=$typename['typename'];{/dede:field.typeid}</a>
其中紅色字體為欄目鏈接調(diào)用,藍色字體為欄目名稱調(diào)用
當(dāng)然還有別的調(diào)用方式及辦法,詳見如下
調(diào)用當(dāng)前欄目的名稱
{dede:field name="typename"}
調(diào)用該頂級頻道下所有子欄目,row代表調(diào)用5條
{dede:channel type='son' row='5'} <a href="[field:typeurl/]">[field:typename/]</a> {/dede:channel}
調(diào)用子欄目的當(dāng)前頂級欄目名稱
{dede:channel type='top'}<a>[field:typename/]</a> {/dede:channel}
N級子欄目調(diào)用最上級欄目名稱
{dede:field name='position' runphp='yes'}$tc="-"; //分隔符
$tw=$GLOBALS['cfg_list_symbol']; //調(diào)用位置分隔符
$tf=split($tw,@me); //分解成數(shù)組
$ta=1;$tk=trim($tf[$ta]);$tk=substr($tk,0,-2);@me=$tk; //賦值給@me
{/dede:field}
N級子欄目調(diào)用上級欄目名稱
方法1:
{dede:field name='position' runphp='yes'}$tc="-"; //分隔符
$tw=$GLOBALS['cfg_list_symbol']; //調(diào)用位置分隔符
$tf=split($tw,@me); //分解成數(shù)組
$ta=(count($tf)-3);$tk=trim($tf[$ta]);@me=$tk; //賦值給@me
{/dede:field}
方法2:
<a href= {dede:field.typeid runphp='yes'"} global $dsql ; $reid = $dsql->GetOne("SELECT reid FROM dede_arctype where id=@me"); $reid = $reid['reid']; $typename = $dsql->GetOne("SELECT typedir FROM dede_arctype where id=$reid"); @me=str_replace('{cmspath}','',$typename['typedir']);{/dede:field.typeid} >{dede:field.typeid runphp='yes'"} global $dsql ; $reid = $dsql->GetOne("SELECT reid FROM dede_arctype where id=@me"); $reid = $reid['reid']; $typename = $dsql->GetOne("SELECT typename FROM dede_arctype where id=$reid"); @me=$typename['typename'];{/dede:field.typeid}</a>
調(diào)用指定欄目
{dede:type typeid='欄目id'} <a href="[field:typeurl/]">[field:typename/]</a> {/dede:type}
DEDE標(biāo)題欄:文章標(biāo)題-2級欄目-1級欄目-網(wǎng)站名”樣式顯示
{dede:field name='title'/}-{dede:field name='position' runphp='yes'}$tc="-"; //分隔符
$tw=$GLOBALS['cfg_list_symbol']; //調(diào)用位置分隔符
@me=html2text(@me); //去除html標(biāo)簽
$tf=split($tw,@me); //分解成數(shù)組
for($ta=(count($tf)-2);$ta>=1;$ta--){ //循環(huán)賦值給$tk
$tk.=trim($tf[$ta]).$tc;}$tk=substr($tk,0,-1);@me=$tk; //賦值給@me
{/dede:field}-{dede:global name='cfg_webname'/}
下面是調(diào)用頂級欄目名稱的方法:
方法一:
{dede:field.typeid runphp=’yes’}
$ID = @me;
$sql = “SELECT * FROM `dede_arctype` WHERE id=$ID”;
$query = mysql_query($sql);$row=mysql_fetch_array($query);
$relID = “$row[reid]“;
if($relID == 0) {@me = $row[typename];}
else{$sql = “SELECT `typename` FROM `dede_arctype` WHERE id=$relID”;
$query = mysql_query($sql);
$row=mysql_fetch_array($query);
@me = $row[typename];}
{/dede:field.typeid}
|