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

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

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

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

  /// <summary>
/// 自定义:文章列表
/// </summary>
/// <param name="top">显示条数</param>
/// <param name="strwhere">查询条件</param>
/// <returns>DataTable</returns>
protected DataTable get_article_list(int top, string strwhere)
{
return new BLL.article().GetList(top, strwhere, " sort_id asc,add_time desc").Tables[];
}

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<>''")%>
<%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%>
   <%set DataTable newest=get_article_list(10, "status=0 ")%>
<%foreach(DataRow dr in newest.Rows)%>
<li><span><%datetostr({dr[add_time]},"yyyy-MM-dd")%></span><a title="{dr[title]}" href="<%linkurl(get_url_name(get_category_name({dr[channel_id]}),"detail"),{dr[id]})%>">
<%cutstring({dr[title]},35)%></a></li>
<%/foreach%>

DTCMS自定义标签,获取所有栏目文章列表TOP,以及文章通用URL的更多相关文章

  1. dedecms列表页如何让文章列表里面的文章每隔五篇就隔开一段空间

    dedecms列表页如何让文章列表里面的文章每隔五篇就隔开一段空间,运用js控制列表样式的方法. 代码如下: <script type="text/javascript"&g ...

  2. 织梦dedecms 扩展channel栏目标签 获取交叉栏目名称和链接

    channel栏目标签默认有调用顶级栏目(top).子栏目(son).同级栏目(self),那想获取交叉栏目的名称和链接怎么获取呢? 其实在原来的代码上改一下就可以了.下面是具体代码.打开文件chan ...

  3. day58——模板继承、组件、自定义标签和过滤器、inclusion_tag、静态文件配置、url别名和反向解析、url命名空间

    day58 模板相关 模板继承(母版继承) 1. 创建一个xx.html页面(作为母版,其他页面来继承它使用) 2. 在母版中定义block块(可以定义多个,整个页面任意位置) {% block co ...

  4. DTCMS自定义标签,获取所有栏目以及获得二级子栏目导航

    取得二级栏目 DTcms.Web.UI\Label\category.cs中 get_category_child_list 返回当前所有子栏目 DTcms.Web.UI\Label\category ...

  5. DTCMS自定义标签:获取所有栏目以及不显示指定栏目

    DTcms.Web.UI\Label\category.cs中 添加下面代码 /// <summary> /// 返回所有类别 /// </summary> /// <r ...

  6. DTCMS自定义标签:面包屑导航,栏目中通过栏目调用名称获得栏目名称

    DTcms.Web.UI\Label\category.cs中增加标签 /// <summary> /// 自定义:通过类别name获得类别title /// </summary&g ...

  7. DTCMS自定义标签,tags分割

    DTcms.Web.UI\Label\article.cs /// <summary> /// 自定义:分割tags /// </summary> /// <param ...

  8. SpringBoot整合freemarker中自定义标签获取字典表的数据

    因为在前端要根据字典表中的数据去将1.2这些值转换成对应的文字解释 1.首先要创建一个类去实现 TemplateDirectiveModel 类 @Component public class Dic ...

  9. go struct 自定义标签获取

    package main import ( "fmt" "reflect" ) type Test struct { Id int `json:"us ...

随机推荐

  1. 【ZZ】超全面的设计模式总结

    http://www.cnblogs.com/chenssy/p/3357683.html#rd

  2. 一天一个mysql函数(一) cast && convert

    MySQL 的CAST()和CONVERT()函数可用来获取一个类型的值,并产生另一个类型的值.两者具体的语法如下: CAST(value as type); CONVERT(value, type) ...

  3. 《Cortex-M0权威指南》之绪论

    转载请注明来源:cuixiaolei的技术博客 1.1 为什么要选择Cortex-M0 为了满足现代超低功耗微控制器和混合信号设备的需要,ARM推出了Cortex-M0处理器.Cortex-M0在保持 ...

  4. scrapy_ip_agent

    #File name is rotate_useragent# -*- coding: UTF-8 -*- import randomimport urllib2import redisfrom sc ...

  5. [转]关于ASP.NET(C#)程序中TEXTBOX下动态DIV跟随[AJAX应用]

    本文转自:http://blog.csdn.net/lolenboy/article/details/1665814 说明: 环境:ASPNET(c#),SQL2K 事例:TEXTBOX下跟随DIV, ...

  6. Wince 对话框程序设计

    如何编程实现wince下“打开文件夹对话框”呢?这里就要涉及到下面要分析的知识了,对话框是一种特殊的窗口,它在wince 作为应用程序和程序使用者之间的交流窗口,通过显示和获取信息使人们的交流更加方便 ...

  7. 并查集(UVA 1106)

    POINT: 把每个元素看成顶点,则一个简单化合物就是一条无向边,若存在环(即k对组合中有k种元素),则危险,不应该装箱,反之,装箱: 用一个并查集维护连通分量集合,每次得到一种化合物(x, y)时检 ...

  8. hdu 4670 树的点分治

    思路:首先当然是要用树的点分治了.根节点为root,那么经过root的合法路径数求出来这题就解决了.因为我们可以用分治枚举根,最后将所有根的路径数加起来就是结果.当然这里的根不是整棵树的根,是子树根. ...

  9. poj 2104 划分树

    思路:裸的划分树 #include<iostream> #include<algorithm> #include<cstring> #include<cstd ...

  10. Java反转单链表(code)

    主要是面试中可能会经常碰上该类似操作,尤其是稍大点公司,面试官可能并不在乎你能不能搞定该题,但是这类型题目最是能体现程序员的思维状态 ---一个迷糊头脑的程序员 怎能立志改变这个世界 /** * @a ...