dedecms如何一次调用三级别栏目:跪求高手解答

dedecms如何一次调用三级别栏目:跪求高手解答,第1张

在dede/catalog_dophp下面,把catalog_dophp里header("location:article_addphp")

替换成echo "<script language='javascript'>windowlocationhref='article_addphp'</script> ";

还有[header("location:{$gurl}channelid={$channelid}&cid= {$cid}");]替换成[echo "<script language='javascript'>windowlocationhref='{$gurl}channelid={$channelid}&cid={$cid}'</script> "; ]

网站搬家的方法有很多。下面是最常用的一种方法:

一、进入织梦DedeCMS的后台备份数据库

步骤:系统 –> 数据库备份/还原 -> 全选所有织梦的数据表,然后点击提交

数据备份在网站根目录下的\data\backupdata文件夹里面

二、将原来空间上的所有文件下载到本地

三、将下载回来的文件上传至新空间

四、在新空间重新安装DedeCms

新空间安装DeDecms的方法:删除空间上的install(如果还存在)文件夹,在织梦官网上下载和你网站版本一致的源程序,将压缩包里面的 install文件夹上传至新空间。接着,运行http://你的域名/install进行安装。需要注意的是:数据库表的前缀必须和原数据库表的前缀必 须一致,如果你没有进行过修改,按默认操作即可;安装初始化数据进行体验(体验数据将含带DedeCMS大部分功能的应用操作示例,这个选项不要勾选)。

五、进行数据还原

安装完后,登陆后台,点击 系统管理 –> 数据库备份/还原 –> 数据还原,全选发现的备份文件,(注意:附加参数中的还原表结构信息不要勾选)。

六、点击开始还原数据

七、清除缓存,然后一键更新网站

DedeCMS v57

1支持MySQLi并且调整缓存处理,性能提升

V57新版本默认开发时,测试数据50W,这个容量对于中小型站长已经足以,当然我们不排除有百万、千万级数据的用户需求,这部分的用户我们也有专门的优化方案,可以通过服务列表,了解更多……

2完美兼容PHP53/52+/4版本

PHP官方已经发出所有程序转移到PHP53的号召,但是对于很多主机服务商,很多技术员还没有适应新版本带来的改变,这里我们完美兼容各个PHP主流版本。

3新版客服中心帮你解决疑问,问答模块同步升级

很多人抱怨论坛问题不能及时解决,其实很多问题是不愿重复解决,但拘泥于论坛这种以灌水娱乐为主的地方很难形成技术气氛,官方采用新版问答模块重构客服中心,让大家的疑问能够更快、更方便的得得到解决。

4全新分词组件,让分词更准确、更高效、更快速

新版本系统采用全新分词组件,该分词采用PHP语言进行架构,分词速度快并且执行效率高,当然分词词库也支持自定义,占用内存小等优点,不信去读读代码吧。

5Sphinx全文检索支持

为了满足部分商业用户的需求,新版本检索将支持Sphinx全文检索引擎,当然我们也配有详细的说明文档,全文检索不再困难。

6模块MVC架构

系统问答模块本次采用MVC进行了重构,接下来我们会对整个系统逐步进行重构,在保证系统易用性的同时逐步培养我们自己的技术开发合作联盟,相信未来的织梦会更开放。

7win7模式兼容问题

55以上版本尤其是57sp1版本在win7模式下安装完成后,登陆后台时候会发现白屏,处理方式:

在include找到 userloginclassphp文件,末尾加上session函数库。

function session_register(){ return true;}

如图:

缘由:在php40的时候推出就给了使用者一个函数库:session函数库,靠这个函数库里的函数很方便的实现ID识别问题 首先需要把对方网站的CSS风格样式以及下载下来。把对方要仿制的页面的

html代码复制下来,保存为html文件。

第二,搭建好网站,把保存的文件都放到网站中,用网址访问,观察是否正常

显示,是否缺少文件、

