十一 07

织梦获取文章链接的函数GetOneArchive

在某自自定义的会员页面中调用指定栏目(typeid=’36′)最新文章,前提是这个页面允许直接使用PHP代码,循环中使用GetOneArchive函数,带入文章ID,返回的是数组,$url['arcurl']即为此文章链接。

 

25

解决织梦自定义字段数据类型为“图片”时的地址无法正确调用问题

找到文件/include/extend.func.php,系统预留的自定义函数接口文件,在文件最后加入如下函数,可以直接复制,如果在文件最后有“?>”,那就加在他的内部的最后位置,有人说有,但是我从来没见过。

29

织梦系统会员登录成功后返回之前来路页面

在使用织梦内容管理系统时,为使网站能有更好的用户体验度,我们都会对其进行功能方面的修改。那么会员登录成功后,返回到会员来到登录页面的前一页面的这个功能怎么修改呢?如下:

查找 文件member/templets/login.htm

第68行<input type="hidden" name="gourl" value="<?php if(!empty($gourl)) echo $gourl;?>">

改为<input type="hidden" name="gourl" value="<?php if(!empty($_SERVER['HTTP_REFERER'])) echo $_SERVER['HTTP_REFERER'];?>">

21

织梦网站管理系统禁止会员同一帐号多地登录

修改织梦网站管理系统PHP程序,实现禁止同一会员帐号多地登录,一般来讲就要从判断IP入手。我修改的这个原理是:会员登录后增加创建名为Only的cookie,当会员刷新页或浏览新页面时判断从数据表@_member中当前会员的loginip值md5后与Only比较异同,把此条件加在验证用户是否已经登录函数IsLogin()中,成立返回真,不成立返回假,即可实现。修改如下:

修改文件/include/memberlogin.class.php

构造函数,大约171行左右的$this->OnlyCookie = GetCookie("Only");代码下一行增加代码如下:
$this->OnlyCookie = GetCookie("Only");

验证用户是否已经登录函数IsLogin(),大约第290行 改为
function IsLogin()
{
$loginipCookie = substr(md5($this->fields['loginip']),0,16);
if($this->M_ID > 0 && $this->OnlyCookie == $loginipCookie) return TRUE;
else return FALSE;
}

重置用户信息函数ResetUser()内的最后,大约第389行左右代码DropCookie('DedeLoginTime');的下一行增加代码如下(除管理员外的cookie方法):
DropCookie('Only');
意为重置会员cookie信息

大约第530行左右保存用户cookie的函数PutLoginInfo()内的if($this->M_KeepTime > 0)内增加代码如下(除管理员外的cookie方法);
PutCookie('Only',substr(md5(GetIp()),0,16),$this->M_KeepTime);
意为增加cookie条目
下面的else内最后加上
PutCookie('Only',$this->M_LoginTime);

修改文件/include/userlogin.class.php(这个没有测试管理员的帐号效果,后来我没我修改这条,也就是说这条改不改不影响除ID为1的其他会员的禁止多地登录效果)
keepUser()函数内大约第315行增加代码如下:
PutCookie('Only', substr(md5('MrDede'.GetIp()),0,16), 3600 * 24, '/');
保持用户的会话状态,这里给管理员(id=1)增加了名为Only的cookie信息

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方法的,没去细研究。

天亮了,睡了……

21

使用itemindex或autoindex实现织梦频道页、列表页显示文章顺序编号

使用织梦内容管理系统建站,想在频道页或列表面显示文章顺序号、隔行变色、每五行一个小区块儿等等效果,这个功能就要大显伸手了。之前我也总结过一些关于织梦标签的调用方法手册,可以直接做为工具页来直接复制。

列表页使用方法:

织梦列表页隔行换色(可以通过写the和that两类的样式来实现不同背景色):

可以使用在dede:arclist和dede:list下,使用的织梦列表页另一种方法(显示自然顺序标号):

频道页使用方法:

大体意思就是这样,至于加在什么位置,就自己选吧!

织梦默认的搜索页不支持autoindex标签,需要修改核心文件增加支持:

找到文件:include/arc.searchview.class.php

第一处:

第二处:

20

dedeCMS数据库操作类中$dsql的使用方法与实例

dedecms二次开发中对数据库操作类的使用尤为重要,下面是对数据库操作类的一些简单说明和实例。

引入common.inc.php文件

查询某表是否存在,存在返回TRUE,否则返回FALSE

获取一条记录的内容

将查询获取总数输出

将查询的若干条记录输出

将查询的若干条记录输出dedecms5

插入一条记录

经实践证明,上面的语句不能正常插入数据库,下面是正确的语句

删除一条记录

更新一条记录

判断获取数据库内容的常用方法

获取总数

关闭数据库

实例 Continue reading

17

织梦5.7使用图片集模型上传图片弹出框显示302不能上传图片

织梦5.7在栏目使用图片集模型时,后台单张上传或多张同时上传,会出现302,并且上传图片失败。

解决方案:

织梦程序根目录/include/userlogin.class.php
session();的上面增加以下几行即可(如下图):

织梦上传图片弹出302

代码如下,复制粘贴即可:

注意:在编辑代码时使用专业代码工具,不要使用记事本工具,防止出错!

18

个人总结的织梦手册(实用一)

//作者:莪叆啰    整理:织梦先生    QQ:3444056

//织梦的网站查询手册

//红色为问题集  //橄榄色为注释  //紫色为拓展

 

1.网站标题(优化):
{dede:field.title/}_{dede:global.cfg_webname/}

 

2.当前名称:

{dede:field name='typename'/}

 

3.导航条(父类、子类):

 

4.面包屑:

生成的代码为 <a href=”#”>首页</a> > <a href=”#”>新闻动态</a>

函数的位置 include/typelink.class.php
Continue reading