drupal模块alter视图或节点
我一直在使用hook_alter修改定制PHP模块中的表单。我开始采用同样的方法修改“节点添加”表单的结果页面。然而,这个页面不是一个表单,所以我没有一个表单ID来连接。实际上,它包含一个登录表单,但它不包含我正在寻找的元素 接下来,我克隆了node.tpl.php文件,名为node-my-content-type.tpl.php。如果我将“hello world”添加到此页面,短语将显示在顶部,因此我知道它正在工作 然而,在这里,我的所有内容似乎都被展平为一个名为$content的字符串,因此处理它变得非常困难drupal模块alter视图或节点,drupal,hook,drupal-alter,Drupal,Hook,Drupal Alter,我一直在使用hook_alter修改定制PHP模块中的表单。我开始采用同样的方法修改“节点添加”表单的结果页面。然而,这个页面不是一个表单,所以我没有一个表单ID来连接。实际上,它包含一个登录表单,但它不包含我正在寻找的元素 接下来,我克隆了node.tpl.php文件,名为node-my-content-type.tpl.php。如果我将“hello world”添加到此页面,短语将显示在顶部,因此我知道它正在工作 然而,在这里,我的所有内容似乎都被展平为一个名为$content的字符串,因此
在这种情况下,我应该使用什么方法?您可以通过执行以下操作来确定当前用户的属性:
global $user;
var_dump($user);
这将显示您的帐户。因此,如果您想按角色限制某些内容,您可以执行以下操作:
if (in_array('administrator', $user->roles)) {
// code
}
但我认为您更适合使用CCK和内容权限来控制字段级别的可见性,就像这样。默认管理员帐户在用户表中的uid始终为1,因此要为除管理员之外的所有人执行某些操作,您可以执行以下操作:
// Bring the $user object into scope
global $user;
if ($user->uid != 1) {
do something here...
}
实际上,我意识到$content不是我应该看到的。$node数组也会传入,并且可以以与表单中使用$form类似的方式使用。现在我必须弄清楚如何确定用户是否为管理员。您到底想做什么?您是否定义了“管理员”角色并为其分配了用户,或者您只是想确定该用户是否是您在安装过程中创建的默认管理员用户?凯文:我正在尝试修改默认视图节点页面,以排除除管理员以外的所有人的特定元素,如经度和纬度值。Flaming:事实上,我的意思是,如果我没有弄错的话,可以直接在内容类型中控制位置节点类型的默认admin.Lat/long值。