drupal模块改变视图或节点

时间:2010-04-18 12:43:40

标签: drupal hook drupal-alter

我一直在使用hook_alter来修改自定义PHP模块中的表单。我开始采用相同的方法修改“节点添加”表单的结果页面。但是这个页面不是表单,所以我没有表单ID可以挂钩。实际上它包含一个登录表单,但不包含我正在寻找的元素。

接下来我克隆了被调用的node.tpl.php文件并将其命名为node-my-content-type.tpl.php。如果我在此页面添加“hello world”,则会在顶部显示该短语,因此我知道它正在运行。

然而,在这里我的所有内容似乎被扁平化为一个名为$ content的字符串,因此操纵它变得非常困难。

在这种情况下我应该采用什么方法?

2 个答案:

答案 0 :(得分:1)

您可以通过执行以下操作来确定当前用户的属性:

global $user;
var_dump($user);

这将显示您的帐户。因此,如果您想按角色限制某些内容,您可以这样做:

if (in_array('administrator', $user->roles)) {
  // code
}

但我认为您更适合使用CCK和内容权限来控制这样的字段级可见性。

答案 1 :(得分:0)

默认的管理员帐户在users表中的uid始终为1,因此要为除admin之外的所有人执行某些操作,您可以这样做:

// Bring the $user object into scope
global $user;

if ($user->uid != 1) {
  do something here...
}