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

织梦dedecms中常见问题修改方法总结 ,新手常见问题,有些问题已得到修正,不过仍可作为修改或学习参考 。
请大家花点耐心看完这个吧,这些问题很多人都有碰到.何必要不停的发贴子问呢? 
另外,看完这个请去你自己的后台看完模板标记参考!!特别是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 (dede_archives.typeid=‘".$this->TypeID."‘ or dede_archives.typeid2=‘".$this->TypeID."‘) "; 
改为: 
    //类别ID的条件 
      $ssid = TypeGetSunID($this->TypeID,$this->dsql); 
    $orwhere .= " And (dede_archives.typeid=‘".$this->TypeID."‘ or ".$ssid." or dede_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.zuola.net/read.php?tid=7135 
看4楼的回贴. 
dede新版如何去掉列表的文章摘要 
删除[field:info/] 
关于后台登陆验证码样式的修改