Это неправильный способ переопределения тем в Drupal, то, что вы делаете там, заменяет оригинальные элементы, предоставленные ядром Drupal, в реестре тем.Делая это, вы получите непредсказуемые результаты, которые объяснят, почему пара из них работает, а другая нет.
Лучший способ переопределить тему - использовать соглашение об именах функций, предоставленное Drupal, MYTHEME_theme_name(&$vars)
.Таким образом, в вашем случае три функции будут выглядеть следующим образом:
function MYTHEME_user_login(&$vars) {
}
function MYTHEME_user_register(&$vars) {
}
function MYTHEME_user_pass(&$vars) {
}
Если вы хотите изменить файлы шаблонов существующих тем, вам следует использовать hook_theme_registry_alter()
:
function MYTHEME_theme_registry_alter(&$theme_registry) {
$theme_registry['user_login'] = array(
'render element'=>'form',
'template' =>'templates/user-login'
);
}
Убедитесь, что вы очищаете кеши Drupal каждый раз, когда добавляете или меняете хук, иначе изменения не будут отражены на вашем сайте.