怎么解决织梦dedecms生成栏目HTML缓慢

怎么解决织梦dedecms生成栏目HTML缓慢,第1张

比如我们在首页需要调用指定栏目ID为6的栏目下的文章,而该栏目下有一个ID为12的子栏目,通常我们在首页的调用代码如下:

<ul>

{dede:arclist typeid='8' row='10' col='1' orderby='hot'}

<li><a href='[field:arcurl/]'>[field:shorttitle/]</a></li>

{/dede:arclist}

</ul>

但是调用后,此栏目下的ID为12的子栏目里面的内容也会出现在列表里,如果不想要子栏目的内容出现在列表里很简单,这个在后台就有设置,具体设置如下:

登录织梦管理后台,在“系统基本参数”——“性能选项”——“上级列表是否包含子类内容:”这个选项选择“否”就行了。

当然这个是有前提的,这个只能说是调用列表页,如果你调用的栏目是封面页,那么肯定会取子栏目的数据,如果你调用的是列表页,那么肯定是可以的。

DedeCMS(织梦内容管理系统)是织梦团队开发的一套网站管理系统(CMS)。

这个系统把一个网站的内容(文字,,等等)与网站的组件分离开来,可以将各个页面连接到一起,可以控制页面的显示。通过这个系统,可以方便的管理,发布,维护网站的内容,而不再需要硬性的写HTML代码或手工建立每一个页面。

dedecms的这条代码在所选栏目中的文档内容不足两页的情况下,会自动转化为“共1页X条记录”的格式,你只需把文档数目增加到一页以上就可以了。

简单点说就是文档数目还达不到翻页的量,多加点文档让它一页显示不完,就自然可以了。

望采纳。

织梦dedecms生成栏目HTML缓慢的一个可能原因及解决方法:

1、找到dede\makehtml_list_actionphp 文件

在dede\makehtml_list_actionphp 的文件行 101 处

//$lv->CountRecord();

有这样一处注释掉的代码,这一个计算某个栏目类有多少分页的代码居然不运行,从而导致后面一行

if($lv->TypeLink->TypeInfos[‘ispart’]==0 && $lv->TypeLink->TypeInfos[‘isdefault’]!=-1) $ntotalpage = $lv->TotalPage;

else $ntotalpage = 1;

导致这里面的 $ntotalpage 根本得不到值 (NULL),因为 $lv->TotalPage 是在$lv->CountRecord 函数里面赋值

,从而想到,取消此处注释,让栏目生成HTML 分批进行

2、尽量不要一次性生成过多

在生成后台我们可以安排日期进行生成或者安排id进行生成,这样比较合理,不然线程过多,或者时间过程,很容易导致卡死!

一共是两大步,

首先是常规选项。常规选项中需要改动的地方不大,除了栏目标题和路径,其他的完全可以不改。

修改栏目的常规选项

可以选择为频道封面

  当然,因为单页类栏目本身是不用发表文章的,所以栏目属性使用“频道封面”倒是似乎更加贴切一些,以后更新的时候可以一目了然。

  其实不进行修改也是可以的,因为这里并不关键,关键的是下面的高级选项的设置。

  其次是高级选项。高级选项中,有设置模板的地方。这里就需要注意了,因为不管是我们选用“频道封面”还是“最终栏目列表”,其默认的模板都是无法实现我们要制作的单页内容的,那么我们就需要自定义一个模板。假设我们使用singllepagehtm来实现单页面的调用,那么我们就需要对其模板进行设置,如果是选频道封面就修改频道封面,反之则修改最终栏目列表。以“最终栏目列表”为例,如图:

高级选项中修改模板设置

  最后是栏目内容。栏目内容,就是我们实现动态更新的栏目内容了。我们看到,dedeCMS提示我们栏目内容是替代原来栏目单独页的更灵活的一种方式,可在栏目模板中用{dede:fieldcontent/}调用,通常用于企业简介之类的用途,所以我们只要在这里添加企业简介之类的内容,就可以了。而不用笨拙的去修改静态页面。

  一切妥当之后,我们进行第二大步——修改singlepagehtm模板。

  修改模板很简单,我们找到templets路径下相应模板分类的singlepagehtm,然后我们对其进行编辑,我们看到,原始的singlepagehtm是调用的{dede:fieldbody/}这里是调用普通文章的内容,我们要做单页模板,只要修改调用的地方为{dede:fieldcontent/}就完事大吉了。

