<!--频道分类具体内容开始--><divclass="channel_sort">{dede:channelartlistcacheid='channelsonlist'}<h3><ahref="{dede:fieldname='typeurl'/}">{dede:fieldname='typename'/}</a></h3><ul>{dede:channeltype='son'row='10'noself='yes'}<li><ahref='[field:typeurl/]'[field:rel/]><span>[field:typename/]</span></a></li>{/dede:channel}</ul>{/dede:channelartlist}</div>【Channel标记】功能说明:用于获取栏目列表适用范围:封面模板、列表模板、文档模板(1)基本语法{dede:channelrow=''type=''}自定义样式模板(InnerText){/dede:channel}(2)属性[1]row='数字'表示获取记录的条数(通用在某级栏目太多的时候使用,默认是8)[2]type=top,sun/son,selftype='top'表示顶级栏目type='son'或'sun'表示下级栏目type='self'表示同级栏目其中后两个属性必须在列表模板中使用。==============================================dede:channel和dede:channelartlist这个怎么嵌套使用呀dede二级栏目调用{dede:channelartlistrow=6}<ahref='{dede:fieldname='typeurl'/}'>{dede:fieldname='typename'/}</a>一级栏目{dede:channeltype='son'row='10'currentstyle="<liclass='hover'><ahref='~typelink~'~rel~><span>~typename~</span></a><>"}<ahref='[field:typeurl/]'[field:rel/]>[field:typename/]</a>二级栏目{/dede:channel}{/dede:channelartlist}==============================================================在dede众多的标签中,可以嵌套的标签唯一只有channelArtlist了。虽然很多功能是想用嵌套来实现,dede不支持其他标签嵌套功能,但也是可以用别的方法可以实现的。。。了解更多的可以查看下面相关的文章嵌套一:<ul>{dede:channelArtlisttypeid='1'}<li>{dede:type}[<ahref="[field:typelink/]"><b>[field:typename/]</b></a>]{/dede:type}{dede:channeltype='son'}<ahref='[field:typelink/]'>[field:typename/]</a>{/dede:channel}</li>{/dede:channelArtlist}</ul>嵌套二:{dede:channelArtlisttypeid='0'}<divclass="AList">{dede:type}<h3><ahref="[field:typelink/]">>>[field:typename/]</a></h3>{/dede:type}<ul>{dede:arclistrow="8"titlelen='100'}<li><span>[field:pubdatefunction="MyDate('Y/m/d',@me)"/]</span><ahref="[field:arcurl/]"title="[field:titlefunction='html2text(@me)'/]">[field:titlefunction='(strlen("@me")>40?cn_substr("@me",40):"@me")'/]</a></li>{/dede:arclist}</ul></div>{/dede:channelArtlist}转自:http://dedepro.iteye.com/blog/1711557嵌套二已亲测成功。
这个功能经常用到,但是没有记录,今天找了一个比较不错的,快速,代码少方便的,记录下来以后可以用顺便记录下139邮箱smtp服务器:smtp.139.com端口:25经过测试,在dede5.7以后附件里的代码已经失效了。自己测试也不成功,经过尝试后,发现到可以用的,放在下面。$mailtitle="用户订单信息";//邮件标题$mailbody="称呼:{$name}\r\n邮箱:{$email}\r\n所在城市:{$city}\r\n国家:{$guojia}\r\n电话:{$tel}\r\n类别:{$qudao}";//$name中name是该input元素的id号$headers=$cfg_adminemail;//用我们刚才设置的管理员邮箱发送$mailtype='TXT';//邮件类型为文本类型require_once(DEDEINC.'/mail.class.php');//加载织梦的邮件库$smtp=newsmtp($cfg_smtp_server,$cfg_smtp_port,true,$cfg_smtp_usermail,$cfg_smtp_password);//创建smtp服务$smtp->debug=false;//不起用调试$smtp->sendmail($cfg_smtp_usermail,$cfg_webname,$cfg_smtp_usermail,$mailtitle,$mailbody,$mailtype);//发送邮件有几个要点:1.字段都要写到上面第三行里2.如果发送失败,可以尝试下面的方法第十五行换成:$cfg_smtp_usermail2="xxxx@qq.com";$smtp->sendmail($cfg_smtp_usermail2,$cfg_webname,$cfg_smtp_usermail,$mailtitle,$mailbody,$mailtype);以上资料来自:http://www.xhcss.com/xh/dedecms/question/17.html2014-7-18日测试有效,dede5.7
1.首先修改plus/diy.php在if($fieldinfo[1]=='textdata'){${$fieldinfo[0]}=FilterSearch(stripslashes(${$fieldinfo[0]}));${$fieldinfo[0]}=addslashes(${$fieldinfo[0]});}后面添加if($fieldinfo[0]=='ip'){${$fieldinfo[0]}=GetIP();}if($fieldinfo[0]=='time'){${$fieldinfo[0]}=date("Y-m-dH:i:s");}if($fieldinfo[0]=='laiyuanyemian'){${$fieldinfo[0]}=curPageURL();}2.在plus/diy.php上方添加以下代码,如果要获取来源地址的话<?php//说明:获取完整URLfunctioncurPageURL(){$pageURL='http';if($_SERVER["HTTPS"]=="on"){$pageURL.="s";}$pageURL.="://";if($_SERVER["SERVER_PORT"]!="80"){$pageURL.=$_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];}else{$pageURL.=$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];}return$pageURL;}?>在自定义字段里添加字段IP地址:ip提交时间:time(字段名称一定要和diy.php添加的字段名一致)在表单中调取<inputname="ip"id="ip"value=""type="hidden"><inputname="time"id="time"value=""type="hidden">type='hidden'为隐藏字段,在前端不显示,用户提交后台会自动获取IP和时间选自:http://www.aiffo.com/z/dede/43.html以上信息如果获取不到来源页面还有以下思路,已经亲测成功:在if($fieldinfo[1]=='textdata'){${$fieldinfo[0]}=FilterSearch(stripslashes(${$fieldinfo[0]}));${$fieldinfo[0]}=addslashes(${$fieldinfo[0]});}后面添加if($fieldinfo[0]=='ip'){${$fieldinfo[0]}=GetIP();}if($fieldinfo[0]=='time'){${$fieldinfo[0]}=date("Y-m-dH:i:s");}if($fieldinfo[0]=='laiyuanyemian'){${$fieldinfo[0]}=$_SERVER['HTTP_REFERER'];}然后表单字段设置为laiyuanyemian即可2018.06.23
dedecms的arclist标签下调用自定义字段{dede:arclistpagesize='12'typeid='10'channelid='2'addfields='wuxing,shuzi,ptitle,palt,tlink'}<dd><ahref="http://[field:tlink/]"><imgclass="img"src="[field:litpic/]"alt="[field:palt/]"title="[field:ptitle/]"/></a></dd><ul><li><ahref="http://[field:tlink/]"title="[field:ptitle/]">[field:title/]</a></li><li><imgsrc="/image/sc.jpg"alt=""title=""></li><li>[field:description/]</li><li><spanclass="red">[field:wuxing/]</span><br><li><spanclass="red">[field:shuzi/]</span></li><p><ahref="http://[field:tlink/]"target="_blank"><imgsrc="/image/xq.gif"alt="查看详情"title="查看详情"></a></p></ul>{/dede:arclist}注:要获取附加表内容,必须符合两个条件1、指定channelid属性2、指定要获得的字段addfields='字段1,字段'如:{dede:arclistaddfields='filetype,language,softtype'row='8'channelid='3'}[field:textlink/]-[field:softtype/]<br/>{/dede:arclist}dedecms高级搜索调用缩略图{dede:fieldname='litpic'/}dedecms去后台验证码DATA文件夹里的\safe\inc_safe_config.php$safe_gdopen=’1,2,3,4,5,6′;这句代码“6”删除了,就可以了。dedecms密码重置见附件:radminpass.rardede的php当前时间加/减天当前时间:{dede:phprunphp='yes'}$ntime=time();@me=MyDate('Y-m-d',$ntime);{/dede:php}当前时间减1天:{dede:phprunphp='yes'}$ntime=time();@me=MyDate('Y-m-d',strtotime('-1day'),$ntime);{/dede:php}详情查看php的strtotime()函数。dede自定义表单提交后直接弹出对话框plus/diy.php查找$goto='/';$bkmsg='发布成功,请等待管理员处理...';修改为:echo'<script>alert("发布成功,请等待管理员处理...");history.go(-1);</script>';dede后台自定义表单一页显示50条后台/diy_list.php查找$datalist->pageSize=10;修改为:$datalist->pageSize=50;dede后台自定义表单全选功能后台/templets/diy_list.htm查找<b>内容列表</b>在后添加:<script>functionSelectAll(){varcheckboxs=document.getElementsByName("id[]");for(vari=0;i<checkboxs.length;i++){vare=checkboxs[i];e.checked=!e.checked;}}</script><ahref="#"onclick="SelectAll()">全选/反选</a>dede标题不受字数限制[field:fulltitle/]其中titlelen=’24′控制的是标题[field:title/]的字数为12个汉字,[field:fulltitle/]控制鼠标划过时提示完整标题名称。这样,无论是搜索引擎还是目标访客都相当友好了dede按权重排序{dede:arclistrow='10'titlelen='34'isweight="Y"orderby='weight'typeid='3'idlist=''}我们在使用orderby='weight'时需要在前面加上isweight="Y"来开启权重的使用参考:http://jingyan.baidu.com/article/93f9803f0efb98e0e46f552c.html{dede:list}增加按权重排序标签1、打开\include\目录中的arc.listview.class.php文件,搜索“排序方式”,然后在elseif($orderby=="lastpost"){$ordersql="orderbyarc.lastpost$orderWay";}elseif($orderby=="weight"){$ordersql="orderbyarc.weightasc";}else{$ordersql="orderbyarc.sortrank$orderWay";}这段代码中间添加以上红色代码。4、向下找到if(ereg('hot|click|lastpost',$orderby))或者是if(preg_match('/hot|click|lastpost/',$orderby))修改成if(ereg('hot|click|lastpost|weight',$orderby))或者是if(preg_match('/hot|click|lastpost|weight/',$orderby)),保存文件。这个时候在列表页里就可以使用{dede:listpagesize='5'orderby='weight'}进行排序了。dede导航栏顶级栏目和二级栏目同时调用{dede:channelartlisttypeid='top'}<ahref="{dede:fieldname='typeurl'/}">{dede:fieldname='typename'/}</a>{dede:channeltype='son'noself='yes'}<div><ahref="[field:typelink/]">[field:typename/]</a></div>{/dede:channel}{/dede:channelartlist}自定义模型,在arclist中调用自定义字段只需要在arclist中增加两个属性:1.channelid也就是模型的id,必须2.addfields需要调用的字段名,必须例如:{dede:arclistchannelid=18addfields='stname'}stname:[field:stname/]{/dede:arclist}注意,需要在模型设置中,对应的字段开启“允许在列表底层中调用,默认只在文档模板中调用”的选项dede数字递增,+后面加数字[field:globalname=autoindexrunphp="yes"]@me=@me+1;[/field:global]清空DEDE自定义表单所有数据TRUNCATETABLE`dede_diyform1;直接调用上一篇地址和下一篇地址的代码如下上一篇地址{dede:prenextget='pro'runphp="yes"}preg_match_all('/<a.*?(?:|\\t|\\r|\\n)?href=[\'"]?(.+?)[\'"]?(?:(?:|\\t|\\r|\\n)+.*?)?>(.+?)<\/a.*?>/sim',@me,$strResult,PREG_PATTERN_ORDER);@me=$strResult[1][0];{/dede:prenext}下一篇地址{dede:prenextget='next'runphp="yes"}preg_match_all('/<a.*?(?:|\\t|\\r|\\n)?href=[\'"]?(.+?)[\'"]?(?:(?:|\\t|\\r|\\n)+.*?)?>(.+?)<\/a.*?>/sim',@me,$strResult,PREG_PATTERN_ORDER);@me=$strResult[1][0];{/dede:prenext}dede调用二三级菜单{dede:channelartlisttypeid='11'}<liclass="por_content_c"><ahref="{dede:fieldname='typeurl'/}"title="{dede:fieldname='typename'/}">{dede:fieldname='typename'/}</a></li>{dede:sqlsql='Select*from#@__arctypewherereid=~id~ORDERBYidlimit0,200'}<liclass="por_content_c1"><ahref="[field:typedir/]/">[field:typename/]</a></li>{/dede:sql}{/dede:channelartlist}id为需要调用二三级菜单的一级菜单ID如果单独指定调用一个或者多个栏目的话{dede:channelartlisttypeid='1,2'}在里面指定你需要调用的id即可,如:{dede:channelartlisttypeid='1'}<liclass="por_content_c2"><ahref="{dede:fieldname='typeurl'/}"title="{dede:fieldname='typename'/}">{dede:fieldname='typename'/}</a></li>{/dede:channelartlist}也可以用sql直接调用单独栏目的子栏目附带一些css容易忘的:鼠标移动变小手:style="cursor:pointer;
dede用sql调用一个mysql时间,mysql的时间字段是时间戳展示的,突然不知道咋转换了,有点迷茫,结果找了下,发现其实很简单,直接用dede的就行了,如下:完整时间:[field:datelinefunction="GetDateMK(@me)"/]可以参考dede默认的时间调用,进行修改([field:pubdatefunction=MyDate('m-d',@me)/]):调用如:(10-15)([field:pubdatefunction=MyDate('Y-m-d',@me)/]):调用如:(2010-10-15)([field:pubdatefunction="GetDateTimeMK(@me)"/]):调用如:(2010-10-1514:36:08)[field:datelinefunction=MyDate('m-d',@me)/]
在dedecms系统后台,分别设置了三处地方,如下: 1、我copy了普通文章模型,增加了一个字段。允许投稿,级别为注册会员,组别不限制 2、新建一个栏目,内容模型为此模型,且允许投稿 3、在系统设置->基本参数->会员设置中“是否开放会员对自定义模型投稿:”选择了“是” 测试,注册一个会员,系统模型的栏目都可以投稿,无法选择到(就是不显示)自定义模型的栏目 解决方法: 先找到你自定义频道的ID,比如是17,在/member/目录下复制一个article_add.php并重命名这个文件为article_add1.php,打开编辑它,找到第7行$channelid=isset($channelid)&&is_numeric($channelid)?$channelid:1;把最后的1改成17,即可,再编辑member/templets/下的menu.php,把投稿的连接指向article_add1.php即可,同理其他的模型也可以这么增加上面转录的,但是其中有个错误。$channelid=isset($channelid)&&is_numeric($channelid)?$channelid:1;后面的1不应改成channelid,而是应该改成自定义模型的ID,其他的都基本正确。
使用dede调用随机文章可以很好的利于SEO优化。因为随机文章可以使得你的首页或者其他页面可以每次打开都不一样。这样蜘蛛就会认为你是每次都更新的。那么下面是随机文章标签的使用方法:{dede:arclistorderby='rank'}[field:textlink/]{/dede:arclist}还有一种(这一种,每一篇文章都会不一样的随机,比较好):<divclass="commendmt1"><dlclass="tboxlight"><dtclass='light'><strong>随机推荐</strong></dt><ddclass='light'><ulclass="c1ico2">{dede:arclisttitlelen=44row='55'tagid='suijituijian'pagesize='11'orderby=rand}<liclass='dotline'>[<ahref="[field:typelink/]"style="color:#338800">[field:typename/]</a>]<ahref="[field:arcurl/]">[field:title/]</a></li>{/dede:arclist}</ul><divclass="c_page">{dede:arcpagelisttagid='suijituijian'/}</div></dd></dl></div>
Dedecmschannel标签指定typeid时currentstyle无效的修复办法123{dede:channeltype='son'row='8'currentstyle="<li><ahref='~typelink~'class='thisclass'>~typename~</a></li>"}<li><ahref='[field:typelink/]'>[field:typename/]</a></li>{/dede:channel}这种调用方式currentstyle有效但是:123{dede:channeltype='son'row='8'typeid=1currentstyle="<li><ahref='~typelink~'class='thisclass'>~typename~</a></li>"}<li><ahref='[field:typelink/]'>[field:typename/]</a></li>{/dede:channel}这种调用方式currentstyle就无效了论坛里有人说用把typeid=xxx改成channelid=1,简直是无稽之谈。完美解决办法:修改include/taglib/channel.lib.php1if(($row['id']==$typeid||($topid==$row['id']&&$type=='top'))&&$currentstyle!='')改成1if(($row['id']==$refObj->TypeLink->TypeInfos['id']||($topid==$row['id']&&$type=='top'))&&$currentstyle!='')转自:http://www.zhimengba.com/jsjc/180.html