第三,安装好织梦。把保存文件对应的放在织梦的模板目录中。对应设置好仿站的

页面以及CSS及其目录。

第四,填写标签。把保存的HTML代码里面的文章代码用织梦标签替换。重新生成织梦

文档。观察代码显示是否正常。

第五,全局测试,观察是否代码都显示出来,文件对应是否完整。

第六、织梦CMS_V57仿站标签手册 1、以下目录:data、templets、uploads、a设置可读写不可执行权限。其中a目录为文档HTML默认保存路径,可以在后台进行更改;

2、以下目录:include、member、plus、dede设置为可读可执行不可写入权限。其中后台管理目录(默认dede),可自行修改;

3、如果不需要使用会员、专题,可以直接删除member、special目录;

4、删除install安装目录;

5、管理员帐号密码尽量设置复杂,发布文章可以新建频道管理员,并且只给予相关权限;

6、Mysql数据库链接,不使用root用户,单独建立新用户,并给予:SELECT、INSERT、UPDATE、DELETE、CREATE、DROP、INDEX、ALTER、CREATE TEMPORARY TABLES权限;

7、定期进行备份网站目录和数据库,并在后台进行文件校验、病毒扫描、系统错误修复;

8、改变织梦data目录位置。

一、修改文件:\include\taglib目录下的channellibphp,请将以下代码全部复制替换上述文件

<php

function lib_channel(&$ctag,&$refObj)

{

    global $_sys_globals,$envs,$dsql;

    $attlist = "typeid|0,reid|0,row|100,col|1,type|son,currentstyle|";

    FillAttsDefault($ctag->CAttribute->Items,$attlist);

    extract($ctag->CAttribute->Items, EXTR_SKIP);

    $innertext = $ctag->GetInnerText();

        $cacheid = trim($cacheid);

    if($cacheid !='') {

        $likeType = GetCacheBlock($cacheid);

        if($likeType != '') return $likeType;

    }

    $reid = 0;

    $topid = 0;

    if(empty($typeid) && $envs['typeid']!=0)

    {

        $typeid = $envs['typeid'];

        $reid = $envs['reid'];

    }else{

        $reid=0;

    }

    if($type==''||$type=='sun') $type="son";

    if($innertext=='') $innertext = GetSysTemplets("channel_listhtm");

    if($reid==0 && $typeid>0)

    {

        $dbrow = $dsql->GetOne("Select reid From dede_arctype where id='$typeid' ");

        if(is_array($dbrow)) $reid = $dbrow['reid'];

    }

    $likeType = '';

    if($type=='top')

    {

        $sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,description

          From dede_arctype where reid=0 And ishidden<>1 order by sortrank asc limit 0,$row";

    }

    else if($type=="son")

    {

        //if($_sys_globals['typeid']>0) $typeid = $_sys_globals['typeid'];

        if($typeid==0) {

            return '';

        }

        $sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,description

          From dede_arctype where reid='$typeid' And ishidden<>1 order by sortrank asc limit 0,$row";

    }

    else if($type=="self")

    {

        if($reid==0) {

            return '';

        }

        $sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,description

            From `dede_arctype` where reid='$reid' And ishidden<>1 order by sortrank asc limit 0,$row";

    }

    //And id<>'$typeid'

    $needRel = false;

    $dtp2 = new DedeTagParse();

    $dtp2->SetNameSpace("field","[","]");

    $dtp2->LoadSource($innertext);

    $dsql2 = clone $dsql;

    $dsql->SetQuery($sql);

    $dsql->Execute();

    $line = $row;

        //检查是否有子栏目,并返回rel提示(用于二级菜单)

    if(ereg(':rel', $innertext)) $needRel = true;

   

    if(empty($sql)) return '';

    $dsql->SetQuery($sql);

    $dsql->Execute();

   

    $totalRow = $dsql->GetTotalRow();

    $GLOBALS['autoindex'] = 0;

    for($i=0;$i < $line;$i++)

    {

        if($col>1) $likeType = "<dl>\r\n";

        for($j=0;$j<$col;$j++)

        {

            if($col>1) $likeType = "<dd>\r\n";

            if($row=$dsql->GetArray())

            {

                            $row['sonids'] = $row['rel'] = '';

                if($needRel)

                {

                    $row['sonids'] = GetSonIds($row['id'], 0, false);

                    if($row['sonids']=='') $row['rel'] = '';

                    else $row['rel'] = " rel='dropmenu{$row['id']}'";

                }

                //处理同级栏目中,当前栏目的样式

                if( ($row['id']==$typeid || ($topid==$row['id'] && $type=='top') ) && $currentstyle!='' )

                {

                    if($currentstyle!='')

                    {

                    $linkOkstr = $currentstyle;

                    $row['typelink'] = GetOneTypeUrlA($row);

                    $linkOkstr = str_replace("~rel~",$row['rel'],$linkOkstr);

                    $linkOkstr = str_replace("~id~",$row['id'],$linkOkstr);

                    $linkOkstr = str_replace("~typelink~",$row['typelink'],$linkOkstr);

                    $linkOkstr = str_replace("~typename~",$row['typename'],$linkOkstr);

                    $likeType = $linkOkstr;

                    }

                }else

                {

                    $row['typelink'] = $row['typeurl'] = GetOneTypeUrlA($row);

                    if(is_array($dtp2->CTags))

                    {

                        foreach($dtp2->CTags as $tagid=>$ctag){

                            if(isset($row[$ctag->GetName()]))

                            {

                                $dtp2->Assign($tagid,$row[$ctag->GetName()]);

                            }

                            elseif (preg_match('/^sonchannel[0-9]$/',$ctag->GetName()))

                            {

                                $dtp2->Assign($tagid,lib_channel_son($ctag,$row['id'],$dsql2));

                            }

                        }

                    }

                    $likeType = $dtp2->GetResult();

                }

            }

            if($col>1) $likeType = "</dd>\r\n";

            $GLOBALS['autoindex']++;

        }//Loop Col

        if($col>1)

        {

            $i += $col - 1;

            $likeType = "    </dl>\r\n";

        }

    }//Loop for $i

    reset($dsql2);

    $dsql->FreeResult();

    return $likeType;

}

