Мне нужно сделать поле имя обязательным к заполнению. Нашел в comment.module
<?php'#required' => (!$user->uid && $anonymous_contact == COMMENT_ANONYMOUS_MUST_CONTACT),?>
Заменил на
<?php'#required' => TRUE,?>
Все прекрасно работает. Но как эту функцию переопределить через template.php не пойму.
Пробовал так, но не получилось
<?phpfunction galinatheme_comment_form($form) {
$form['author']['name'] = array(
'#type' => 'textfield',
'#title' => t('Your name'),
'#default_value' => $author,
'#required' => TRUE,
'#maxlength' => 60,
'#size' => 30,
);
$output = '';
$output .= drupal_render($form);
return $output;
}?>
Помогите знающие люди
Комментарии
hook_form_alter
маленькая подсказка: galinatheme_form_comment_form_alter
Большое спасибо! Получилось
<?phpfunction galina_form_comment_form_alter(&$form, $form_state, $form_id) {
global $author;
$form['author']['name'] = array(
'#type' => 'textfield',
'#title' => t('Your name'),
'#default_value' => $author,
'#required' => TRUE,
'#maxlength' => 60,
'#size' => 30,
);
}?>
-
Правда у тех у кого будет на сайте регистрация, то придется этот код допиливать, т.к. он не подставляет автоматически имя.
Сделал вот так. Не знаю на сколько это правильно
<?phpfunction galina_form_comment_form_alter(&$form, $form_state, $form_id) {
global $author, $user, $is_admin;
if (!isset($form_state['comment'])) {
$defaults = array(
'name' => '',
'mail' => '',
'homepage' => '',
'subject' => '',
'comment' => '',
'cid' => NULL,
'pid' => NULL,
'language' => LANGUAGE_NONE,
'uid' => 0,
);
foreach ($defaults as $key => $value) {
if (!isset($comment->$key)) {
$comment->$key = $value;
}
}
$form_state['comment'] = $comment;
}
else {
$comment = $form_state['comment'];
}
if ($is_admin) {
$author = (!$comment->uid && $comment->name ? $comment->name : $comment->registered_name);
$status = (isset($comment->status) ? $comment->status : COMMENT_NOT_PUBLISHED);
$date = (!empty($comment->date) ? $comment->date : format_date($comment->created, 'custom', 'Y-m-d H:i O'));
}
else {
if ($user->uid) {
$author = $user->name;
}
else {
$author = ($comment->name ? $comment->name : '');
}
$status = (user_access('skip comment approval') ? COMMENT_PUBLISHED : COMMENT_NOT_PUBLISHED);
$date = '';
}
if ($is_admin) {
$form['author']['name'] = array(
'#type' => 'textfield',
'#title' => t('Authored by'),
'#default_value' => $author,
'#maxlength' => 60,
'#size' => 30,
'#description' => t('Leave blank for %anonymous.', array('%anonymous' => variable_get('anonymous', t('Anonymous')))),
'#autocomplete_path' => 'user/autocomplete',
);
}
elseif ($user->uid) {
$form['author']['_author'] = array(
'#type' => 'item',
'#title' => t('Your name'),
'#markup' => theme('username', array('account' => $user)),
);
$form['author']['name'] = array(
'#type' => 'value',
'#value' => $author,
);
}
else {
$form['author']['name'] = array(
'#type' => 'textfield',
'#title' => t('Your name'),
'#default_value' => $author,
'#required' => TRUE,
'#maxlength' => 60,
'#size' => 30,
);
}
}?>