Как удалить поля заголовка и тела по умолчанию в сгенерированном CCK типе контента Drupal? - PullRequest
7 голосов
/ 18 сентября 2008

Когда вы создаете новый тип контента в Drupal с помощью Content Creation Kit, вы автоматически получаете поля Title и Body в сгенерированной форме. Есть ли способ их удалить?

Ответы [ 5 ]

5 голосов
/ 18 сентября 2008

Если вы не являетесь разработчиком (или хотите ускорить процесс разработки), другое возможное решение - использовать модуль auto_nodetitle. Auto nodetitle позволит вам создать правила для генерации заголовка узла. Это могут быть программные правила, заменяемые токены или просто статический текст. Стоит посмотреть, если ничего другого.

3 голосов
/ 18 июня 2010

Не нужно ничего устанавливать:
при редактировании типа контента нажимайте «Редактировать»
(в меню Правка | Управление полями | Отображение полей)
нажмите на настройку формы отправки

на этикетке поля тела:
Оставьте это поле пустым, это приведет к удалению поля Body.

3 голосов
/ 18 сентября 2008

Чтобы удалить тело, отредактируйте тип, разверните «Настройки формы отправки» и оставьте пустым поле для метки поля тела. Для заголовка вы можете переименовать его в другое текстовое поле. Если вам действительно не нужны какие-либо текстовые поля, вы можете создать собственный модуль, например, под названием foo, и создать функцию foo_form_alter (), которая заменяет $ form ['title'] на # value когда $ form [ 'type'] ['# value'] - ваш тип узла.

2 голосов
/ 29 июля 2009

Если вы не разработчик (или вы хотите ускорить процесс разработки), Другое возможное решение заключается в использовать модуль auto_nodetitle. Auto nodetitle позволит вам создать правила генерации заголовка узел. Это могут быть программные правила, токены, которые заменяются, или просто статический текст Стоит посмотреть, если ничего еще.

И добавить к Уильяму Коннорсу решение ...

К сожалению, модуль плохо документирован. Это действительно эффективно, только если вы используете PHP на мой взгляд. Отметьте «Оценить 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') довольно длинный.

0 голосов
/ 26 января 2011

Первые ответы все хорошо. Так же, как еще одна идея для заглавной части ... как насчет создания пользовательского файла шаблона для типа узла cck. Вы должны скопировать node.tpl.php в node-TYPE.tpl.php, а затем отредактировать новый файл и удалить место отображения заголовка. (Не забудьте очистить кеш).

Выполнение этого означает, что у каждого узла все еще есть заголовок, поэтому для управления контентом у вас не останется пустых заголовков или чего-то подобного.

НТН!

...