You are here

drupal7

内容包括drupal7教程,drupal7汉化,drupal7主题,drupal7模板,drupal7中文手册,drupal7 views,drupal7中文,drupal7安装,drupal7开发,drupal7视频,等

逐渐消失的钩子机制(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版本:

我做了一个杂志的视图,里面选字段的时候,找不到找做的eva的视图?

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

问题:我用eva实现了在文章列表,在杂志的的显示页面能看到杂志的文章,我做了一个杂志的视图,里面选字段的时候,找不到找做的eva的视图。

解答:在views中可以尝试一下这个模块,http://drupal.org/project/views_field_view Views field View,将views试图处理成Views的字段。

问题:我们目前用flag模块,让用户选择喜欢的照片。“flag”链接使用
<?php print flag_create_link('bookmarks', $node->nid); ?>
这样生成的,在列出照片的view,好像没有地方可以写这样的php code来生成一个链接吧

解答:你可以在 Views的 模板文件中写。

论坛:

Drupal版本:

在用户积分模块里,在Rule里面可以根据一变量来决定给的积分数量么?

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

问题:在用户积分模块里,在Rule里面可以根据一变量来决定给的积分数量么?

解答:是的,这个输入框中可以使用token,点击可以这个按钮(“切换到数据选择器”)即可。

问题:Answer模块,用来做问答。第265行是
$original = $entity->original;,

在回答的时候,file模块报了一个错。

Notice: Undefined property: stdClass::$original 在 file_field_update() (行 265 在 E:\drupal\www\mibaby\modules\file\file.field.inc

解答:你把代码改成这个样子:

$original = isset($entity->original) ? $entity->original :'';

问题:这样一个页面,要列出杂志的同时,列出杂志里的文章,是不是需要用panel才能做出来呢?

论坛:

Drupal版本:

如何能够利用views和profile2列出一个用户列表?

mabin830707 的头像
Submitted by mabin830707 on 星期六, 2013-04-27 09:31

用profile2创建了多个profile,现在需要将网站内的某个角色用户全部用views显示出来,其中的views中的field就是在profile2中创建的字段,请问老葛,要实现这个功能,应该如何在views中进行设置?

论坛:

Drupal版本:

页面

Subscribe to RSS - drupal7