首页 > 其他 > 详细

DTCMS自定义标签,获取所有栏目文章列表TOP

时间:2015-11-10 13:45:45      阅读:315      评论:0      收藏:0      [点我收藏+]

网站最近更新等地方,发现DTCMS没有获取所有栏目文章列表的标签,只能自己写

思路:获取所有栏目文章列表不难,难点在于linkurl的写法

1、制作获取所有文章列表标签

DTcms.Web.UI\Label\article.cs中

  /// <summary>
        /// 文章列表
        /// </summary>
        /// <param name="top">显示条数</param>
        /// <param name="strwhere">查询条件</param>
        /// <param name="filedOrder">排序字段</param>
        /// <returns>DataTable</returns>
        protected DataTable get_article_list(int top, string strwhere, string filedOrder)
        {
           return new BLL.article().GetList(top, strwhere,filedOrder).Tables[0];
        }

2、制作linkurl,首先需要获得文章详细页的调用名称,比如furniture_show,组成linkurl("furniture_show",{dr[id]})。{dr[id]}为文章ID,

这里需要读取xmlconfig\urls.config 节点

DTcms.Web.UI\Label\category.cs中 增加两个标签

 /// <summary>
        /// 根据栏目的别名 返回URL名称
        /// </summary>
        /// <param name="category_name">栏目的别名</param>
        /// <returns>String</returns>
        protected string get_url_name(string category_name, string attrType)
        {
            string urlchannel = string.Empty;
            BLL.url_rewrite bll = new BLL.url_rewrite();
            if (!string.IsNullOrEmpty(category_name))
            {
                urlchannel = bll.GetInfo(category_name, attrType).name;
            }
            return urlchannel;
        }
        /// <summary>
        /// 返回当前类别调用别名
        /// </summary>
        /// <param name="category_id">类别ID</param>
        /// <returns>String</returns>
        protected string get_category_name(string category_id)
        {
            string default_value = string.Empty;
            BLL.channel bll = new BLL.channel();
            if (bll.Exists(Convert.ToInt32(category_id)))
            {
                return bll.GetModel(Convert.ToInt32(category_id)).name;
            }
            return default_value;
        }

3、在index.html模版中

   <%set DataTable redNews=get_article_list(1, "status=0 and is_red=1 and img_url<>‘‘"," id desc")%>
          <%foreach(DataRow dr in redNews.Rows)%>
          <li>
            <a title="{dr[title]}" href="<%linkurl(get_url_name(get_category_name({dr[channel_id]}),"detail"),{dr[id]})%>">
              <span class="note-bg"></span>
              <span class="note-txt">{dr[title]}</span>
              <img src="{dr[img_url]}" />
            </a>
          </li>
          <%/foreach%>

 

DTCMS自定义标签,获取所有栏目文章列表TOP

原文:http://www.cnblogs.com/qigege/p/4952440.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!