Я создал тип материала. Набил его полями, и теперь необходимо темизировать форму создания этого типа материала.
Например есть Поле - персоны, со списком выпадающим фио, которое имеет заголовок - Персоны.
1. Требуется изменить его на: Выберите одну из персон из списка
2. Требуется изменить его на: оставить без заголовка, а добавить сверху поля описание действий пользователя или описание этого поля.
Что мне для этого нужно?
1. Ищу id формы этой
Вкл. файрбаг и нахожу следующее:
id="edit-field-noderef-person-nid-nid"
И видимо нужно использовать следующее
и что дальше делать ?
Комментарии
вставляю в template.php
но выдает ошибку.
а если в свой модуль то тоже ошибки
switch ($form_id) {
case 'edit-field-noderef-person-nid-nid_form':
$form['person'] = array(
'#title' => t('Person'),
);
break;
}
}
типа говорит "Ой.. ошибся-(("? или что-то конкретное?
правильный $form_id проще найти ,вставив
echo $form_id.'</br>';
в функцию mymodule_form_alter
edit-field-noderef-person-nid-nid_form - это идентификатор поля, а не формы
я вставил. но он находит лишь
question_node_form
shoutbox_add_form
а для конкретной поля чото нету или мне нода формы и нужна?
это id всей формы а как к конкретному полю подобраться?
Должно быть так:
<?php function mymodule_form_alter(&$form, $form_state, $form_id) {
switch ($form_id) {
case 'question_node_form':
$form['идентификатор_поля']['#title'] = t('Person');
break;
}
} ?>
посмотреть структуру формы:
<?php
echo '<pre>'.print_r($form,TRUE).'</pre>';
?>
ок.
чото не пашет как бэ
case 'edit-question-node-form':
$form['edit_field_noderef_person_nid_nid']['#title'] = t('4el');
break;
}
неработает чото
<select id="edit-field-noderef-person-nid-nid" class="form-select" name="field_noderef_person[nid][nid]">
<option value="">- Нет -</option>
<option value="1553">0</option>
<option value="1528">1</option>
<option selected="selected" value="1552">2</option>
</select>
</div>
<div id="edit-title-wrapper" class="form-item">
может нужно удалить для начала ???
даже удалить поле из этой формы не выходит...
$form по ссылке передается? &(амперсанд) стоит перед параметром?
function mymodule_form_alter(&$form, $form_state, $form_id)
вот как у меня
if ('profile_node_form' == $form_id) {
$form['title']['#type'] = 'value';
$form['title']['#required'] = FALSE;
}
if ($form_id == 'comment_form') {
$form['comment_filter']['comment']['#title'] = '';
$form['submit']['#value'] = t('Submit');
unset($form['_author'], $form['preview']);
}
switch ($form_id) {
case 'question-node-form':
$form['edit_field_noderef_person_nid_nid']['#title'] = t('4el');
break;
}
}
my_module в модулях активирован?
поставьте в начале и в условиях функции что-от типа:
echo "Формальтер стартанула";
echo "Обрабатывается форма такая-то";
и т.п.
решил задачу пока сайт был в дауне. нужно было название поля а не идификатор поля прописывать...