18
May

DedeCMS单页面模型的实现

上次写过一篇“从一个公司网站的制作看内容管理系统的选择 ”,其中说到DedeCMS的缺陷之一是单页面没有办法很好的实现。下面把怎么实现单页面模型的作法写出来。

DedeCMS现有的单页面模型

在设计栏目的时候选择了“单独页面”后,然后点击“页面”后,是这样的一个界面:

dedecms单独页面编辑界面

他的原理是通过制定的单页面模版,直接在线编辑HTML页面,编辑完后直接保存文件。记住,你编辑的是已经生成的html文件,跟数据库没有任何联系。这种做法有着很大的问题,在你要再次修改单页面文件的时候,是读取模版后的编辑界面还是直接编辑生成后的HTML文件?如果是前者,那么以前编辑的东西就不会显示,就不能在以前修改过后的基础上修改;如果是后者,那么,模版换了怎么办?所以这个单页面模型是有很大的问题的。

一些网站制作者变通的实现

很多网站制作者把这些单独页面作为文章页面,某个栏目下级的栏目列表就是文章列表。不错,这样确实能实现一部分网站,但这样做未必很好,主要因为:

1、URI的规划不合理
在DedeCMS里,文章的URI一般是www.yourdomain.com/dir1/dir2/2007/05/17/123.html之类的,但是按照栏目结构的URI应该是www.yourdomain.com/dir1/dir2/或者是www.yourdomain.com/dir1/dir2.html让人看着比较舒服。

2、无法排序
DedeCMS的文章默认是按照发布时间倒序排的,你可以置顶一部分文章,但是不能随意的更改文章次序。把文章做为单页面栏目自然不能自由的排序了。

3、并列栏目出现多模型时,只能手工设置栏目列表

这里我列举一个公司网站的栏目结构:

这是一个公司的某个栏目及其子栏目。显然,最后一个是“列表-文章”模型,如果要这个栏目与前面三个栏目并列,如果把单独页面作为文章页面,显然是不行的。当然,你只能手动的在模版里面把栏目列表写死。

由于有以上三个问题,我们不得不重新修改这个单页面模型,使之符合我们的要求。

如何实现自动化的DedeCMS单页面模型

1、DedeCMS在选择单页面模型有这么一句话:“单独页面(栏目本身不允许发布文档)”,就是说,单独页面下不允许建立子栏目,其实不然,是可以的。他只是没有在系统里面提供给你链接,他根本没有程序上去控制它不让你生成子栏目,只要我们在浏览器里面输入:

yourdomain.com/dede/catalog_add.php?ID=3

其中3是你要在哪个单页面添加子栏目的该单页面的ID。

这样,单页面就可以添加单页面子栏目,不过这种方式的添加比较累赘,你可以通过修改如下文件里面的链接:

/dede/catalog_main.php 这个文件修改下拉菜单
/include/inc_typeunit_admin.php 这个文件修改右侧链接
在附件压缩包里面有这两个文件。

2、在数据表dede_arctype最后添加一个字段pbody,数据类型为text,主要放单页面的文本内容。

3、建立一个文件page_do.php,负责编辑单页面并且提交到数据库。

4、在模版里面嵌入代码:

{dede:field name=’pbody’ /}

即可调用。

附件:
dede-single.zip

关于公司网站的模版案例,等有空制作一个再发布。

No Comments

Be the first to comment on this entry.

Leave a comment

Name(required)
Mail (will not be published)(required)
Website

Fields in bold are required. Email addresses are never published or distributed.

Some HTML code is allowed:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>
URIs must be fully qualified (eg: http://www.dupola.com) and all tags must be properly closed.

Line breaks and paragraphs are automatically converted.

Please keep comments relevant. Off-topic, offensive or inappropriate comments may be edited or removed.

    About

      这是sheawey的blog。原创内容谢绝所有商业媒体转摘。更多介绍请看这里

    Tag Cloud