Saber 酱的抱枕

Fly me to the moon

11/29
2017
学习

PHP缓冲区问题导致的dedecms异常

最近服务器上迁移过来了一些网站(后台是DEDECMS),今天遇到了两个因为PHP缓冲区导致的图像损坏问题。

1.验证码无法显示

这个验证码在原本的服务器上是正常的,到了新服务器上却无法显示了。

对于这个问题,我们可以修改dedecms的文件去除验证码,但是这个办法治标不治本。正确的处理办法是在include文件夹的vdimgck.php里加一句ob_end_clean();函数来解决。
Read More →

PHP缓冲区问题导致的dedecms异常

06/7
2017
学习

dedecms整站静态、动态切换

织梦(dedecms)后台默认首页是动态网页,其余栏目页、文章页是静态网页。

静态化有利于减小服务器压力,但是在开发、调试的时候,修改完网站需要更新网页才能看到效果,不如使用动态化来得便捷。

要切换静态。动态页面,步骤如下:

1.首页

①:静态改动态:

如果首页一直保持的是默认的“动态浏览”,则无需改动。

如果首页之前已经改成静态化了,在后台设置里改成“动态浏览”,再删除网站根目录里的index.html就行了(之后访问首页网址,如果后面还带的有index.html,是浏览器缓存的原因,实际上已经动态化了)。

2.栏目页

执行以下SQL语句把所有栏目页设置为动态化:

update dede_arctype set isdefault=-1 

如果最后改为1,则是静态化。

3.文章页

执行以下SQL语句把所有文章页设置为动态化:

update dede_archives set ismake=-1

如果最后改为1,则是静态化。

如果最后改为0,则是伪静态。但织梦的伪静态我还没用过,不知道是什么样。

ps:栏目页和文章页都可以在最后加上 where typeid=1 的形式来修改指定栏目的设置。

dedecms整站静态、动态切换

05/31
2017
学习

dedecms 批量更新文章摘要的方法

dedecms(织梦)的文章在修改后不会自动更新文章简介。我们可以用下面的办法清除简介并重新生成:

首先在 系统→SQL命令行工具里,执行如下语句:

update dede_archives set description="";

然后到 核心→批量维护→自动摘要|分页 里面批量生成摘要即可。

dedecms 批量更新文章摘要的方法

03/10
2017
学习

在织梦列表页调用文章正文

在织梦的列表页我们会使用dede:list标签调出文章。此标签可以自动分页,但是要在其中调用文章正文的一部分来做简介的话,却不像dede:arclist标签那么方便。

要在列表页调用文章正文,需要我们更改频道模型。

到后台 核心 -> 频道模型 -> 内容模型管理 -> 普通文章 -> 更改,在“列表附加字段”一栏填入“body保存,其他不用改。

点击查看图片

之后即可在dede:list里调用:

{dede:list pagesize='10'}
[field:body function='cn_substr(html2text(@me),600)'/]
{/dede:list}

在织梦列表页调用文章正文

12/22
2016
学习

dedecms织梦修改文章标题长度

dedecms里默认的文章标题长度是60,如果添加文章时标题长度超出60,就会被截断,影响恶劣。

假设我要修改dedecms的文章标题长度为200,那么需要两个步骤:

1.到“系统设置”→“系统基本参数”→“其它选项”,修改“文档标题最大长度”选项为200。

2.到“系统设置”→“SQL命令行工具”中执行下面Sql语句:

alter table #@__archives change title title varchar(200)

这样就OK了。

需要注意的是,dedecms里设置的这个长度并不是按字数,而是按PHP里的字节数。在PHP中,GBK系列编码里的一个中文占据2个字节的长度;UTF-8编码里的一个中文占据3个字节的长度。英文字符则始终是一个长度。

dedecms织梦修改文章标题长度

12/15
2016
学习

织梦调用顶级栏目名称

织梦自身并没有调用顶级栏目名称的功能,需要我们自己添加。

打开织梦目录下的include/common.inc.php,在末尾添加函数:

function getTopCategoryName($cid=0) {
	global $dsql;
	if($cid==0) {
		$string ="无效参数";
	} else {
		$cid=GetTopid($cid);
		$sql ="SELECT typename FROM dede_arctype where id=".$cid;
		$arcRow=$dsql->GetOne($sql);
		$string = $arcRow[typename];
	}
	return $string;
}

ps:如果你的表名称不是dede_前缀,则需要修改dede_arctype表名为自己的表名。

之后我们在模板里使用以下代码调用即可:

{dede:field name='typeid' function = getTopCategoryName(@me)'/}

织梦调用顶级栏目名称

11/23
2016
学习

dedecms如何在数据库复制文章

dedecms如何在数据库复制文章

昨天我准备把一个网站做个demo,先在dedecms的后台里添加了一篇文章,之后我想把它复制多次,可是dedecms没有复制文章的功能。于是我从数据库里操作,最后搞明白了。

dedecms关于文章的信息储存在三个表里:

dede_addonarticle:主要存储文章正文;
dede_archives:储存文章诸多次要信息,如标题、简介、flag等。
dede_arctiny:储存的信息较少,添加文章时dedecms会从这个表里判断哪些文章id被用过了。

虽然大佬们可能用sql语句来复制数据,不过作为主键的文章id(aid字段)不能重复,栏目id(typeid)也有好几个,所以我这弱鸡还是用可视化工具操作的。

下面以Navicat for MySQL为例讲解一下具体的操作。
Read More →

dedecms如何在数据库复制文章

11/21
2016
学习

在 dedecms的系统参数中添加设置项

在 dedecms的系统参数中添加设置项

dedecms的系统设置里有许多参数(蓝色线条上面的是其他种类的设置),合起来有一百五十多条。不过我们最常用的还是第一栏的这些选项,这些选项也经常会在模板里调用。

如果我们要增加一项内容,以便在全站调用,应该怎么做呢?
Read More →

在 dedecms的系统参数中添加设置项

11/15
2016
学习 软件

dedecms给文章增加自定义flag的办法

 dedecms给文章增加自定义flag的办法

dedecms的文章都可以设置flag,这样当我们调用时可以调用带有指定flag的文章。有时候我们可能需要添加自定义的flag(如上图的“显示到首页”就是自定义的)。

ps:虽然flag的说明文字可以写的比较长,但是在后台文章列表里只会显示每个flag的前两个字。

下面直接放百度经验的内容=。=
Read More →

dedecms给文章增加自定义flag的办法

10/22
2016
学习

修改 dedecms文件保存目录字段的长度

dedecms的栏目可以“文件保存目录”属性,这样栏目的ul就会使用这里设置的链接。这个字段在数据库里是dede_arctype表的typedir字段,但是它默认是char(60),这个长度对网址来说显然是太短了,如果网址超长就会被截断。如果需要,我们可以到数据库修改它的长度。
Read More →

修改 dedecms文件保存目录字段的长度