Drupal - 如何在节点编辑表单中禁用“输入格式”字段集

时间:2010-07-01 09:41:36

标签: drupal forms input format

我正在使用hook_form_alter来禁用作者添加或编辑节点时的某些发布选项:

/**
 * hook_form_alter ()
 */
function mymodule_form_alter(&$form, $form_state, $form_id) {
  global $user;

if ($form['#id'] == 'node-form') {

    unset($form['comment_settings']);
    unset($form['path']);
    unset($form['revision_information']);
    unset($form['author']);
  }
  } 

但是 - 我找不到(甚至在调试器中)要取消设置的变量来禁用输入格式选项以防止用户更改默认格式。 你还有其他办法吗?

3 个答案:

答案 0 :(得分:1)

如果我们确保在filter_form_alter(或从任何其他模块更改表单挂钩)之后调用我们的钩子,

HOOK_FORM_ALTER将起作用。 这是通过将drupal系统表中的模块权重设置为比我们竞争的其他人更大来完成的。它通常在hook_install中完成:

db_query("UPDATE {system} SET weight = [yournumber] WHERE name = 'yourmodulename'");

Drupal使用权重字段来确定顺序或调用挂钩。

取自: http://drupal.org/node/110238

希望它会对某人有所帮助。

答案 1 :(得分:1)

嗯,为什么不设置过滤器格式,以便普通用户不会有多个,只需删除所有人的管理过滤器权限,这不是“残忍的”,称为“安全”。

答案 2 :(得分:0)

禁用“管理过滤器”权限有效,但感觉有点残忍。