Как поменять местами ссылки "Регистрация, Напомнить пароль" и кнопку "Вход"? в 6 версии в template.php это делалось так:
<?php
function mytheme_theme($existing, $type, $theme, $path) {
return array(
'user_login_block' => array(
'arguments' => array('form' => NULL),
),
);
}
function
mytheme_user_login_block($form){
$output = '';
$output .= drupal_render($form['name']);
$output .= drupal_render($form['pass']);
$output .= drupal_render($form['links']);
$output .= drupal_render($form['submit']);
$output .= drupal_render($form);
return
$output;
}
?>
Как это теперь делается в седмой версии?
Комментарии
нашли решение?
смотрим id формы делаем хук_форм_альтер. Добавляем к переменной $form['первая кнопка']['#weight']=10 и она выводиться позже.
И не надо так страшно рендерить все подряд у вас производительность с таким подходом вообще будет простите хреновая.
это делается в template.php ?
http://api.drupal.org/api/drupal/modules%21system%21system.api.php/funct...
Посмотрите там есть примеры. Делается можно реализовать как любом модуле так и в template
сделал так: создал свой модуль из 2-х файлов my.info и my.module
в инфо прописал все как надо
в модуле написаЛ так:
<?php
function my_form_user_login_block_alter(&$form, &$form_state) {
// Modification for the form with the given form ID goes here. For example, if
// FORM_ID is "user_register" this code would run only on the user
// registration form.
// Add a checkbox to registration form about agreeing to terms of use.
$form['user_login_block'] = array(//здесь я так понимаю убираем или добавляем все что надо с помощью formAPI
);
} ?>
работает!
Теперь назрел вопрос: знаю, что можно еще через template.php у себя в теме через препроцесс делать подобное, так вот как это зделать там, и тчо лучше в плане производительности, делать хуки в теме или как я в модуле?
если я не ошибаюсь хуки можно вызывать только в модулях. Препроцессы это уже больше к темизации.
ошибаетесь
Да вы правы на d7 можно http://api.drupal.org/api/drupal/modules%21system%21system.api.php/funct...
на d6 нельзя.
это конечно всё замечательно ))) а где лучше в плане производительности?
Я могу сделать предположение что никакой разницы нет. Так как alter формирует одна и таже функция поэтому, исходя их предыдущего опыта, разница в порядке выполнения, сначала модули - затем тема. Поставьте девел и посмотрите время выполнения.
ok, с девелом сейчас разбираюсь. А как мой хук (из примера) правильно записать в template.php ?
разобрался, спасибо