dedecms如何一次调用三级别栏目:跪求高手解答
在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,请将以下代码全部复制替换上述文件
<phpfunction 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();
>
0条评论