drupal 和 discuz 相互的比较

kfmfzh 的头像
Submitted by kfmfzh on 星期五, 2013-05-03 11:26

drupal 和 discuz 相互的比较。 

1. Discuz 原来是一个论坛,但经过多年的发展,在文章发布,图片展示等方面有了很大的进步。现在又加了不少社交的元素。运行速度和效率也还可以。

2. 感但是从框架的角度,drupal可以实现的功能远大于discuz. 现在drupal是CMF了。 版主能从安全性 和外观设置还有运行速度和效率等方面再深度挖掘比较一下两者么?

论坛:

区块:实体 VS 插件?(Drupal8系列)

g089h515r806 的头像
Submitted by g089h515r806 on 星期五, 2013-05-03 10:56

区块系统,一直是Drupal里面的最重要的组成部分,随着技术的发展,尤其是有了CCK模块以后,Drupal用户,很多人希望能够使用CCK扩展区块。其中的一种解决方案,就是把区块处理成为一种节点,这是Drupal6下的解决办法。

到了Drupal7,区块系统并没有升级到实体,但是有第3方模块,BEAN,可以将区块处理成为实体。将区块处理成为实体,是一种趋势。

我们这里所说的,是自定义区块,就是通过Drupal后台创建的区块,我们知道,第3方模块,通过代码也是可以创建区块的,这些通过代码创建的区块,在Drupal7下,是通过钩子函数出现的,在Drupal8下,需要将其改造为插件的形式。

因此,在Drupal8下,通过代码,也就是说通过插件可以定义区块;而对于Drupal后台创建的区块,则是实体的形式,这是通过区块模块的子模块custom_block实现的。

因此,可以说区块既是实体,又是插件。当然这样说还是有点问题的。改造为实体以后,很多相关的第3方模块,将会消失,比如说我开发的block_morelink模块,在Drupal8下,就没有多少实际用处了,除了教学以外。

是的,每一个Drupal主板本的问世,都意味着一大批的第3方模块的消失、淘汰。同时也意味着,一大批新的模块的兴起。

论坛:

Drupal版本:

逐渐消失的钩子机制(Drupal8系列)

g089h515r806 的头像
Submitted by g089h515r806 on 星期四, 2013-05-02 10:51

很早以前,我们学习Drupal的时候,都会被告知,钩子(Hook)机制,是Drupal中最核心的概念。在Drupal7里面,钩子大概分类3类:module_invoke_all调用的钩子,module_invoke调用的钩子,以及主题函数也被称之为主题钩子。

我曾经给人讲过,Drupal7,是最后一个面向过程的版本,而Drupal8则是第一个面向对象的版本。从面向过程,到面向对象,底层的代码经过了一系列的重构,这也使得Drupal能够充分的利用已有的语言层级的先进技术。

实际上,在Drupal7中,核心里面,很多地方都已经使用了面向对象的技术,但是此时的面向对象,只是起到辅助性质的作用,面向过程则是最基础的;但是这并不影响,第三方模块向面向对象的转变,很多的第三方模块,底层都是基于面向对象的。比如说Feeds、Views模块,而我在Drupal7下面所写的Field validation模块,第一版是面向过程的,第2版主要就是基于面向对象的。

论坛:

Drupal版本:

我们可以设置一个菜单的权限么?例如一个菜单只能网站编辑角色看到。

g089h515r806 的头像
Submitted by g089h515r806 on 星期二, 2013-04-30 02:15

问题:我们可以设置一个菜单的权限么?例如一个菜单只能网站编辑角色看到。

解答:可以的,这里有个文档,http://www.thinkindrupal.com/node/5017

问题:我们在view里可以获取用户的头像显示,但是,我们如果自己写代码uid,获取的用户头像一直找不到显示的办法。貌似可以得到一个public://avata.png的内容,不知道怎么显示。

解答:可以创建一个view,传递uid参数给这个view,然后由view显示头像。用views embed view显示。

论坛:

Drupal版本:

我在用flag模块的时候,遇到一个问题

g089h515r806 的头像
Submitted by g089h515r806 on 星期二, 2013-04-30 02:07

问题:我在用flag模块的时候,遇到一个问题,比如,我查看被所有用户收藏的文章,我在view里关联了被任何用户flag过的文章,结果,出来的结果好多重复的,例如,被收藏过3次的,就出现3次,我只能在view设置的高级设置里,改为去重。不过,在提示里我看到这样会很慢。

解答:慢就慢一点吧,有时候会用到distinct的,而且经常用。只有当性能存在问题的时候,才去改进它。

问题:一个区块只能放在一个区域?

解答:Drupal7里面是这样的,是Drupal区块机制的一个很大的局限性,Panels就改进了这种局限性。

问题:我本来是想做一个block,出现在多个地方,那我只能做一个view,把设置都在view里,然后在view上做多个block。一个view里存放着很多block,哪些block放在一个view里呢?是不是复用最多的一组block放在一个view里?

论坛:

Drupal版本:

我们能改写术语的链接么?

g089h515r806 的头像
Submitted by g089h515r806 on 星期二, 2013-04-30 01:57

问题:我们能改写术语的链接么?比如在Drupal节点的详细页面,对于分类术语字段,系统生成的是/taxonomy/term/nid,我们能改为另一个地址,我们另外做一个view来呈现。

解答:你可以尝试一下这个模块,entity_path,这个模块可以覆写一个entity默认的链接。

问题:我们能把view里面的一个Page另存为一个Block么?

解答:Drupal7下面的Views是不能从一个显示类型克隆到另一类显示类型的,所以这里是不可以的。不过你可以建一个同样配置的view,使用block区块显示,即可。

问题:在view的模板里,用$field引用到的是这个字段的显示值,包括html标签,那么怎么用这个字段的真实的值呢?使用$row变量么?

论坛:

Drupal版本:

页面

Subscribe to Think in Drupal RSS