16

一个小改造实现织梦列表页、内容页获取当前页面链接

做织梦系统的MIP开发改造时,需要实现获取当前列表页和内容页的链接,在网上找了一会,看有没有成品代码可抄,找来找去,都是不如意的,还有一些也实现不了。

花一会功夫,还是自己写一个吧,找代码比写代码用时还长呢。

把代码加到 /include/helpers/extend.helper.php 文件最后。

经实际应用的项目是全站静态页面的环境,其它环境(如果动态页面,或者是伪静态页面)未测试,使用时请注意观察。如果有问题需要帮助的话,可以联系我。 Continue reading

19

织梦采集到HTML实体后出现乱码保存不全的解决办法

织梦二次开发,织梦采集到HTML实体后出现乱码保存不全,主要是因为这个字符“&”造成的。

解决办法就是把HTML实体转为字符,使用html_entity_decode()函数。

想再转为HTML实体,那使用PHP的htmlentities()函数。

修改方法如下:

1、找到文件:/include/dedecollection.class.php

2、搜索addslashes($v['title']),替换为addslashes(html_entity_decode($v['title']))

注:一共有2处,在1035行(上下)和1118行(上下)

相关阅读:http://mrdede.com/?p=1511

25

织梦导航不显示外部链接栏目,修改channelartlist标签方法

在文件 include/taglib/channelartlist.lib.php第67行左右,

查找:

修改为:

即删除 AND ispart<>2

完成。

栏目为外部链接时默认使用新窗口打开,其它栏目使用当前窗口打开的修改方法。

查找:

在代码的下一行增加:

这样,在输出的链接后就自动增加了新窗口打开的代码了。 blank

25

dede:channelartlist嵌套channel高亮显示当前栏目与顶级栏目的修改方法

dede:channelartlist高亮显示顶级栏目修改方法:

文件位置:/include/taglib/channelartlist.lib.php

查找:

上面代码大约在100行左右,在其下方增加代码:

保存。

使用示例: Continue reading

15

DedeCMS让{dede:arclist}标签支持weight权重排序

5.6之后DEDE加入了文章按权重排序的功能,但很多童鞋调整权重数值,并在arclist标签里加上orderby=’weight’,却发现无任何效果,原因是系统默认是不开启该功能的。

正确的使用方法如下:

{dede:arclist titlelen='38' flag='h' noflag='a' isweight='y' orderby='weight'}

  <li><span>[[field:typelink/]]</span><a href=”[field:arcurl/]“>[field:title/]</a><div class=”c2time”>[field:pubdate function=MyDate('y-m-d',@me)/]</div></li>

{/dede:arclist}

红色部分就是开启 weight排序,再加上orderby=’weight’,就OK了

——————————————————————————–

另外使用arclist标签时,想按照权重越大越靠前来排序,则需要小动一下arclist.lib.php文件,方法如下:

打开\include\taglib\arclist.lib.php

大概在572行

$orderWeight = list_sort_by($orderWeight, ‘weight’, ‘asc’);

修改为(红色部分)

$orderWeight = list_sort_by($orderWeight, ‘weight’, ‘desc‘);

15

最新DEDECMS织梦搜索页调用arclist标签的教程

打开include/arc.searchview.class.php

查找:

在下面加入:

找到:

在下面插入:

这样就可在dedecms织梦搜索页面使用arclist和channelartlist标签调用数据了。

14

织梦保存文章标题不全的解决办法

1、进入后台–系统–系统设置–系统基本参数–其他选项–文档标题最大程度改为你要的长度原默认是60(这里改为了200)

2、登陆数据库,改数据库表dede_archives表里面的title字段,原默认是60,(这里改为200).

20181014212349

13

织梦调用缩略图原图的方法

第一种

说它是自动识别,其实只是用了字符串切割的方法,如果勾选提取第一个图片萎缩路人图的话,文章的缩略图和第一张图片只多了一个“-lp”的字符串,

用php的“str_replace”函数切割一下就行了。方法如下:

打开 /include/common.func.php在最后面加入如下代码:

标签中调用:

直接调用:

第二种

通过比较明显第二种方法比较好。但是如果自己上传缩略图的话,第二种就用不了了,这时候就要再用另一种方法:

打开 /include/helpers/archive.helper.php 在最后面加入如下代码

或者,可以简化一些:

标签中调用:

具体怎么实现功能,还要看自己网站的实际情况了。

25

织梦图集模型增加数据类型为“HTML文本”的自定义字段 发布着色内容出错

织梦二次开发,一是让系统更适合自己,为我所用;二是没有绝对完美的东西,修改它的BUG。

织梦图集模型增加数据类型为“HTML文本”的自定义字段 发布着色内容出错,表面上看是这样的,但实现上是在打开修改图集内容页时的返回值出错,再准确一点说,是HTML文本在修改查看时被过滤了一次而出错(把原来的<span style…替换成了<span x=”">yle…)。

dede_addonimages数据表中是正确的

dede_addonimages数据表中是正确的

20150625035610 20150625035643

因为在发布完图集内容后,我查看数据表dede_addonimages数据内容,是正常并正确的。所以问题就不是出在发布的环节,也没必要研究/dede/album_add.php这个文件了(之前我走了弯路)。

(到这一步之前也走了一些弯路)那么现在就来研究/dede/album_edit.php这个文件,发现是$addRow=XSSClean($addRow);这句在作怪,注释掉,OK!

20150625041905

整个56行$arcRow=XSSClean($arcRow);$addRow=XSSClean($addRow);都可以注释掉。之所以说这行都可以注释掉是因为在文章模型的修改文档文件(/dede/archives_edit.php)中就没有这各方法过滤,根本就没有出现XSSClean()方法。

其它,那个过滤规则最终是指向\include\helpers\filter.helper.php的RemoveXSS方法的,没去细研究。

天亮了,睡了……