给栏目增加缩略图调用它:
https://www.cnblogs.com/wuxinyiwu/p/8085114.html
新加的图片字段 调用时会出现 {dede:img text='' width='270' height='129'} /uploads/101017/1-10101H21F54P.gif {/dede:img}这样的形式:
创建自定义函数 打开 /include/extend.func. 文件(注:这个文件就是系统预留的自定义函数接口文件,主要用于二次开发用的。如果你是老版本,默认没有这个文件,自己创建一个PHP文件即可),在最下面的?>上一行加入以下函数代码:(如果结尾没有?>那就直接在最下面添加) function GetOneImgUrl($img,$ftype=1){ if($img <> ''){ $dtp = new DedeTagParse(); $dtp->LoadSource($img); if(is_array($dtp->CTags)){ foreach($dtp->CTags as $ctag){ if($ctag->GetName()=='img'){ $width = $ctag->GetAtt('width'); $height = $ctag->GetAtt('height'); $imgurl = trim($ctag->GetInnerText()); $img = ''; if($imgurl != ''){ if($ftype==1){ $img .= $imgurl; } else{ $img .= '<img src="'.$imgurl.'" width="'.$width.'" height="'.$height.'" />'; } } } } } $dtp->Clear(); return $img; } } 下面就可以开始调用图片地址了。 列表页和首页调用方法: [field:自定义图片字段名 function="GetOneImgUrl(@me,显示类型)"/] 比如:我们的自定义图片字段名为 datu 和 xiaotu, 只举例调用datu字段的方法,那么调用方式有以下两种: [field:datu function='GetOneImgUrl(@me,0)'/] 调用图片的信息,自动调用宽度和高度(已包含Html代码的<img />) [field:datu function='GetOneImgUrl(@me,1)'/] 只调用图片地址,一般可用于背景图嵌套 文章阅读页调用方法: {dede:field name='datu' function='GetOneImgUrl(@me,1)'/} 是不是搞定了?就这么简单!
{dede:channel typeid='3' type='son' row='8'} <div class="c_t fl"> <img class="c_u" src="[field:typeimg/]" /> <a class="c_v fl" href="[field:typelink/]">介绍</a> <div class="clear"></div> </div> {/dede:channel}
每个页面添加关键词描述:
<title></title>
<meta name="keywords" content="">
<meta name="description" content="">
首页标题关键词描述调用 {dede:global.cfg_webname/} {dede:global.cfg_keywords/} {dede:global.cfg_description/} 列表页标题关键词描述调用 {dede:field.title/}_{dede:global.cfg_webname/} {dede:field name='keywords'/} {dede:field name='description' function='html2text(@me)'/} 详情页标题关键词描述调用 {dede:field.title/}_{dede:global.cfg_webname/} {dede:field.keywords/} {dede:field.description function='html2text(@me)'/}
首页用这个带选中样式:
<li {dede:field name=typeid runphp="yes"}(@me=="")? @me=" class='active'":@me="";{/dede:field}> <a href="{dede:global.cfg_indexurl/}">首页</a> </li>
dede开头写的三句代码:
<title>{dede:global.cfg_webname/}</title> <meta name="description" content="{dede:global.cfg_description/}" /> <meta name="keywords" content="{dede:global.cfg_keywords/}" />
引入样式表:
<link rel="stylesheet" href="/skin/css/commons.95f140f0.chunk.css" />
头部调用:
{dede:include filename="header.htm"/}
1.遍历一级栏目名称:
<div id="nav"> <div class="auto"> <a href="/dede/">首页</a> {dede:channel type='top' row='8'} <a href='[field:typelink/]' target="_blank">[field:typename/]</a> {/dede:channel} <div style="clear:both;"></div> </div> </div>
遍历手机版一级栏目循环:
列表页:
{dede:channel type='top' row='10' typeid='2' } <li><a href='list.php?tid=[field:id/]'>[field:typename/]</a></li> {/dede:channel}
遍历二级栏目名称:
{dede:channel type='son'} <li class="fl"><a href="[field:typelink/]">[field:typename/]</a></li> {/dede:channel}
[field:typename/] 栏目名称
[field:typelink/] 栏目的url地址(绝对路径)
type表示需要取出的栏目的类型,顶级栏目(top),子栏目(son,需要配合typeid)
row表示取出几条栏目
使用在首页:
调用出网站的顶级栏目
使用在列表页:
{dede:channel type='son'}
<li><a href='[field:typeurl/]'>[field:typename/]</a></li>
{/dede:channel}
表示调用出当前栏目的子栏目的信息
列表分页:
<!--栏目list开始--> <ul class="page_list"> {dede:list titlelen='55' row='10'} <li> <div class="pg_li_hd"> <a href="[field:arcurl/]" class="pg_hd_a fl">[field:title/]</a> <a href="[field:arcurl/]" class="pg_hd_fx fr">分享</a> <div class="clear"></div> </div> <div class="pg_li_min"> <a href="[field:arcurl/]" class="pg_li_img min_img fl"> <img src="[field:litpic/]" alt=""> </a> <div class="pg_li_text fr"> <p class="fl">[field:description /]</p> <p class="fr">时间: [field:pubdate function=strftime('%Y-%m-%d',@me)/]</p> <div class="clear"></div> </div> <div class="clear"></div> </div> </li> {/dede:list}
<div class="dede_pages" style="margin-top: 20px; margin-bottom: 20px;"> <ul class="pagelist"> {dede:pagelist listitem="info,index,end,pre,next,pageno" listsize="5"/} </ul> </div>
<style type="text/css"> .dede_pages ul{ float:left; padding:12px 0px 12px 16px; } .dede_pages ul li{ float:left; font-family:Tahoma; line-height:17px; margin-right:6px; border:1px solid #E9E9E9; } .dede_pages ul li a{ float:left; padding:2px 4px 2px; color:#555; display:block; } .dede_pages ul li a:hover{ color:#690; text-decoration:none; padding:2px 4px 2px; } .dede_pages ul li.thisclass, .dede_pages ul li.thisclass a,.pagebox ul li.thisclass a:hover{ background-color:#F8F8F8; padding:2px 4px 2px; font-weight:bold; } .dede_pages .pageinfo{ line-height:21px; padding:12px 10px 12px 16px; color:#999; } .dede_pages .pageinfo strong{ color:#555; font-weight:normal; margin:0px 2px; } .viewbox .dede_pages{ width:712px; float:none; overflow:hidden; text-align:center; } .viewbox .dede_pages ul{ margin:0px auto; float:none; clear:both; overflow:hidden; text-align:center; white-space:nowrap; } .viewbox .dede_pages ul li,.viewbox .dede_pages ul li a{ float:none; display:inline; } </style> </ul>
2.types标签 (调用单个栏目显示)
{dede:type typeid='39'} [field:typename /]{/dede:type} //调用指定栏目的名称
{dede:global.cfg_cmsurl/}/plus/list.php?tid=3 //指定栏目的链接
栏目变量当点击时自动检测当前id显示相对应的栏目名称:
{dede:type} <a href="javascript:">[field:typename /]</a> {/dede:type}
当前位置:
{dede:field name='position'/}
列表页:
调用出当前栏目的位置。
文档页:
同上
用在首页:
指定typeid调用出对应的栏目信息
调用出某个栏目的名称和进入某个栏目:
<li class="fl">
<a href="{dede:global.cfg_cmsurl/}/plus/list.php?tid=3" title="">{dede:type typeid='3'}[field:typename /]{/dede:type}</a>
</li>
3.调用文章显示:
{dede:arclist flag='f' titlelen='55'} <li> <a href="[field:arcurl/]" title="" class="img"><img src="[field:litpic/]" ></a> <div class="news_js"> <a href="[field:arcurl/]" title="">[field:title/]</a> //调用栏目名称和栏目地址的变量 </div> <p>[field:description /]</p> //调用简介的字段 </li> {/dede:arclist}
会用到的变量:
[field:title/] //调用标题
[field:arcurl/] //调用地址
[field:description /] //调用简介
[field:pubdate function=strftime('%Y-%m-%d',@me)/] //调用时间 [field:pubdate function="MyDate('Y.m.d',@me)"/]
[field:litpic/] //调用缩略图
{dede:global.cfg_cmsurl/}/plus/list.php?tid=3 //进入某个栏目的链接地址。
遍历循环文章内容是加个判断来添加不同样式:
{dede:arclist typeid= '7' titlelen='55' limit='0,2' row='2'} <li> <div [field:global name=autoindex runphp="yes"](@me==1)? @me="class='news_img_text fl' ":@me="class='news_img_text fr' ";[/field:global]"> <a href="[field:arcurl/]">[field:title/]</a> <p>[field:description /]</p> </div> <a [field:global name=autoindex runphp="yes"](@me==1)? @me="class='news_img_img min_img fr' ":@me="class= 'news_img_img min_img fl' ";[/field:global] href="[field:arcurl/]" class="news_img_img min_img fr"> <img src="[field:litpic/]" alt=""> </a> <div class="clear"></div> </li> {/dede:arclist}
limit='0,2' row='2' //从第0条文章开始取取两条。
limit='2,5' row='5' //从第2条文章开始取取5条
数字1,2,3,4,5,6,7等的输出:
[field:global.autoindex/]
友情链接的调用:
<div class="fd_lk_hd"> 友情链接 </div> <ul class="fd_lk_ul"> {dede:flink row='24' type='text' titlelen="24" typeid="0"} <li class="fl">[field:link /]</li> {/dede:flink} <div class="clear"></div> </ul>
头部尾部调用:
{dede:include filename="head.htm"/}
{dede:include filename="footer.htm"/}
到达首页的链接:
{dede:global.cfg_cmsurl/}
其他变量信息:
首页常用标签:
1.{dede:global.cfg_soft_lang/}
调用出网站的编码
2.{dede:global.cfg_webname/}
调用出网站的名称
3.{dede:global.cfg_description/}
调用出网站的描述信息
4.{dede:global.cfg_keywords/}
调用出网站的关键字
5.{dede:global.cfg_templets_skin/}
调用出默认模板文件的目录
6.{dede:global.cfg_cmsurl/}
调用出网站的目录,url地址
7.{dede:global.cfg_cmspath/}
调用出网站的所在路径
8.{dede:global.cfg_dataurl/}
调用出网站的data目录
9.{dede:global.cfg_basehost/} //首页的链接地址
调用出网站所在的域名
10.{dede:myad name='sifangku'/}
调用出对应的广告
name后面的值表示广告位标识
11.{dede:include filename='my_head.htm'/}
引入另外一个模板文件,只要在filename后面写上模板文件的名字就可以了
织梦添加新字段的方法:
这时候已经创建成功,添加一篇文章去试试吧。
解析来写下如何调用文章模型新增加的字段:
文章页调用字段的方法为:{dede:field.字段/}
所以新创建的字段文章页调用方法是:{dede:field.xingbie/}
列表页调用字段的方法为:[field:字段/]
所以新创建的字段列表中调用方法是:[field:xingbie/]
例:
{dede:arclist row='1' typeid='1' addfields='xingbie' channelid='1'}
[field:xingbie/]
{/dede:arclist}
addrields="字段一,字段二...",这里调用的是xingbie字段的内容。
channelid='1'模型编号,文章默认为1,查看位置:后台--核心--内容模型管理。
同样在{dede:list}里面也可以调用
详细看: https://www.genban.org/news/dedecms-8480.html
<div class="y_gd"> <table class="bg_tb"> <tr> <th>直销企业名称</th> <th>直销企业性质</th> <th>企业地址</th> <th>批准时间</th> <th>服务网点核查备案日期</th> </tr> {dede:arclist typeid='48' row='16' channelid='1' addfields='zxqymc,zxqyxz,qydz,pzsj,barq'} <tr> <td>[field:zxqymc/]</td> <td>[field:zxqyxz/]</td> <td>[field:qydz/]</td> <td>[field:pzsj/]</td> <td>[field:barq/]</td> </tr> {/dede:arclist} </table> </div>
织梦内容页:
{dede:field.title/} //文章标题
{dede:field.pubdate function="MyDate('Y-m-d H:i',@me)"/} //时间
{dede:field.writer/} //作者
{dede:field.source/} //来源
{dede:field.body/} //文章内容
<div class="tsys">{dede:prenext get='pre'/}</div> //上一篇
<div class="tsys">{dede:prenext get='next'/}</div> //下一篇
织梦单页面 频道封面页:
{dede:field.title/} //标题
{dede:field.content/} //内容
织梦添加字段后调用使用:(具体方法参考下面网站)
https://www.genban.org/news/dedecms-8480.html
织梦内容页点开后直接播放视频:(只需在src后面将要播放的视频链接变成个变量,从后台可以添加即可。)
<iframe frameborder="0" height="498" src="{dede:field.qydz/}" width="100%"></iframe>
dedecms 文章按权重排序问题:
{dede:arclist typeid='9' flag='j' row='200' channelid='1' addfields='zxqymc,zxqyxz,qydz,pzsj,barq' isweight="Y" orderby='weight' orderway='asc'} <tr> <td><a style="color: #000000;" href="[field:arcurl/]">[field:zxqymc/]</a></td> <td><a style="color: #000000;" href="[field:arcurl/]">[field:zxqyxz/]</a></td> <td><a style="color: #000000;" href="[field:arcurl/]">[field:qydz/]</a></td> <td><a style="color: #000000;" href="[field:arcurl/]">[field:pzsj/]</a></td> <td><a style="color: #000000;" href="[field:arcurl/]">[field:barq/]</a></td> </tr> {/dede:arclist}
织梦搜索功能实现:
<form action="../../plus/search.php" name="formsearch"> <div class="a"> <div class="cnt"> <input type="hidden" name="kwtype" value="0" /> <input id="searchValue1" name="q" type="text"> <button id="homeSearch1" onclick="return checkSearch('searchValue1');" type="submit" name="submit">Search</button> </div> </div> </form>
搜索模板是default文件夹下的search.htm
自定义模型中,有时候新增的字段会报以下的错误:
Fatal error:Call to a member function GetInnerText() on a non-object inD:phpStudyWWWkaisiwoincludecustomfields.func.php in line 539.
解决办法:
打开includecustomfields.func.php文件,找到539行:
把$fvalue = trim($ntag->GetInnerText());
替换成:$fvalue = ($ntag=="") ? trim($ntag) :trim($ntag->GetInnerText());
就可以了
数据库中进行删除数据库中数据表的字段sql语句:
alter table 表名 drop column 列名; //删除数据库中数据表的某个字段
织梦自定义图片的字段,被调用时显示别的样式修改:
templets》system》channel_article_image.htm
织梦列表页添加分页:
1.修改列表页分页的php文件路径: include-》arc.listview.class.php文件修改
2.分页html里的代码:
<!--产品列表开始--> {dede:list channelid='1' titlelen='200' row='8' pagesize='8'} <div class="proList"> <div class="proImg"> <div> <a href="[field:arcurl/]"> <img src="[field:litpic/]" border="0" alt="Q35y-25 Hydraulic iron worker(Double-Pump)" title="Q35y-25 Hydraulic iron worker(Double-Pump)"> </a> </div> </div> <div class="desc"> <h3> <a href="[field:arcurl/]">[field:title/]</a> </h3>[field:description /] </div> </div> {/dede:list} <!--产品列表结束--> <!----> <div class="pager"> {dede:pagelist listitem="info,pre,next,pageno" listsize="5"/} <style> .pager li{ display: none!important; } </style> </div> <!---->
织梦调用指定栏目下文章列表并分页
说明:织梦默认的分页(list)是在当前栏目下分页,但很多时候我们需要制定某些栏目下的列表分页,就需要调用好多指定的栏目列表并分页。
在这里我们就说一种最简单的方法吧,织梦除了自带当前栏目下分页还有指定多个栏目下的列表分页;
1、找到使用模版的栏目—>更改—>常规选项—>栏目交叉—>手工指定交叉栏目的id(用逗号分开)
2、使用默认的list调用即可,简单吧
{dede:list pagesize="10" orderby='pubdate' }
[field:title/]
{/dede:list}
{dede:pagelist listitem="info,index,end,pre,next,pageno" listsize="1"/}
(原文链接:https://www.genban.org/news/dedecms-553.html)
首页调用自定义字段:
首先要在首页调用自定义字段用到最多的是arclist标签:
{dede:arclist typeid='栏目id' channelid='模型的id' addfields='自定义字段的名称 ,多个用逗号隔开'}
[field:自定义字段名称/]
{/dede:arclist}
列表页调用可以直接在{list}标签中写:[field:自定义字段名称/] 即可。
有一点记得注意,需要在后台勾选:使字段可以在列表的底层模板中获得(自定义字段默认仅能在文档模板显示,启用此选项将使列表查询变慢,如无必要请不要选择)
不勾选在前台无法调用到。
循环遍历加判断显示不同样式:
{dede:arclist typeid= '6' titlelen='55' row='3'} <div class="a_u"> <img [field:global name=autoindex runphp="yes"](@me%2==0)? @me="class='a_v fr' ":@me="class='a_v fl' ";[/field:global] src="[field:litpic/]" /> <div [field:global name=autoindex runphp="yes"](@me%2==0)? @me="class='a_t fl' ":@me="class='a_t fr' ";[/field:global] > <div class="b_a">[field:pubdate function=strftime('%Y-%m-%d',@me)/]</div> <div class="b_b">[field:title/]</div> <div class="b_c">[field:description /]</div> </div> </div> {/dede:arclist}
自定义图片调用方法