Drupal - как отключить набор полей «Формат ввода» в форме редактирования узла - PullRequest
2 голосов
/ 01 июля 2010

Я использую 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 ]

1 голос
/ 01 июля 2010

HOOK_FORM_ALTER будет работать, если мы убедимся, что наш хук вызывается после filter_form_alter (или хука из любой другой формы, изменяющей модуль). Это делается путем установки нашего веса модуля в системной таблице drupal, чтобы он был больше, чем у других, с которыми мы конкурируем. Обычно это делается в hook_install:

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

Drupal использует поле веса для определения порядка или вызова хуков.

Взято из: http://drupal.org/node/110238

Надеюсь, это кому-нибудь поможет.

1 голос
/ 02 июля 2010

Хм, почему бы вам просто не настроить форматы фильтров так, чтобы у обычных пользователей не было более одного, и просто удалить разрешение администрировать фильтры у всех, это не «жестоко», это называется «безопасным».

0 голосов
/ 01 июля 2010

Отключить разрешение «Администрирование фильтров» работает, но это кажется жестоким.

...