Sth. About DeDeCMS
这几天和Cricket一起做一个网站。
我们选择用了DeDeCMS做后台。
我负责做个图书连载部分。
DeDeCMS粗看一下感觉是个功能挺不错的CMS,其实深入研究才发现它的局限性还是很大。
其中一个最让我头疼的就是Tag的局限性。
以“图书连载”模块为例,客户要求的杂志板块,首页面要有所发布的每期的列表链接
类似
XX年第X期
XX年第X期
……
这个利用CMS的tag很容易就能搞定。
但是客户还需要首页上还必须有最新一期的封面图片、简介和目录预览。
原以为这个是个很方便的事情,调用它的tag就行了。很搞笑的是这个CMS关于单书本内容的tag不可以在“图书连载”模块的主页上进行调用,Faint!后来考虑用这个CMS的一个叫SQL的tag,可以通过SQL语句读取数据库信息显示在页面上,这个功能到也能解决问题,于是乎一试。没成功!
仔细一看说明,被雷到了,这个tag只能非扩展模块调用……“图书连载”作为扩展模块不能用。
最后实在是没办法了,只能利用自定义tag的手动写php代码连接MySql数据库来读取里面的内容来达到客户的要求。
{dede:field runphp='yes'} $dbcnx = @mysql_connect("localhost", "root", "XXXXXXX"); $dbnum=@mysql_select_db("dedecmsv51utf8", $dbcnx); $result = @mysql_query("select dede_story_content.title from dede_story_books inner join dede_story_content on dede_story_books.id = dede_story_content.bookid where dede_story_books.id = (select max(dede_story_books.id) from dede_story_books) order by dede_story_content.addtime"); while ( $row = mysql_fetch_array($result) ) { @me=@me."<li><img src=\"images/arrow_blue.gif\" />".$row["title"]."</li>"; } {/dede:field}
DeDeCMS现已经是挺受欢迎的一个PHP的CMS,不过在易用性上还是有待提高的。对于不会PHP+MySql的用户,这个问题就不太好解决了。CMS的初衷就是为了让大多数人在DeDeCMS配置好的情况下都能方便的管理网站内容。更改网站外观也不需要懂PHP,只要HTML+CSS做个模板+一些DeDe的tag就搞定了。现在就为了一个并不是很复杂的功能而需要用户自己写PHP显然违背了CMS的初衷。
当然作为一个算是个程序员的我,如果就因为写这么小段PHP代码而大发牢骚完全是没必要的,只是觉得DeDeCMS还是有很多不足之处需要改进。
PS:如果哪位朋友在模板上添加上面的运行自写PHP代码的自定义标签,不能生成你需要的页面,可能是你的DeDeCMS没有自写PHP的标签功能,你需要在pub_dedetag.php文件里面做些小小修改,网上很多,在这我就不赘述了。不同的版本的DeDeCMS有些有此功能,有些没有(这个也让我觉得很奇怪……)。当然也有另外一个可能性就是这位朋友写的PHP代码有问题,就无法正确运行>_<
PS:本日志内容仅限于DEDECMS4.X,以后的新版本无论是功能php文件的位置和bug的修复上应该都会有所不同
Push







有字天书, 加油~