Когда вы создаете новый тип контента в Drupal с помощью набора контента, вы автоматически получаете поля Title и Body в сгенерированной форме. Есть ли способ их удалить?Как удалить поля заголовка по умолчанию и тела в созданном CCK содержимом типа Drupal?
ответ
Если вы не разработчик (или хотите сократить процесс разработки), еще одним возможным решением является использование модуля auto_nodetitle. Auto nodetitle позволит вам создавать правила для создания заголовка узла. Это могут быть программные правила, заменяемые токены или просто статический текст. Стоит посмотреть, если ничего другого.
Чтобы удалить тело, отредактируйте этот тип, разверните «Настройки формы отправки» и поместите в поле для метки поля тела. Для названия вы можете переименовать его в другое текстовое поле. Если вам действительно не нужны никакие текстовые поля, вы можете создать пользовательский модуль, например, называемый foo, и создать функцию foo_form_alter(), которая заменяет $ form ['title'] #value, когда $ form ['type'] ['# value '] - ваш тип узла.
Если вы не разработчик (или вы хотите комбинациям процесс развития), Другим возможным решением является использовать модуль auto_nodetitle. Auto nodetitle позволит вам создать правила для создания заголовка узла . Это могут быть программные правила, жетоны, которые заменены, или просто статический текст. Стоит посмотреть, если ничего еще.
И добавить к William OConnor's решение ...
Модуль плохо документированы, к сожалению. Это действительно эффективно, если вы используете PHP с ним, на мой взгляд. Отметьте в «Evaluate PHP в шаблон» и введите в «Шаблон для названия» поле что-то вроде:
<?php echo $node->field_staff_email[0]['email']; ?>
или:
<?php echo $node->field_staff_name[0]['value'] . '-' . gmdate('YmdHis'); ?>
... где я имел поле с внутренним имя «field_staff_email» и использовал модуль электронной почты CCK, поэтому был использован тип «email». Или у меня было поле с внутренним именем «field_staff_name» и было просто обычным текстовым полем - таким образом, использовался тип «значение». Вызов gmdate() на конце - это обеспечить уникальность, потому что у вас могут быть два или несколько сотрудников, названных одинаковыми.
Как я обнаружил, все это было на первых экспериментировал с:
<?php print_r($node); ?>
... что, конечно, дали сумасшедшие результаты, но, по крайней мере, я смог разобрать вывод и выяснить, как использовать $ node правильно здесь.
Просто обратите внимание, что если вы используете любую из этих подпрограмм PHP, то в итоге вы получите список содержимого в Drupal Admin, показывающий записи точно так же, как вы закодировали PHP. Вот почему я не просто использовал gmdate(), потому что тогда было бы трудно найти мою запись для редактирования.
Обратите внимание, что вы можете использовать преобразование Base-36 в gmdate(), чтобы уменьшить размер вывода, потому что gmdate ('YmdHis') довольно длинный.
Нет необходимости устанавливать что-либо:
при редактировании типа содержимого, нажмите кнопку «Редактировать»
(в меню Edit | Управление полями | Показать поля)
нажмите на Представление настройки формы
на метка поля тела:
Оставьте поле пустым, оно удалит поле «Тело».
Исходные ответы - все хорошо. Так же, как другая идея для части заголовка ... как насчет создания настраиваемого файла шаблона для типа узла cck. Скопируйте node.tpl.php на node-TYPE.tpl.php, а затем отредактируйте новый файл и удалите, где будет отображаться заголовок. (Не забудьте очистить кеш).
Выполнение этого способа означает, что каждый узел по-прежнему имеет заголовок, поэтому для управления контентом у вас не осталось пустых заголовков или чего-либо подобного.
HTH!
Это хорошо работало для поля «Тело», но я предпочитаю модуль auto_nodetitle для удаления поля «Имя». Спасибо! – 2008-09-18 13:04:52