dedecms的channelartlist是一个很有用的标签,可以一次调用多个栏目,进行循环输出。例如:
{dede:channelartlist typeid="9,6,3"} <a href="{dede:field name='typeurl'/}">{dede:field name='typename'/}</a> {dede:arclist row=6 titlelen=30 } <li><a href="[field:arcurl/]" title="[field:title/]" target="_blank">[field:title/]</a></li> {/dede:arclist} {/dede:channelartlist}
有时候,我们想让栏目的出现顺序不按栏目id排列,而是手动指定。但是channelartlist标签是按照栏目id从小到大输出的,那么怎么改呢,打开/include/taglib/channelartlist.lib.php,找到79行的
sortrank ASC
替换成
FIELD(id,$typeid)
保存之后就ok了~
dedecmschannelartlist如何按typeid指定顺序排列
有时候我们可能只有网站后台,没有ftp和服务器管理权限。这时候如果要修改网站文件,可以使用 dedecms后台的“文件管理器”功能。
刚才一位朋友说他用的是二次开发的 dedecms后台,菜单里找不到文件管理器。于是我找了下文件管理器使用的php文件,这个文件是后台目录里的file_manage_main.php。输入此文件的url就可以正常使用文件管理器。
示例:
http://ex.com/dede/file_manage_main.php http://ex.com/dede/file_manage_main.php?activepath=%2Fskin%2Fcss
在 dedecms后台管理网站文件
dedecms后台有自定义表单功能,将前台表单数据保存到后台里。但是要查看只能去后台看,时间长了感觉非常的麻烦。于是我找到了将表单信息自动发送到邮箱的办法。
1.确保你有个开启了IMAP/SMTP功能的邮箱。
2.在 dedecms后台→系统→系统基本参数→核心设置中,设置你邮箱的smtp信息。
这里填好就行了,设置里有个“网站发信EMAIL”不用管。
3.在 dedecms的plus文件夹下找到diy.php,在85行的位置有如下语句:
$query = "INSERT INTO `{$diy->table}` (`id`, `ifcheck` $addvar) VALUES (NULL, 0 $addvalue); ";
在其下方添加发送邮件的代码即可(前两行要自己设置一下):
$mailtitle = "信息表单";//邮件标题 $mailbody = "姓名:{$name}\r\n联系方式:{$lianxi}";//花括号里是该元素的name属性 $headers = $cfg_adminemail;//用我们刚才设置的管理员邮箱发送 $mailtype = 'TXT';//邮件类型为文本类型 require_once(DEDEINC.'/mail.class.php');//加载 dedecms的邮件库 $smtp = new smtp($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);//发送邮件(收件人,网站名,发件人,邮件标题,邮件内容,邮件类型)
注意,第二行里按需填写表单控件的name值。如果你有很多表单项,可以一个个都写出来。
至此,当有表单提交时, dedecms就会自动往邮箱里发一封邮件了(自己往自己邮箱里发一封邮件)。
Read More →
dedecms使用smtp将表单信息发送到邮箱
刚才在某网站后台操作,结果登陆进去之后,点什么都没反应,等好久了才返回一个超时信息:
喜闻乐见的 Fatal error: Maximum execution time of 30 ……
解决办法是找到dede\templets\index_body.htm,把第一个行内脚本注释掉就好了。
dedecms后台卡死基本都可以这么解决。我经常在网站搬家后出现这个情况。
dedecmsuserlogin.class.php 超时的解决办法
dedecms的用户信息储存在dede_admin表(视具体情况,表前缀可能不同)中。用户名是明文的,密码是MD5值。重点是这个md5值。
首先打开MD5加密工具,选择加密模式为32位(小)。这个“小”代表生成的MD5值是小写。因为 dedecms在这里区分大小写,所以我们必须选择小写。
输入密码并转换,我们就得到了32位的MD5值。但是数据库里只需要20位的值,我们需要去掉前5位、后7位的字符,将中间部分留下,之后去数据库中修改即可。
在phpmyadmin中修改 dedecms的用户和密码
一个 dedecms后台的网站,现在要把网站所有文章里的某些文字替换,我们可以到后台的“数据库内容替换”里,选择以下几个地方替换即可。
更新:还是写个 SQL 吧,更方便一些;
/* 替换文章正文 */ UPDATE `dede_addonarticle` SET `body`=replace(body,'old','new'); /* 替换文章标题 */ UPDATE `dede_archives` SET `title`=replace(title,'old','new'); /* 替换文章简介 */ UPDATE `dede_archives` SET `description`=replace(`description`,'old','new'); /* 替换栏目内容 */ UPDATE `dede_arctype` SET `content`=replace(content,'old','new');
1.dede_addonarticle表中的body字段,这是文章的正文。
dedecms后台批量替换网站文字
有时候在本地同时安装了多个 dedecms,后来安装的 dedecms会产生“cms安装路径”这一项。例如说本地的wwwroot文件夹是放网站的,但是现在该文件夹下放了多个网站,如website1、website2,都是分别建立文件夹存放的,在这些网站的后台就会有生“cms安装路径”这一项,而且不能去掉,否则会产生混乱。等到把网站做好上线的时候,会发现数据库里备份的附件目录路径是这样的:/website1/uploads,而不是原本的/uploads。这时候我们可以修改本地备份的数据库文件来解决。
在备份文件中找到addonarticle、archives、arctype、uploads表的文件(如果添加了文章的还有其他表,也找出来),把所有/website1/uploads替换成/uploads,之后保存,再恢复数据,附件目录就不受“cms安装路径”的影响了。
还有sysconfig表,是系统设置,把cms安装目录参数改成空,主页参数改成'/'。
dedecms从数据库备份文件修改附件路径
自定义表单我们一般都是搜集信息之后在后台看的。如果要在前台展示,可以用以下方法调用:
{dede:loop table='dede_diyform1' sort='id' row='5' if=''} [field:youname/] {/dede:loop}
其中'dede_diyform1'为自定义表单的数据表,sort='id'是调用方式, row调用条数,if是调用条件。[field:youname/] 为需调用的字段的名称。
dedecms调用自定义表单的数据
下午做好了一个网站准备上线测试,安装 dedecms时想为这个网站单独建立一个数据库。于是去空间控制面板准备新建数据库,却发现无法添加。问了客服之后明白选的空间套餐有数据库数量限制,现在已经上限了。
那就找个看着顺眼的数据库用吧。这个数据库内之前的 dedecms使用了默认的前缀dede_,现在这个改成test_前缀安装就行了:
如果还要安装更多网站,再使用不同的表前缀就行了。
Read More →
更改已安装的 dedecmsdedecms数据库表前缀
使用 dedecms添加文章时有些我们想要的字段可能没有,例如我们可能要对一个病人记录下姓名、性别、年龄、职业等信息,并且能够分别调用。这就要用到自定义字段的功能了。
我们在后台的“核心”→“频道模型”→“内容模型管理”中,找到你要修改的模型,点击编辑按钮(我这里直接编辑内置的模型了,实际操作中建议先复制一个模型,然后编辑复制得到的新模型):
在修改模型时,选择第二个选项卡“字段管理”,点击“添加字段”:
Read More →