【问题标题】:Drupal - how to disable "Input Format" fieldset in node edit formDrupal - 如何在节点编辑表单中禁用“输入格式”字段集
【发布时间】:2010-07-01 09:41:35
【问题描述】:

我正在使用 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']);
  }
  } 

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

【问题讨论】:

  • 我必须禁用角色的“管理过滤器”权限才能在节点表单上关闭“输入格式”选项的外观。我只是不明白为什么禁用管理单个节点的输入格式和管理过滤器的可能性被连接?

标签: drupal forms input format


【解决方案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

希望对某人有所帮助。

【讨论】:

    【解决方案2】:

    嗯,你为什么不直接设置你的过滤器格式,让普通用户只有一个,然后简单地删除每个人的管理过滤器权限,这不是'残忍',而是所谓的'安全'。

    【讨论】:

    • 嗯.. 我不确定它是否有效,因为我需要至少 2 种不同的输入格式(博主可以使用所见即所得的编辑器,它需要完整的 html 格式来添加博客等......)但是对于实例 - 添加 cmets 需要采用简单过滤的 html 格式。
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 2014-06-27
      • 1970-01-01
      • 2012-02-21
      • 2011-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多