DTCMS自定义标签,获取所有栏目文章列表TOP,以及文章通用URL
网站最近更新等地方,发现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的更多相关文章
- dedecms列表页如何让文章列表里面的文章每隔五篇就隔开一段空间
dedecms列表页如何让文章列表里面的文章每隔五篇就隔开一段空间,运用js控制列表样式的方法. 代码如下: <script type="text/javascript"&g ...
- 织梦dedecms 扩展channel栏目标签 获取交叉栏目名称和链接
channel栏目标签默认有调用顶级栏目(top).子栏目(son).同级栏目(self),那想获取交叉栏目的名称和链接怎么获取呢? 其实在原来的代码上改一下就可以了.下面是具体代码.打开文件chan ...
- day58——模板继承、组件、自定义标签和过滤器、inclusion_tag、静态文件配置、url别名和反向解析、url命名空间
day58 模板相关 模板继承(母版继承) 1. 创建一个xx.html页面(作为母版,其他页面来继承它使用) 2. 在母版中定义block块(可以定义多个,整个页面任意位置) {% block co ...
- DTCMS自定义标签,获取所有栏目以及获得二级子栏目导航
取得二级栏目 DTcms.Web.UI\Label\category.cs中 get_category_child_list 返回当前所有子栏目 DTcms.Web.UI\Label\category ...
- DTCMS自定义标签:获取所有栏目以及不显示指定栏目
DTcms.Web.UI\Label\category.cs中 添加下面代码 /// <summary> /// 返回所有类别 /// </summary> /// <r ...
- DTCMS自定义标签:面包屑导航,栏目中通过栏目调用名称获得栏目名称
DTcms.Web.UI\Label\category.cs中增加标签 /// <summary> /// 自定义:通过类别name获得类别title /// </summary&g ...
- DTCMS自定义标签,tags分割
DTcms.Web.UI\Label\article.cs /// <summary> /// 自定义:分割tags /// </summary> /// <param ...
- SpringBoot整合freemarker中自定义标签获取字典表的数据
因为在前端要根据字典表中的数据去将1.2这些值转换成对应的文字解释 1.首先要创建一个类去实现 TemplateDirectiveModel 类 @Component public class Dic ...
- go struct 自定义标签获取
package main import ( "fmt" "reflect" ) type Test struct { Id int `json:"us ...
随机推荐
- enum 在c中的使用
假设一个变量你须要几种可能存在的值,那么就能够被定义成为枚举类型.之所以叫枚举就是说将变量或者叫对象可能存在的情况也能够说是可能的值一一例举出来. 举个样例来说明一吧,为了让大家更明确一点,比方一个 ...
- Linux守护进程(init.d和xinetd)
http://www.cnblogs.com/itech/archive/2010/12/27/1914846.html
- Java_eclipse软件与git配合使用创建git仓库
一.在eclipse上安装git,和安装其他插件一样 help->Install new software->add... 在弹出框中输入name,location;点击-->ok ...
- (转)Windows7 64位系统搭建Cocos2d-x 2.2.1最新版以及Android交叉编译环境(详细教程) .
声明:本教程在参考了以下博文,并经过自己的摸索后实际操作得出,本教程系本人原创,由于升级后的cocos2d-x有了一些变化,目前的博文还没有关于Cocos2d-x 2.2.1最新版搭建Android交 ...
- uboot_starts_analysis.pdf
Uboot中start.S源码的指令级的详尽解析 HTML版本的在线地址为:http://www.crifan.com/files/doc/docbook/uboot_starts_analysis/ ...
- Android 高级UI设计笔记09:Android如何实现无限滚动列表
ListView和GridView已经成为原生的Android应用实现中两个最流行的设计模式.目前,这些模式被大量的开发者使用,主要是因为他们是简单而直接的实现,同时他们提供了一个良好,整洁的用户体验 ...
- Java(Android)编程思想笔记02:组合与继承、final、策略设计模式与适配器模式、内部类、序列化控制(注意事项)
1.组合和继承之间的选择 组合和继承都允许在新的类中放置子对象,组合是显式的这样做,而继承则是隐式的做. 组合技术通常用于想在新类中使用现有类的功能而非它的接口这种情形.即在新类中嵌入某个对象,让其实 ...
- gitlab备份与恢复操作方法
github私有仓库是收费的,有些代码不方便托管到外面的git仓库,因此就产生了自己搭建git服务器的需求. 好在有广大的开源人士的贡献,有了gitlab这一神器. 手动配置较多,直接用集成包: bi ...
- python(3)-计数器,有序字典
计数器:Counter 在使用计数器之前需要先 import collections >>> import collections >>> obj = collec ...
- Linux下安装配置Node及memcached
这篇主要是记录Linux下安装Node及memcached遇到的问题及安装配置过程,方便日后查阅 Node安装及配置 [root@hostname ~]tar zxvf node-v0.12.4.ta ...