Как сделать поле заголовка узла/формы добавления скрытым или заблокированным


Я предварительно заполняю заголовок узла/add/content_type, используя URL-адрес. Я бы хотел, чтобы эта форма была скрыта или заблокирована, чтобы пользователь не мог случайно ее отредактировать. Я просматривал документацию Drupal и вообще не нашел способа скрыть поля. Любая помощь будет признательна.

Author: Mike, 2012-05-17

2 answers

Я бы, наверное, просто скрыл это с помощью CSS, если честно.

Либо так, либо я бы использовал Автоматические заголовки узлов для заполнения заголовка токенами (в вашем случае токеном пути), поскольку у него есть возможность скрыть поле заголовка И автоматически сгенерировать его с минимальными усилиями.

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

Когда установлен модуль токенов, можно использовать различные данные узла для автоматически сгенерированного заголовка - например, использовать текст поля CCK (начиная с 5.x).

Другим вариантом было бы использовать hook_form_alter() и установить #disabled в TRUE, чтобы отключить ввод данных пользователем.

 4
Author: Chapabu, 2020-06-15 09:13:00

Вы можете использовать css, чтобы просто скрыть элемент заголовка в форме редактирования узла. Я также думаю, что вы должны быть в состоянии достичь этого, используя hook_node_presave(), что-то вроде этого будет работать:

function YOURMODULE_node_presave($node) {
  // you may also wan't to check the 'status' of the node
  if($node->nid && $node->type == 'your-custom-content-type') {
     // check if title has changed
     if($node->title != 'your-prepopulated-value') {
        // notify user that the update couldn't be performed
        drupal_set_message('You may not change the title of this kind of nodes!','warning');
        // set node to null to force making no changes
        $node = null;
     }
  }
  return $node;
}
 0
Author: Cyclonecode, 2012-05-17 09:43:39