Создание собственного типа контента в drupal - PullRequest
0 голосов
/ 17 декабря 2009

я пытался создать пользовательский тип контента в drupal, но ненужные функции, такие как Название , Настройки меню и Информация о редакции , URL-псевдонимы идут с этим, чего я на самом деле не хочу .. потому что это ничего не значит для пользователя .. Как я могу скрыть все эти вещи, просто сохраняя поля (скажем, только 3 поля из CCK), которые я хочу только для этого пользовательского типа контента ?? спасибо ..

Ответы [ 6 ]

2 голосов
/ 17 декабря 2009

Вам нужно будет делать разные вещи, чтобы делать то, что вы хотите. Одним из них является добавление модуля auto_nodetitle, предложенного другими. Вы можете скрыть «Тело», удалив «Метку поля тела» на экране редактирования для своего пользовательского типа контента. Наконец, вам нужно будет сделать правильные настройки для ваших полей CCK.

Если у вас есть поля CCK, которые вы хотите, чтобы они могли редактировать, и другие, которые вы не хотите, чтобы они редактировали, вам нужно включить модуль «Разрешения на контент» в разделе CCK страницы администрирования модулей. После этого вы можете перейти на страницу разрешений ролей и указать, какие роли имеют доступ к каким полям. Хотя разрешения потенциально могут скрывать поля CCK от пользователя, вы также можете контролировать, какие поля находятся в представлениях тизера, узла и RSS, в разделе «Отображение полей» экранов редактирования вашего типа контента.

2 голосов
/ 17 декабря 2009

С модулем auto_nodetitle вы можете его скрыть, а не удалить. Затем просто назначьте заголовок, например «your-content-type-nid», чтобы он был разным для каждого узла (nid будет разным) Это был бы лучший заголовок, чем пустой.

2 голосов
/ 17 декабря 2009

Вы можете автоматически создавать заголовки, используя модуль auto_nodetitle , который также позволяет вам удалить поле заголовка из формы отправки узла.

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

1 голос
/ 12 января 2011

Можно попробовать что-то вроде ниже, используя hook_form_alter.

функция my_module_form_alter (& $ form, $ form_state, $ form_id) {

if($form_id='company_node_form'){
    $form['menu']['#prefix'] ='<div style="display:none">';
    $form['menu']['#suffix'] ='</div>';
    $form['revision_information']['#prefix'] ='<div style="display:none">';
    $form['revision_information']['#suffix'] ='</div>';
    $form['author']['#prefix'] ='<div style="display:none">';
    $form['author']['#suffix'] ='</div>';
    $form['options']['#prefix'] ='<div style="display:none">';
    $form['options']['#suffix'] ='</div>';
}

}

1 голос
/ 17 декабря 2009

Настройки меню, информация о редакции и информация о типе псевдонима URL - это дело администратора. Если вы создадите нового пользователя без прав администратора, я почти уверен, что он его не увидит.

0 голосов
/ 17 декабря 2009

Возможно, вы захотите попробовать модуль NodeFormCols. Он делает несколько удобных вещей, в том числе добавляет кнопку управления формой, которая позволяет скрыть большинство полей в форме ввода.

...