[решено] Добавить аватар (user_picture) в форму добавления комментария

Аватар пользователя shevgeny shevgeny 13 мая 2016 в 9:57

Не могу разобраться с тем, как отразить в форме добавления комментария изображение пользователя.
Как временное решение, сейчас вставил <?php global $user; print theme('user_picture', array('account' => $user)); ?> в шаблон comment-wrapper.php перед выводом формы, но это чистой воды костыль Smile так как это применимо только для формы на странице комментариев, а если, к примеру, нужно показывать аватар в том числе в формах ответа, то уже не прокатит, и это логично.
Полагаю нужно копать в сторону $form['intro']['#prefix'] которая в функции form_comment_form_alter шаблона template.php. Однако, как вывести глобальную переменную там, ума не приложу…
Есть мысли?

Лучший ответ

Аватар пользователя shevgeny shevgeny 16 мая 2016 в 11:12

Решение найдено. Нужно переопределить форму в template.php.
Мой код выглядит примерно так:

function ИМЯТЕМЫ_form_comment_form_alter(&$form, &$form_state) {
  global $user;
  if ($user->uid) {
    $form['author']['_author'] = array(
      '#title' => NULL,
      '#markup' => theme('user_picture', array('account' => $user)),
    );
  };
}

Комментарии

Аватар пользователя shevgeny shevgeny 16 мая 2016 в 11:12

Решение найдено. Нужно переопределить форму в template.php.
Мой код выглядит примерно так:

function ИМЯТЕМЫ_form_comment_form_alter(&$form, &$form_state) {
  global $user;
  if ($user->uid) {
    $form['author']['_author'] = array(
      '#title' => NULL,
      '#markup' => theme('user_picture', array('account' => $user)),
    );
  };
}