热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

dedecms中常见问题修改方法总结

dedecms中常见问题修改方法总结
新手常见问题,此贴是早些时候我发的,在3.1正式版中.有些问题已得到修正,不过仍可作为修改或学习参考
请大家花点耐心看完这个吧,这些问题很多人都有碰到.何必要不停的发贴子问呢?
另外,看完这个请去你自己的后台看完模板标记参考!!特别是arclist这个标记的参数说明!!
多思考一下问题,多试验一下标记,,学到就是自己的,学不到,谁也帮不到你!!
补充一点..很多标记都可以参考系统默认的模板和模板区的一些好模板,多看标记体会每个标记的用法,
下文如果有您的贴子..感谢您对DEDE的匏礁冻?.
3.1lit最新版当一级栏目为最终列表栏目时,使列表显示其下级栏目的文章的修改
include/inc_arclist_view.php
80行:
$addSql .= " And (typeid='".$this->TypeID."' or typeid2='".$this->TypeID."') ";
更改为:
//增加的,用来解决上级列表调用不出下级列表的问题
$ssid = TypeGetSunID($this->TypeID,$this->dsql);
$ssid2 = str_replace('typeid','typeid2',$ssid);
//结束增加的
$addSql .= " And (typeid='".$this->TypeID."' or ".$ssid." or typeid2='".$this->TypeID."' or ".$ssid2.") ";//本句也已修改
上面这部分用来解决分页问题
include/inc/inc_fun_SpGetArcList.php
70行开始:
if($ridnum>1){
$tpsql = "";
for($i=0;$i<$ridnum;$i++){
if($tpsql=="") $tpsql .= " And (".TypeGetSunID($reids[$i],$dsql,'arc');
else $tpsql .= " Or ".TypeGetSunID($reids[$i],$dsql,'arc');
}
$tpsql .= ") ";
$orwhere .= $tpsql;
unset($tpsql);
}
else{
$orwhere .= " And ".TypeGetSunID($typeid,$dsql,'arc');
}
更改为:
if($ridnum>1){
$tpsql = "";
for($i=0;$i<$ridnum;$i++){
if($tpsql=="") {
//开始修改文章第二栏目调用问题
$ssid = TypeGetSunID($reids[$i],$dsql,'arc');
$ssid2 = str_replace('typeid','typeid2',$ssid);
$tpsql .= " And (".$ssid." or ".$ssid2;}
else {
$tpsql .= " Or ".TypeGetSunID($reids[$i],$dsql,'arc');
$tpsql .= str_replace('typeid','typeid2',$tpsql);}
}
$tpsql .= ") ";
$orwhere .= $tpsql;
unset($tpsql);
}
else{
$ssid = TypeGetSunID($typeid,$dsql,'arc');
$ssid2 = str_replace('typeid','typeid2',$ssid);
$orwhere .= " And (".$ssid." or ".$ssid2.") ";//结束修改文章第二栏目调用问题
}
此部分用来解决调用下级栏目文章列表问题
替换的代码我写的很粗糙,可以暂时先用着,等官方的解决方案出来后再替换
在 include/inc_arclist_view.php还要改一处:
//获得一个单列的文档列表