修改模板的调用内容

  我们看到还有个相关页面,这里我们弃之不用倒显得浪费了。

可以利用起来的相关页面

  我们也可以对其进行一番改造,调用处相关的一些单页类的栏目来起到增加内链的作用。调用很简单,假设我们企业简介的ID为1,其他单页类栏目ID分别为2、3、4的话,我们可以这样写来实现这些栏目的调用:

  {dede:channelartlist typeid='9,12'}

  {dede:type}

  [field:typename/]

  {/dede:type}

  {/dede:channelartlist}

  保存,生成栏目就可以看到效果了。当然默认的模板是有些寒酸,不过我们可以自己制作模板让其更加美观一些,那就看你CSS运用的怎么样了!我们看一个效果比较美观的:

通过栏目内容调用的单页面

  如果你有更好的方法来制作可以动态更新的单页的话,欢迎大家留言板留言,本站感激之至。

  好今天的dede每日一课就到这里,欢迎大家关注其他的中国SEO的dede建站每日一课的内容。同时,我们热烈欢迎会员和学员投稿,具体的投稿方式为,先注册会员,然后点击发布文章即可,如果通过审核发布成功,本站将会有小礼品相送哦!~

dede数据库字段说明,dede_addonarticle 附加文章表,操作方法如下:

1、首先登录dedecms网站后台,在“核心”模块下找到“网站栏目管理”,如下图所示。

2、然后在“栏目管理中”增加顶级栏目。

3、接着在常规选项中填写栏目名称,文件保存目录和目录相对位置。

4、栏目内容可填写可不填写,如果填写,可以在栏目页通过“{dede:fieldcontent}”调用。

5、设置好后,点击保存,这样就成功新建了一个顶级栏目,如下图所示就完成了。

两种可能。

第一种:你以前的栏目内容模型选的是soft或者其他的,然后你发表了一些文章,再之后你将栏目内容模型变更为article或者不同于soft的其他内容模型。那么你会看到栏目中有文档数,但是点进去没有文档。

第二种:曾经通过sql语句直接删除过dede_article或者dede_archives或者dede_arctiny中的记录,这三个表是有关联的,如果要通过sql语句删除内容,一定要同时将这三个表中的同一条关联内容全部删除,否则就会造成这种情况。

两种问题最终都可以通过sql语句解决,这就是原因,当然你通过后台提供的功能解决了是最简单的,恭喜你。

dedecms具有很好的生成HTML功能,在后台主页面中也添加了一键更新功能,不过,由于DEDECMS后台功能比较完善,可以自动添加自定义文档,而这些文档的更新,必须在单页文档管理栏目下才能完成,点击生成/一键更新无法更新

因此我在后台的文件中填上了以下代码,使得dede自定义文档在更新网站时能够自动完成更新

后台文件 默认/dede/ 目录下

makehtml_allphp

更改位置

144行:源文件

else if($step==10)

{

$adminID = $cuserLogin->getUserID();

$mkcachefile = DEDEDATA"/mkall_cache_{$adminID}php";

@unlink($mkcachefile);

OptimizeData($dsql);

ShowMsg("完成所有文件的更新!","javascript:;");

exit();

}//make step

修改为以下代码后

else if($step==10)

{

include_once(DEDEINC"/arcsgpageclassphp");

$dsql->Execute("ex","SELECT aid FROM `#@__sgpage` ");

$i = 0;

while($row = $dsql->GetArray("ex"))

{

$sg = new sgpage($row['aid']);

$sg->SaveToHtml();

$i++;

}

$adminID = $cuserLogin->getUserID();

$mkcachefile = DEDEDATA"/mkall_cache_{$adminID}php";

@unlink($mkcachefile);

OptimizeData($dsql);

ShowMsg("完成所有文件的更新!","javascript:;");

exit();

}//make step

通过更改以上代码,既可以使得dedecms的一键更新成为真正意义上的一键更新

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 怎么解决织梦dedecms生成栏目HTML缓慢

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情