DEDECMS专题模板怎么做啊?
◆DedeCms模板安装/制作概述:
DedeCms系统的模板是非固定的,用户可以在新建栏目时可以自行选择栏目模板,官方仅提供最基本的默认模板,即是内置系统模型的各个模板,由于DedeCms支持自定义频道模型,用户自定义新频道模型后,还需要按该模型的字段设计一套新的模板,此外,DedeCms也支持使用风格的形式使用模板,默认风格是 default,它表示系统默认使用 cmspath/templets/default 这个文件夹的模板,如果你下载了一套新的模板,你可以不必要删除 default 原有的文件,把下载的模板文件夹命名你想要的风格名称,如 style2 等,然后在后台修改了默认的模板风格名称为 style2 ,那系统将使用 templets/style2 这文件当作默认模板,但是若你手工指定了栏目模板的位置,则后台参数风格的定义无效。
一、概念,设计和使用模板,必须要理解下面几个概念
1、板块(封面)模板:
指网站主页或比较重要的栏目封面频道使用的模板,一般用“index_识别IDhtm”命名,此外,用户单独定义的单个页面或自定义标记,也可选是否支持板块模板标记,如果支持,系统会用板块模板标记引擎去解析后才输出内容或生成特定的文件。
2、列表模板:
指网站某个栏目的所有文章列表的模板,一般用 “list_识别IDhtm” 命名。
3、档案模板:
表示文档查看页的模板,如文章模板,一般用 “article_识别IDhtm” 命名。
4、其它模板:
一般系统常规包含的模板有:主页模板、搜索模板、RSS、JS编译功能模板等,此外用户也可以自定义一个模板创建为任意文件。
二、 命名,DedeCms模板默认命名规则如下
1、模板保存位置:
模板目录:cmspath/templets/样式名称(英文,默认为default,其中system为系统底层模板,plus为插件使用的模板)/具体功能模板文件}
2、 模板文件命名规范:
(1)index_识别IDhtm: 表示板块(栏目封面)模板;
(2)list_识别IDhtm: 表示栏目列表模板;
(3)article_识别IDhtm: 表示内容查看页(文档模板,包括专题查看页);
(4)searchhtm: 搜索结果列表模板;
(5)indexhtm: 主页模板;
注解:[识别ID]可以在“频道模型管理”的地方获得,当然,你也可以在“频道模型管理”的地方确定某个频道的模板命名。
例:list_imagehtm 表示是就是内容类型为集的栏目默认列表模板。
article_articlehtm 表示的是文章查看页模板。
三、其它模板说明
1、默认底层模板
位置: cmspath/templets/system
功能:在没有指定标记的默认底层模板的时候,系统将自动调用这个文件夹的相应文件作为底层模板。
2、插件目录模板
位置: cmspath/templets/plus
功能:评论、友情链接、RSS地图等模板。
3、会员后台模板
位置: cmspath/member/templets
功能:会员后台的模板。
四、二次开发
DedeCms主要的模板解析类是 include/inc_arcpart_viewphp、include/inc_arclist_viewphp、include/inc_archives_viewphp,这些类是与pub_dedetagphp一起工作的,如果你想为文档模板、列表模板、板块模板增加一些功能,可以直接修改这几个类的ParseTemplet()或ParseTempletsFirst()这类的方法,把标记名称,属性对应试相应该的功能函数即时。
希望能帮到你
在dedecms的templates/default里找到indexhtm。这个是dedecms默认的主页模板,把这个打开,找到轮播的JS代码复制出来到你自己的模板里。
下面来根据需要改代码了。dedecms轮播默认是有标题的。我这里是不需要这个功能,所以把它取掉了。修改了几个地方。textarr = new Array();var texts = "";首先把这两个删除。(第一个数组变量是用来存储标题的,第二个变量,是当前的标题。)。dedecms这个代码里,有一个配置变量,是有说明的,大家可以根据说明去修改。因为我为里只是要删除标题,所以把和标题相关的配置删除就OK了。(最终结果:var configtg='2|3|1|_blank';)。在把dedecms标签里的:textarr[[field:globalautoindex/]] = "[field:title function='html2text(@me)'/]";这一段删除,下面还有一个循环遍历标题的,也要删除。dedecms轮播这里是采用的flash的方式,所以在<object>里还要删除和标题相关的参数。这些工作都做完后,就开始在后台添加了。在刚才自己新建的栏目里,新建文章,输入文章标题
分别√选,幻灯、滚动、、跳转
在出来的跳转网址的地方,输入你要跳转到的地址
然后上传,在缩略图这里上传,而非文章正文。文章正文留为空。
1进入专题管理界面,点击添加专题,出现界面如下:
2然后把“专题名称”,“主分类”,“关键字”,“专题简介”等相关信息填写好,这里的主分类,其实就是要把这个专题放在哪个栏目里,,反正根据自己的需要来设定就行。如果为了展示的效果,还可以在“缩略图”这个地方,给这个专题增加一个缩略,添加的方法。至于“专题模板”,dedecms自带了一个模板,默认名称叫“article_spechtm”但是大部分人都不用默认,因为基本没人用默认的模板。
3以上信息都填写好了以后,点击旁边的“专题文档”,就进入选择文章的环节。
4“节点名称”其实就是这个专题下的分类名称,选择“节点文章”就是对应这个分类,想展示的文章内容。
点击“节点文章”后,会谈出一个对话框,对话框是网站里的所有文章,为了方便选择,可以使用右下角的“搜索”,输入要的关键词,展示网站里的文章,勾选你要的文章以后,点击“把选定值加到列表”,内容就选定了。
5选好了内容,文章ID选定,确定以后的界面如下:
6下面的节点2、3、4……以此类推,来选择自己的文章。都弄好了以后,确定就可以发布专题了。但是如果模板路径/templets/default/下面没有article_spechtm这个模板文件,是不能发布专题的。
“/templets/new/images/” 请用绝对地址
或者改成 {dede:globalcfg_templeturl/}/images/ (推荐)
或者 {dede:globalcfg_cmsurl/}/templets/new/images/
参考下面方法
首先,打开后台——模板——默认模板管理——indexhtm
看到有一句,
rel="stylesheet" media="screen" type="text/css" />说明,模板是根据这个 CSS 来布局网
页的,于是就打开网站目录下面的templets\style\dedecmscss然后来分析一下CSS的构成。
根据主页的调用,来研究 CSS 这样容易理解。打开主页模板,找到:
那么 w960 center clear mt1 都定义了什么呢?打开 DEDECMSCSS 找打相关的定义。
center{
1 margin:0px auto; 定义了CSS 模块的边缘位置都是 0,也就是这个center 的层
距离上右下左都是 0px;
2 }
3 w960{
4 width:960px; 定义了整体的宽度为 960px;
5
6 }
7 pright infos_userinfo {
8 margin-bottom: 0px; 定义了首页右部下的互动中心的下面边缘为 0px;
9 }
10 mt1{
11 margin-top:8px; 定义了mt1 的顶部边缘为8px;
12 }
13 pright mt1{
14 margin-top:0px; 定义了pright 下面的mt1 顶部边缘为0px;
15 }
16 mt2{
17 margin-top:16px; 顶部边缘为16px;
18 }
19 clear{
20 overflow:hidden; 如果clear 层里面的内容超出了 层的范围 就隐藏起来。
21 }
这个pleft 的定义没有在dedecmscss 中,但是会发现一句
话
@import url("layoutcss");
@import url("pagecss");
这说明,在dedecmscss 中引用了 pagecss 和layoutcss 这两个样式表,于是就在
pagecss 中找到了pleft 的定义
pleft{
width:712px;定义了宽度
float:left;该层向左浮动
overflow:hidden;超出范围则隐藏
}
在该层下面调用的是新闻头条的内容,看看它的 css
index bignews{
width:424px;
height:400px;
float:right; 向右浮动
border:1px solid #DFF2F5;表示边框线用 #dff2f5 的实体颜色填充
background:url(/images/headbg-topgif) repeat-x;背景为 headbg-topgif 并且横
向平铺
overflow:hidden;超出则隐藏。
}
所以,看到头条的这部分是在 flash 幻灯片右边显示,并且加上了浅蓝色的边框线。
再来看看 onenews 是如何定义的。
index bignews onenews{
margin:0 3px 0 3px; 左右外边距分别空3 个像素
padding:7px 6px;上左内边距分别空7,6 个像素
border-bottom:1px dashed #EBEBEB;下边框加一个 #ebebeb 的虚线
}
所以看见头条的文章左右都有一定的距离,并且下面还有一个虚线显示
这个下面调用的是以往的头条,默认的有 4 篇文章,调用了d1 d1arc 2 个css
index bignews divd1{
padding:6px 10px;
clear:both;这句话是清除浮动,如果不加它,大家可以试试看,是不是 d1 这个层就跑到 头条的
右边了。
width:406px;
overflow:hidden;
}
index bignews divd1arc{
margin-right:12px;
width:190px;
float:left;因为此时要调用4 篇文章,改文章是 22 排列的,如果不加这个属性,新闻就应该垂
直排列了(因为刚才用 clear:both 清除浮动啦),大家试试看是不是这样的。
height:24px;
line-height:24px;行间距,即字体最底端与字体内部顶端之间的距离
overflow:hidden;
}
最新文章
下面看看 newarticle 这个css 吧,还是拿快学网的首页举例子,上面的这句是用来显示 “最近
更新”那几个绿颜色字的,看看它是怎么定义的。
index bignews divnewarticle{
height:24px; 高度
background:url(/images/new-articlegif) 8px 3px no-repeat;背景在x 轴8px 和y 轴
3px 出出现
font-size:0px;
color:#fff;
} 所以,能看到那个最近更新并且还有一个横条,其实它是个,大家右键另存为
看看就知道了
这里面调用了 c2 和ico1 两个 css
index bignews ulc2{
width:416px;
padding:0px 4px 0px; 内边距为 上0 右4 下0
clear:both;清除浮动 和上面的意思一样
overflow:hidden;
}
ico1 这个css 在layoutcss 中了。
ico1 li{
padding-left:16px; 指的是 新闻列表左内边距为 16px
background:url(/images/ico-1gif) 7px 11px no-repeat; 背景在7px,11px 处出现,所以看到最新文章的列表左边都有一个小黑点,这个小黑点就是 ico-1gif
}
到此,中部的头条新闻和最近更新已经分析完了。
看看flash 的 css 定义
index flashnews{
width:280px;
height:192px;
overflow:hidden;
float:left;这句决定了,flash 的新闻列表在 头条的左边显示。如果把 bignews 和flashnews
的float 属性互换一下应该是上面结果呢?大家试试看。
}
这边是特别推荐调用的样式,还是来看看 css
index latestnews{
width:280px;
height:200px;
margin-top:8px;
float:left;
}
index latestnews dl dd{
padding:2px 5px;
}
index latestnews ul a{
color:#555;
} 这里面就不用解释了吧,可以和上面的对照一下就能明白上面意思了。关键 dl dt dd 要弄明白
是什么意思。
dl 内容块
dt 内容块的标题
dd 内容
可以这么写:
标题
内容1
内容2
在layoutcss 中找到 tbox 的相关定义,其他的都不用罗嗦了,只有一句大家注意看一
下
tbox dt strong{
height:26px;
line-height:26px; !important;line-height:25px; 这一句是为了兼容 IE 和FF,比如
font-size: 12px !important;
font-size: 13px;
在 IE里面,由于 IE不理解 !important,则字体大小按照最后设定的 13px 展示
而FF 里面, !important 为提高优先级别,则字体大小按照 !important标记的12px 展示
某些css 某些代码在这两类浏览器里的显示是有差别的(注意这也是使用!important 的主要原因
所在),比如height: 21px;,在 IE6 和(IE7,FF)里显示就有差别,后者(IE7,FF)会比前
者(IE6)少一个像素。
padding-left:22px;
padding-right:4px;
display:block;//变成块级 ,因为strong 是内联元素,必须强制转换,不然的话是没有办法
定义padding 的。大家可以百度一下 内联元素看看。
float:left;
color:#397CBE;
background:url(/images/fbicogif) 5px 6px no-repeat;
letter-spacing:1px;
}
0条评论