//类别ID的条件
$orwhere .= " And (#@__archives.typeid='".$this->TypeID."' or #@__archives.typeid2='".$this->TypeID."') ";
改为:
//类别ID的条件
$ssid = TypeGetSunID($this->TypeID,$this->dsql);
$orwhere .= " And (#@__archives.typeid='".$this->TypeID."' or ".$ssid." or #@__archives.typeid2='".$this->TypeID."') ";
否则有页面没有列表内容,因为80行是Select count(*).....
关于那个栏目路径有个{cmspath}
首先说一下{cmspath}的意思,,打开后台"系统配置参数"可以看到第二项,DedeCms安装目录:
这个就是{cmspath}所解析出来的路径,
如果beta2升级到lit,需要手工修改栏目属性,把{cmspath}去除.或者你运行setup升级完之后用lit的所有文件
替换掉之前的B2的所有文件,这样{cmspath}就可以正常解析成你的网站路径
如果你不用{cmspath}这个参数,.可以照下面的修改
执行SQL: update dede_arctype set typedir=replace(typeidr,'{cmspath}','');
以去掉数据库的里 {cmspath}
然后修改文件 catalog_add.php 找到 $true_typedir = str_replace("{cmspath}",$cfg_cmspath,$typedir);
改成
$true_typedir = str_replace("",$cfg_cmspath,$typedir);
就行
[field:description /]这个标签如何限制字数?
[field:description function='cn_substr(@me,80)'/]
dede 里的所有标记都支持这样使用函数的
关于3.1版友情链接添加后在首页没有显示的问题
引起这个的主要原因是BLT在编写的时候把表 dede_flink的ischeck的值弄反了造成的.
在3.01里..ischeck=1表示首页链接..2表示内页链接,但3.1正好相反,
给一个最简直的改法就是打开inc_fun_SpGetFriendLink.php
找到第13行..
CODE:
$wsql = " where ischeck=1 ";
[Copy to clipboard]
将1改为2就行了.
11.11更新过后,取消了inc_fun_SpGetFriendLink.php这个文件的调用.
所以只须要打开inc_arcpart_view.php
在410行附近
CODE:
$wsql = " where ischeck=1 ";
if($type=="p_w_picpath") $wsql .= " And logo<>'' ";
else if($type=="text") $wsql .= " And logo='' ";
else $wsql .= "";
[Copy to clipboard]
同样将where ischeck=1改为2就可以
3.1LIT版广告名称修改后无效的解决办法
http://bbs.dedecms.com/read.php?tid=7135
看4楼的回贴.
dede新版如何去掉列表的文章摘要
删除[field:info/]
关于后台登陆验证码样式的修改
http://bbs.dedecms.com/read.php?tid=6244
当文章描述中出现的英文长度大于table的宽度时,会搞的很难看
[field:textlink /]
改为
[field:title function='cn_substr(@me,30)' /]
新建频道模型教程
http://bbs.dedecms.com/read.php?tid=5972
dedecms实现列表页双样式



{/dede:list}
[field:typelink /] [field:textlink /]点击:[field:click /]([field:stime /])

