我一直在使用hook_alter来修改自定义PHP模块中的表单。我开始采用相同的方法修改“节点添加”表单的结果页面。但是这个页面不是表单,所以我没有表单ID可以挂钩。实际上它包含一个登录表单,但不包含我正在寻找的元素。
接下来我克隆了被调用的node.tpl.php文件并将其命名为node-my-content-type.tpl.php。如果我在此页面添加“hello world”,则会在顶部显示该短语,因此我知道它正在运行。
然而,在这里我的所有内容似乎被扁平化为一个名为$ content的字符串,因此操纵它变得非常困难。
在这种情况下我应该采用什么方法?
答案 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...
}