function lib_channel_son($ctag,$typeid = 0,$dsql2)

{

    $attlist = "row|100,col|1,currentstyle|";

    FillAttsDefault($ctag->CAttribute->Items,$attlist);

    extract($ctag->CAttribute->Items, EXTR_SKIP);

    $innertext = $ctag->GetInnerText();

    $dsql3 = clone $dsql2;

    $likeType = '';

    //if($_sys_globals['typeid']>0) $typeid = $_sys_globals['typeid'];

    if($typeid==0) {

        return '';

    }

    $sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,description

          From dede_arctype where reid='$typeid' And ishidden<>1 order by sortrank asc limit 0,$row";

    //And id<>'$typeid'

    $dtp2 = new DedeTagParse();

    $dtp2->SetNameSpace("field","[","]");

    $dtp2->LoadSource($innertext);

    $dsql2->SetQuery($sql);

    $dsql2->Execute();

    $line = $row;

    for($i=0;$i < $line;$i++)

    {

        if($col>1) $likeType = "<dl>\r\n";

        for($j=0;$j<$col;$j++)

        {

            if($col>1) $likeType = "<dd>\r\n";

            if($row=$dsql2->GetArray())

            {

                $row['typelink'] = $row['typeurl'] = GetOneTypeUrlA($row);

                if(is_array($dtp2->CTags))

                {

                    foreach($dtp2->CTags as $tagid=>$ctag){

                        if(isset($row[$ctag->GetName()]))

                        {

                            $dtp2->Assign($tagid,$row[$ctag->GetName()]);

                        }

                        elseif (preg_match('/^sonchannel[0-9]$/',$ctag->GetName()))

                        {

                            $dtp2->Assign($tagid,lib_channel_son($ctag,$row['id'],$dsql3));

                        }

                    }

                }

                $likeType = $dtp2->GetResult();

            }

            if($col>1) $likeType = "</dd>\r\n";

        }//Loop Col

        if($col>1)

        {

            $i += $col - 1;

            $likeType = "    </dl>\r\n";

        }

    }//Loop for $i

    reset($dsql3);

    $dsql2->FreeResult();

    return $likeType;

}