我想实现一个功能,就是在文章列表中(模板list_article)如果文章有缩略图就显示缩略图,没有的话则直接显示文章列表而不显示“没有缩略图”的图片。
dedecms的扩展是用function形式的,因为加入if这种结构太占用资源,如果你有必要,你可以这样:
[field:picname function="GetMyPic('@me')"/]
在 inc_functions.php 里定义一个函数
function GetMyPic($img)
{
if($img=="") return "";
else return "";
}
这样来处理
这种做法可能会有点不便,但好处是既达到扩展目的,又不会占用太大资源,又不影响模板结构,实现真正的模板与代码分离
点击图片进入下一页
打开include/inc_archives_view.php
大概在444行左右,找到
$this->Fields[$this->SplitPageField]=$this->Fields[$this->SplitPageField];
注释掉,改为
$this->Fields[$this->SplitPageField]=$this->ClickPicNext($this->Fields[$this->SplitPageField]);
然后,最后加上函数,注意在最后一个括号里面!
//把图片替换成链接
//----------------------------
function ClickPicNext(&$body)
{
if($this->NowPage!=$this->TotalPage){
$lPage=$this->NowPage+1;
$body=preg_replace("/<(img|IMG)(.*)(src|SRC)=[\"|'| ]{0,}((.*)>)/isU",""."\${0}"."",$body);
//$body="".$body." ";
}else{
if($this->GetNext()){
$body=preg_replace("/<(img|IMG)(.*)(src|SRC)=[\"|'| ]{0,}((.*)>)/isU",""."\${0}"."",$body);
//$body="".$body." ";
}
}
return $body;
}
自动地把文章中的图片替换为下一页的链接,如果是最后一页,则为下一篇!
注意:先要按下面的改法,把上一篇下一篇分开才行!
[dede3.1][改法]上一篇下一篇分开调用,且限定文章所在栏目内而不是现在的全站。
http://bbs.dedecms.com/read.php?tid=5051
在文章列表中,有的标题被截断了,用什么样的代码可以让鼠标在上面的时候可以显示完整的文件名?
{dede:arclist row=16 orderby=pubdate col=1 typeid=3}
  • · [field:title function="cn_substr('@me',30)" /]

  • {/dede:arclist}
    怎么样在文章名前面显示所属的文章栏目?
    {dede:arclist row=10 orderby=pubdate}
    ·[field:typelink/] [field:textlink/]

    {/dede:arclist}
    生成的文章文件名能不能增加MD5加密
    自己改一下,这种属于典型的无聊需求吧
    include/inc_channel_unit_functions.php
    .
    [field:writer /]怎么没有用
    lit版inc_arcpart_view.php没有读取附加表
    修改include\inc\inc_fun_SpGetArcList.php第120行,在后面加 arc.writer,
    当然你也可以加入你还想引入的附加表内容如:
    arc.writer,arc.source,arc.shorttitle,
    新安装的DEDECMS3.0.1,第一次登陆就说我密码错误!
    你要查一下是否有 dede_admin 这个表,如果有,看看有没有数据,
    如果用户名和密码没有不允许的符号的话,
    一般是服务器可能能无法完成安装的SQL导入才可能会提示用户名不存在
    手工加个用户就OK了.
    也可以在数据库中删除表dede_admin,然后重新安装即可
    关于listpage分页在生成会有表格的修改
    搜索
    //获取静态的分页列表
    在下面的几行可以看到分页的一些东东
    关于栏目多风格和系统底层模版的问题
    用arclist
    {dede:arclist
    typeid='' row='' col='' titlelen=''
    infolen='' imgwidth='' imgheight='' listtype='' orderby='' keyword=''}
    自定义样式模板(InnerText) //这里定义你显示的样式..不要修改底层模板了..免得你自己麻烦.
    {/dede:arclist}
    另外栏目的模板可以不使用系统默认的{style}/list_article.htm
    你可以手工指定栏目的封面模板或是列表模板嘛..列如:{style}/list_class1.htm
    {style}/list_class2.htm
    等.这样就可以多风格了嘛.
    用dedecms做小说站的思路
    1、新建两个模型
    book模型和章节模型
    2、重新写档案发布程序,关键把两个模型关联起来,而现在提供内容模型的cmsware 和dede都是办不到的,而dede自建频道提供的档案发布程序项可以很好的利用。重新些这四个文件(两个界面和两个提交后处理的程序)即可。
    3、如果要做成起点中文网哪种模式,那就要在member目录下写关于投稿的程序,以及在plus里面写业务模式如计费、计点等功能的程序。
    其实, dede只是一个内容发布的框架,提供的后台工具只针对管理员而已,用户完全可以自我定制各种模型,不过要对dede熟悉一点而已。
    能写程序的不妨一试。
    为什么我的自定义标记总是被当做文本来输出
    标记里要加上 ismake='yes' 属性
    对图片SEO的一些思考,
    [field:title /]
    参考arclist标记的说明,,
    dede编辑器的问题..从WORD复制进去的错误
    复制后安 工具栏 上那个右下角有黄色T的粘贴按钮~~~移上去有提示的,无格式粘贴
    标签的定义放在什么地方的
    凡是include里的文件,有什么 ***view.php 都是控制视图的
    关于自动分页的问题
    自动分页的大小为只能在2-5之前
    3 就是每个分页为3K的意思。
    这个跟动易的不一样,动易的是字节,所以你可以写2000 或则 3000 DEDE的是K 所以,你只能写 2或则3,我的错误在,我写成2000K!汗一个,
    这在DEDE里的意思是,一个分页允许到2M !自然不成功
    关于分页标题
    内容部分如下格式即可:
    分页标题1#e#
    第1页内容
    #p#分页标题2#e#
    第2页内容
    #p#分页标题3#e#
    第3页内容
    #p#分页标题4#e#
    第4页内容






    附加选项: 下载远程图片和资源 怎么关闭啊???
    dede/article_add.php 和 article_edit.php中找到(如果是其他的模型找到对应的添加和修改文件)
    附加选项:

    下载远程图片和资源
    把value改成0 删除checked
    3.1B2///channelArtlist和arclist的BUG暂时解决方案
    修正所有栏目列表都一样和channelArtlist下arclist标签无法自定义
    打开include/inc_arcpart_view.php
    在207行找到
    else $typeid = 0;
    然后把他删掉
    ---------------------
    再打开include/inc/inc_fun_SpGetChannelList.php
    在第66行找到
    $ctag->GetAtt('innertext')
    改为
    $ctag->GetInnerText()
    即可。
    如果有问题的,也可以加群:18176791
    呵呵.能看到这里.说明你是真心做站!祝你成功!!
    推荐阅读
    • 马蜂窝数据总监分享:从数仓到数据中台,大数据演进技术选型最优解
      大家好,今天分享的议题主要包括几大内容:带大家回顾一下大数据在国内的发展,从传统数仓到当前数据中台的演进过程;我个人认为数 ... [详细]
    • 如何实现织梦DedeCms全站伪静态
      本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
    • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
    • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
    • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
    • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
    • Oracle分析函数first_value()和last_value()的用法及原理
      本文介绍了Oracle分析函数first_value()和last_value()的用法和原理,以及在查询销售记录日期和部门中的应用。通过示例和解释,详细说明了first_value()和last_value()的功能和不同之处。同时,对于last_value()的结果出现不一样的情况进行了解释,并提供了理解last_value()默认统计范围的方法。该文对于使用Oracle分析函数的开发人员和数据库管理员具有参考价值。 ... [详细]
    • 本文介绍了一个免费的asp.net控件,该控件具备数据显示、录入、更新、删除等功能。它比datagrid更易用、更实用,同时具备多种功能,例如属性设置、数据排序、字段类型格式化显示、密码字段支持、图像字段上传和生成缩略图等。此外,它还提供了数据验证、日期选择器、数字选择器等功能,以及防止注入攻击、非本页提交和自动分页技术等安全性和性能优化功能。最后,该控件还支持字段值合计和数据导出功能。总之,该控件功能强大且免费,适用于asp.net开发。 ... [详细]
    • REVERT权限切换的操作步骤和注意事项
      本文介绍了在SQL Server中进行REVERT权限切换的操作步骤和注意事项。首先登录到SQL Server,其中包括一个具有很小权限的普通用户和一个系统管理员角色中的成员。然后通过添加Windows登录到SQL Server,并将其添加到AdventureWorks数据库中的用户列表中。最后通过REVERT命令切换权限。在操作过程中需要注意的是,确保登录名和数据库名的正确性,并遵循安全措施,以防止权限泄露和数据损坏。 ... [详细]
    • 如何更改电脑系统的自动校时服务器地址?
      本文介绍了如何通过注册表编辑器更改电脑系统的自动校时服务器地址。通过修改注册表中的数值数据或新建字符串数值的方式,可以将默认的时钟同步服务器地址更改为自己所需要的域名或IP地址。详细步骤包括双击时间区域,点击internet时间,勾选自动校正域名设置定时等操作。 ... [详细]
    • 本文介绍了Hive常用命令及其用途,包括列出数据表、显示表字段信息、进入数据库、执行select操作、导出数据到csv文件等。同时还涉及了在AndroidManifest.xml中获取meta-data的value值的方法。 ... [详细]
    • 你知道Kafka和Redis的各自优缺点吗?一文带你优化选择,不走弯路 ... [详细]
    • 数据库异常智能分析与诊断
      数据库,异常, ... [详细]
    • ubuntu用sqoop将数据从hive导入mysql时,命令: ... [详细]
    • 本文介绍了Windows Vista操作系统中的用户账户保护功能,该功能是为了增强系统的安全性而设计的。通过对Vista测试版的体验,可以看到系统在安全性方面的进步。该功能的引入,为用户的账户安全提供了更好的保障。 ... [详细]
    author-avatar
    假爱多慌乱
    这个家伙很懒,什么也没留下!
    PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有