DedeCMS织梦常见参数修改(三)
21.dedecms5.7修改文章内容的同时不修改发表日期时间。
/dede/templets/article_edit.htm
365行左右把
$nowtime = GetDateTimeMk(time());
改成
$nowtime = GetDateTimeMk($arcRow["pubdate"]);
关于织梦将文章审核时间与发布日期同步的修改方法
http://blog.sina.com.cn/s/blog_80a856e50100vudp.html
22.织梦后台 栏目内容里边的列表 的更新时间 按照修改的来(DEDE后台文章排序按文章发布时间)
修改
/dede/content_list.php 文件
查找
$orderby = empty($orderby) ? ‘id’ : eregi_replace("[^a-z0-9]", "", $orderby);
修改为
$orderby = empty($orderby) ? ‘pubdate’ : eregi_replace("[^a-z0-9]", "", $orderby);
到后台模版目录下 修改 /dede/content_list.htm 文件
查找
<td>{dede:field.senddate function=’GetDateMk(@me)’/}</td>
修改为
<td>{dede:field.pubdate function=’GetDateMk(@me)’/}</td>
23.infolen简介控制字数没有效果的解决方法(description等同于infos)
在列表页 description=infos 在文章页 只用description不用infos
Ⅰ.字数变少
①.底层标签[field:description/] 改成[field:infos/]
②.[field:description function='cn_substr(@me,66)'/]
Ⅱ.字数变多
①修改 系统--系统基本参数--其它选项 里的自动摘要长度 如改为 600
②修改 数据表 dede_archives下的 description的结构 把varchar(250)改成varchar(600)
③修改 dede/article.edit.php
第113行 $description = cn_substrR($description,250);
修改为 $description = cn_substrR($description,600);或者$description = $description;
24.织梦留言板的研究
①通过自定义表单(可在前后台查看,缺点是管理员不能回复)
dedecms自定义表单模板:
templets/plus/view_diyform.htm内容模板
templets/plus/post_diyform.htm发布模板
templets/plus/list_diyform.htm 列表模板
1. 建个自定义表单
2. 点击 前台预览 -- 发布信息
3. 查看源码 找到<form 开始 及 </form>之间的代码 复制下来
4. 这里我们测试 把他放到首页的模版里:
放在{dede:include filename="head.htm"/}(仅测试玩)
参考链接:http://dedecms8.blog.163.com/blog/static/167685605201051251927196/
拓展:
目前所做的留言一般用自定义表单.
如(科瑞达:http://www.colouroad.com/kefu/3/;威达龙:http://www.weidalong.com/tsjy/;三夏:http://samsummercom.host.tedaweb.com/China/contact/2/;新宇酒店:http://xysdjdcom.host.tedaweb.com/a/lxwm/2/;)
在后台选项卡中添加 留言菜单 (详见问题10)可直接调用文件下的 index_menu2.htm和 inc_menu.php
②通过织梦自带的留言簿模块(可查看,也可回复)
先安装留言簿模块。/plus/guestbook.php 模板 /templets/plus/guestbook.htm 自己修改模板就行.
或者手写一个模板 form 提交的时候 到 /plus/guestbook.php 类似guestbook.htm 格式来.
③插件评论啦 微博、QQ、人人直接评论 能用Q登陆发布的留言(互联网那点事)
http://pinglun.la/ 在其注册一个号 账号:qiwen5de@126.com 密码:111111
插入类似这种代码:
<!-- PingLun.La Begin -->
<div id="pinglunla_here"></div><a href="http://pinglun.la/" id="logo-pinglunla"></a><script type="text/javascript" src="http://pinglun.la/64f1072ea891893f199aabf132c248c53e9a640a.js" charset="utf-8"></script>
<!-- PingLun.La End -->
④织梦自带的评论
见文件夹下的ajax.htm放在默认的模板下
ajaxfeed.css放在\templets\default\style下
调用评论插件:{dede:include file='ajaxfeedback.htm' /}
feedback
功能说明:用于调用最新评论
{dede:feedback}
<ul>
<li class='fbtitle'>[field:username function="(@me=='guest' ? '游客' : @me)"/] 对 [field:title/] 的评论:</li>
<li class='fbmsg'> <a href="plus/feedback.php?aid=[field:aid/]" class='fbmsg'>[field:msg /]</a></li>
</ul>
{/dede:feedback}
织梦首页
{dede:feedback row='5' titlelen='24' infolen='80'}
<li> <small><a href="#" class="username">[field:username function="(@me=='guest' ? '游客' : @me)"/]</a> 评论 <a href="[field:global.cfg_phpurl/]/feedback.php?aid=[field:aid/]" class="title">[field:title/]</a></small>
<p>[field:msg/]</p>
</li>
{/dede:feedback}
25.给自定义表单添加验证码
①.首先找到 /plus/diy.php
在头部引入文件
require_once(DEDEINC.'/membermodel.cls.php');
然后找到
elseif($do == 2)
{
这里,加入验证代码
//验证码验证
$svali = GetCkVdValue();
if(preg_match("/1/",$safe_gdopen)){
if(strtolower($vdcode)!=$svali || $svali=='')
{
ResetVdValue();
ShowMsg('验证码错误!', '-1');
exit();
}
}
②.在你要引入自由表单的模板页面中加入验证码
<input type="text" class="intxt w200" style="width: 50px; text-transform: uppercase;" id="vdcode" name="vdcode"/>
<img id="vdimgck" align="absmiddle" onclick="this.src=this.src+'?'" style="cursor: pointer;" alt="
看不清?点击更换" src="/include/vdimgck.php"/> 看不清? <
a href="javascript:void(0)" onclick="changeAuthCode();">点击更换</a&
gt;
关于自定义表单怎么在模板页中使用,自定义表单怎么验证,就不再说了
设置自定义表单中的字段为必填项
①.php验证
在plus/diy.php的第40行下加
//增加必填字段判断
if($required!=''){
if(preg_match('/,/', $required))
{
$requireds = explode(',',$required);
foreach($requireds as $field){
if($$field==''){
showMsg('带*号的为必填内容,请正确填写', '-1');
exit();
}
}
}else{
if($required==''){
showMsg('带*号的为必填内容,请正确填写', '-1');
exit();
}
}
}
//end
②.在模板的表单增加
<input type="hidden" name="required" value="name,qq" />
参考网站:http://www.dedecms8.com/dedecms/2845.html
总结自定义表单(发布留言验证码,发布日期,验证必填项) 9 24 25
26.用field调用站点根网址 插件 评论啦使用
① {dede:global.cfg_basehost/} 127.0.0.1
② [field:global name='cfg_webname'/] 127.0.0.1
例:http://www.alibuybuy.com/category/collection
列表页:
{dede:list}
<script type="text/javascript">document.write('<script type="text/javascript" src="http://pinglun.la/64f1072ea891893f199aabf132c248c53e9a640a/cc.js?t=%EF%BC%88%7Bcount%7D%E4%B8%AA%EF%BC%89&o=1&p='+encodeURIComponent("[field:global name='cfg_basehost'/][field:arcurl/]")+'" charset="utf-8"></'+'script>')</script>
{/dede:list}
文章页:
<script type="text/javascript">document.write('<script type="text/javascript" src="http://pinglun.la/64f1072ea891893f199aabf132c248c53e9a640a/cc.js?t=%EF%BC%88%7Bcount%7D%E6%9D%A1%EF%BC%89&o=1&p='+encodeURIComponent("{dede:global.cfg_basehost/}{dede:field.arcurl/}")+'" charset="utf-8"></'+'script>')</script>
27.安装织梦的时候 GD库不支持
GD是php的图片扩展,是用来操作图片的,平时用的验证码,图片上打水印都得gd库支持
修改dede/login.php和dede/templets/login.htm 判断后台验证码
login.php
67行 if{ 下边注释掉
/*ResetVdValue();
ShowMsg('验证码不正确!','login.php',0,1000);
exit;
} else {*/
login.htm 27行 注释掉
<!--<?php
if(preg_match("/6/",$safe_gdopen))
{
?>
<dt>验证码:</dt>
<dd><input id="vdcode" type="text" name="validate" style="text-
transform:uppercase;"/><img id="vdimgck" align="absmiddle" onClick="this.src=this.src+'?'" style="cursor: pointer;" alt="
看不清?点击更换" src="../include/vdimgck.php"/>
<a href="#" onClick="changeAuthCode();">看不清? </a></dd>
<?php
}
?>-->
28.织梦列表页(自定义模型,附加表字段)
列表页:
{dede:list pagesize='3'}
[field:xinxi/]
[field:xm/]
{/dede:list}
织梦的内容页:可以直接使用 {dede:field.xinxi/}与{dede:field.xm/}
文章页:用arclist调用于附加表字段的方法:
要获取附加表内容,必须符合两个条件
1、指定 channelid 属性
2、指定要获得的字段 addfields='字段1,字段'
如:
{dede:arclist addfields='filetype,language,softtype' row='8' channelid='3'}
[field:textlink /] - [field:softtype /]<br />
{/dede:arclist}
29.织梦的首页、封面页arclist分页标签示例 参考网址(http://bbs.dedecms.com/258534.html)
①首先必须在首页的</head>前面加上:
<script language="javascript" type="text/javascript" src="{dede:global.cfg_cmsurl/}/include/dedeajax2.js"></script>
②必须引入以下javascript代码:
<script>
function multi(pagenum,tagid)
{
var taget_obj = document.getElementById(tagid);
var taget_obj_page = document.getElementById("page_"+tagid);
myajax = new DedeAjax(taget_obj,false,false,'','','');
myajax.SendGet2("/plus/arcmulti.php?mtype=0&pnum="+pagenum+'&tagid='+tagid);
myajax = new DedeAjax(taget_obj_page,false,false,'','','');
myajax.SendGet2("/plus/arcmulti.php?mtype=1&pnum="+pagenum+'&tagid='+tagid);
DedeXHTTP = null;
}
</script>
③在arclist标签中必须含有tagid与pagesize参数。 第一个是缓存名,第二个是单页条数;例如:
{dede:arclist tagid='index' pagesize='5'}
<li><b><a href="[field:arcurl/]" style="color: #FF6633">[field:title/]</a></b></li>
<p class="my_tj_info">[field:info/]...</p>
{/dede:arclist}
④必须存在arcpagelist标签,且必须声明缓存参数tagid且缓存参数与arclist中tagid保持一致。例如:
{dede:arcpagelist tagid='index'/}
现在贴上一个完整代码供大家测试参考:
<script language="javascript" type="text/javascript" src="{dede:global.cfg_cmsurl/}/include/dedeajax2.js"></script>
<script>
function multi(pagenum,tagid)
{
var taget_obj = document.getElementById(tagid);
var taget_obj_page = document.getElementById("page_"+tagid);
myajax = new DedeAjax(taget_obj,false,false,'','','');
myajax.SendGet2("/plus/arcmulti.php?mtype=0&pnum="+pagenum+'&tagid='+tagid);
myajax = new DedeAjax(taget_obj_page,false,false,'','','');
myajax.SendGet2("/plus/arcmulti.php?mtype=1&pnum="+pagenum+'&tagid='+tagid);
DedeXHTTP = null;
}
</script>
{dede:arclist tagid='index' pagesize='5'}
<li><b><a href="[field:arcurl/]" style="color: #FF6633">[field:title/]</a></b></li>
<p class="my_tj_info">[field:info/]...</p>
{/dede:arclist}
{dede:arcpagelist tagid='index'/}
30.织梦arclist 列表页调出的是 当前栏目下的文章。
调用所有栏目下的文章,给arclist一个属性 typeid='top'
已有 3 条评论