LINUX.ORG.RU

[drupal 7] Трудности с темизацией user_login_block


0

1

Приветствую! Не получается переопределить user_login_block в mytheme/template.php. Пробовал двумя способами:

1) Через темплейт

// template.php

function mytheme_theme() {
  return array(
    'user_login_block' => array(
      'template' => 'templates/user-login',
      'arguments' => array('form' => NULL),
    ),
  );
}


function mytheme_preprocess_user_login_block(&$variables) {

/* var_dump($variables) в этом месте говорит, что $variables cocтоит из 2-х элементов с именами "" и "theme_hook_suggestions", элемента с именем "form" нет. */

  $variables['rendered'] = drupal_render($variables['form']);
}

// templates/user-login.tpl.php

<?php 
  print $rendered;
?>

2) Через функцию

// template.php

function mytheme_theme() {
  return array(
    'user_login_block' => array(
      'arguments' => array('form' => NULL),
    ),
  );
}

function mytheme_user_login_block($form) {
  $output .= drupal_render($form);
  return $output;
}

Во последнем случае apache2 виснет, потому что mytheme_user_login_block() зацикливается из-за вызова drupal_render().

В первом случае ничего не работает, потому что элемента $variables['form'] не существует. Им должен быть $variables["], но если я использую его, то повторяется сценарий из пункта 2).

Подскажите, пожалуйста, как мне правильно темизировать user_login_form.



Последнее исправление: Sergey_MSU (всего исправлений: 2)

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.