亚洲欧美成人综合一区_国产精品一区二区无码_亚洲风情偷拍区_成?人免费无码视频在线看

西安做網(wǎng)站_西安網(wǎng)站建設(shè)公司_西安網(wǎng)頁制作_西安網(wǎng)頁設(shè)計(jì)_西安網(wǎng)站制作設(shè)計(jì)公司

 找回密碼
 注冊

QQ登錄

只需一步,快速開始

搜索
查看: 12665|回復(fù): 0
打印 上一主題 下一主題

自制的全局標(biāo)簽{dede:randomartlist} 可以在任意模板位置列出...

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2014-4-7 13:35:01 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
DEDECMS自帶的{dede:channelartlist}標(biāo)簽只能獲取當(dāng)前欄目的子欄目的內(nèi)容列表,在首頁模板中就是頂級欄目的內(nèi)容列表,在做垃圾站的時(shí)候表現(xiàn)不夠靈活。假如我要在一個(gè)沒有下級欄目的欄目中使用{dede:channelartlist}標(biāo)簽的話就不會獲得任何內(nèi)容。有時(shí)候我們會發(fā)現(xiàn)網(wǎng)站在列表頁和內(nèi)容頁內(nèi)容不夠充實(shí),又怕麻煩去手動添加一些內(nèi)容列表(所添加的常見內(nèi)容也不過是最新、熱門、推薦文檔等這些全局標(biāo)簽),又不想去制作多個(gè)列表和內(nèi)容頁模板使其內(nèi)容豐富起來,如果你非要做的話,其做法不過就是使用arclist標(biāo)簽讀取一些指定欄目的內(nèi)容,這種做法的缺點(diǎn)就是如果你要鏈接到你指定的欄目就要手動在HTML代碼里寫出來,不夠機(jī)動。

假如有一個(gè)全局標(biāo)簽,能用于網(wǎng)站模板的任意位置,隨機(jī)列出指定數(shù)目的網(wǎng)站欄目及內(nèi)容列表,豈不使你的垃圾站內(nèi)容更加豐富多彩哈。

于是我自制的全局標(biāo)簽{dede:randomartlist}誕生了
它可以在任意模板位置列出你指定數(shù)目(標(biāo)簽里的row參數(shù))的隨機(jī)欄目,并且這些只能非隱藏、文章模型、不是封面和外鏈的欄目(既此欄目會有實(shí)實(shí)在在的文章內(nèi)容),且排除自身(如果用于欄目列表和文章內(nèi)容顯示頁面)。不過如果你要在首頁調(diào)用欄目內(nèi)容列表的話還是推薦使用{dede:channelartlist}標(biāo)簽。

使用方法:

一、在任意模板位置中切入標(biāo)簽:
{dede:randomartlist row=3}
<h3><a href="{dede:field name='typeurl'/}" title="{dede:field name='typename'/}">{dede:field name='typename'/}</a></h3><span><a href="{dede:field name='typeurl'/}">更多</a></span>
<ul>
{dede:arclist titlelen=40 row='8'}
    <li><a href="[field:arcurl/]" title="[field:fulltitle/]">[field:title/]</a></li>
{/dede:arclist}
</ul>
{/dede:randomartlist}復(fù)制代碼
標(biāo)簽唯一的一個(gè)參數(shù)row為要隨機(jī)顯示的欄目數(shù)目
標(biāo)簽里面的內(nèi)置html代碼可以自行修改,里面的其他標(biāo)簽相信用過DEDE的都很熟悉,如果該標(biāo)簽沒有內(nèi)置模板的話(即用法為:{dede:randomartlist row=3}{/dede:randomartlist})將會使用{dede:channelartlist}標(biāo)簽的系統(tǒng)默認(rèn)模板(模板目錄/system/part_channelartlist.htm),因?yàn)檫@個(gè)標(biāo)簽我是從{dede:channelartlist}修改過來的,所以也就沒有重新配置,建議大家都自己定義。

二、在 include/taglib目錄里添加如下標(biāo)簽代碼文件randomartlist.lib.php:
<?php
/**
* [全局]隨機(jī)任意調(diào)用欄目內(nèi)容列表,DEDE現(xiàn)有的channelartlist標(biāo)簽只能在首頁調(diào)用頂級欄目和欄目頁調(diào)用其子欄目列表
* 本標(biāo)簽是對channelartlist的修改,去除了它的上下文環(huán)境,標(biāo)簽可用于任意模板位置
* @author  Summer  2009.04.15  qq 10256288
*/

if(!defined('DEDEINC')) exit('Request Error!');
require_once(DEDEINC.'/arc.partview.class.php');

function lib_randomartlist(&$ctag,&$refObj)
{
        global $dsql,$envs,$_sys_globals;

        //處理標(biāo)記屬性、innertext
        $attlist = 'typeid|0,row|10';
        FillAttsDefault($ctag->CAttribute->Items,$attlist);
        extract($ctag->CAttribute->Items, EXTR_SKIP);
        $innertext = trim($ctag->GetInnerText());
        if($innertext=='') $innertext = GetSysTemplets('part_channelartlist.htm');
        $totalnum = $row;
        if(empty($totalnum)) $totalnum = 20;

        //獲得類別ID總數(shù)的信息
        $typeids = array();
        //只讀取內(nèi)容模型為文章的欄目[且欄目不是封面和外部鏈接,非隱藏欄目]
        $tpsql = "id<>".$_sys_globals['typeid']." AND ispart=0 And ishidden<>1 And channeltype=1";        
        $dsql->SetQuery("Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath from `#@__arctype` where $tpsql order by rand() limit $totalnum");
        $dsql->Execute();
        while($row = $dsql->GetArray()) {
                $typeids[] = $row;
        }

        if(!isset($typeids[0])) return '';

        $artlist = '';
        $GLOBALS['itemindex'] = 0;
        $GLOBALS['itemparity'] = 1;
        for($i=0;isset($typeids[$i]);$i++)
        {               
                $GLOBALS['itemindex']++;
                $pv = new PartView($typeids[$i]['id']);
                $pv->Fields['typeurl'] = GetOneTypeUrlA($typeids[$i]);
                $pv->SetTemplet($innertext,'string');
                $artlist .= $pv->GetResult();
                $GLOBALS['itemparity'] = ($GLOBALS['itemparity']==1 ? 2 : 1);
        }
        //注銷環(huán)境變量,以防止后續(xù)調(diào)用中被使用
        $GLOBALS['envs']['typeid'] = $_sys_globals['typeid'];
        $GLOBALS['envs']['reid'] = '';
        return $artlist;
}
?>復(fù)制代碼
當(dāng)然你也可以在DEDECMS后臺 -> 模板 -> 標(biāo)簽源碼管理  添加這個(gè)新的標(biāo)簽,然后你就可以在任意模板位置使用{dede:randomartlist}標(biāo)簽調(diào)用隨機(jī)欄目了
西安網(wǎng)站建設(shè) | 西安做網(wǎng)站 —— 劍鋒所指 所向披靡!
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則

QQ|小黑屋|手機(jī)版|Archiver|西安網(wǎng)站建設(shè)

GMT+8, 2024-10-22 16:32 , Processed in 0.041567 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回復(fù) 返回頂部 返回列表