>

二、在模板调用

实例:

{dede:channel type='son' typeid='改成你的大栏目ID'}

              [field:typename/]

                    <ul>

                    [field:sonchannel0]

                    <li><a href="[field:typelink/]">[field:typename/]</a></li>

                         [field:sonchannel1]

                        <li><a href="[field:typelink/]">---[field:typename/]</a></li>

                             [field:sonchannel2]

                            <li><a href="[field:typelink/]">===[field:typename/]</a></li>

                                [field:sonchannel3]

                                <li><a href="[field:typelink/]">===[field:typename/]</a></li>

                                 [/field:sonchannel3]

                             [/field:sonchannel2]

                         [/field:sonchannel1]

                    [/field:sonchannel0]

                    </ul>

 {/dede:channel}

模板调用    [field:sonchannel0] [/field:sonchannel0] 这个是用来取子栏目用的(使用[sonchannel+数字] 作为标签名是为了防止嵌套的时候无法正确解析标签)

这个的作用就是当你的栏目有很多子栏目 无限分级的时候方便你取子栏目的。

有的Dede默认生成首页后,首页的链接后面会多出一个indexhtml,官方说法这样有利于网站优化。出于不让首页权重分散考虑,同时也是美观考虑,dede首页的indexhtml还是得去掉好。

下面就给大家分享一下如何去掉织梦首页的indexhtml

方法一:

使用htaccess文件目前使用的是这个办法,试验成功。

方法如下:

在根目录的htaccess里加入以下代码:

DirectoryIndex indexhtml indexphp indexhtm

方法二:

在主机里面设置默认首页顺序:把indexhtml提到最前面。

因主机不同,设置方法也不同,大多数空间都是在空间商会员后台可以改动。例如:万网。

方法三:也是最简单行之有效的办法。

找到根目录下的indexphp文件,找到如下内容

//自动生成HTML版

if(isset($_GET['upcache']) || !file_exists('indexhtml'))

{

require_once (dirname(__FILE__) "/include/commonincphp");

require_once DEDEINC"/arcpartviewclassphp";

$GLOBALS['_arclistEnv'] = 'index';

$row = $dsql->GetOne("Select From `dede_homepageset`");

$row['templet'] = MfTemplet($row['templet']);

$pv = new PartView();

$pv->SetTemplet($cfg_basedir $cfg_templets_dir "/" $row['templet']);

$row['showmod'] = isset($row['showmod']) $row['showmod'] : 0;

if ($row['showmod'] == 1)

{

$pv->SaveToHtml(dirname(__FILE__)'/indexhtml');

include(dirname(__FILE__)'/indexhtml');

exit();

} else {

$pv->Display();

exit();

}

}

else

{

header('HTTP/11 301 Moved Permanently');

header('Location:indexhtml');

}

>

把上面一大段替换成下面的这段代码

if(!file_exists(dirname(__FILE__)'/data/commonincphp'))

{

header('Location:install/indexphp');

exit();

}

require_once (dirname(__FILE__) "/include/commonincphp");

require_once DEDEINC"/arcpartviewclassphp";

$GLOBALS['_arclistEnv'] = 'index';

$row = $dsql->GetOne("Select From `dede_homepageset`");

$row['templet'] = MfTemplet($row['templet']);

$pv = new PartView();

$pv->SetTemplet($cfg_basedir $cfg_templets_dir "/" $row['templet']);

$pv->Display();

>

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » dedecms如何一次调用三级别栏目:跪求高手解答

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情