Речь идет о форме поиска.
Требуется разместить сабмит кнопку перед полем ввода текста. Обычно помогало свойство weight, в данном случае либо не помогает либо я его не туда леплю
Вроде так:
<?php
$form['actions']['submit']['#weight'] = ...
?>
Текстовое поле
<?php
$form[$form_id]['#weight'] = ...
?>
И это, hook_form_alter вызывается в модуле а не в теме. Если нужно в теме - смотрите способ номер 2 из первого комента
Комментарии
Вроде не туда лепите, однако там есть еще и альтернативный вариант
http://api.drupal.org/api/drupal/modules%21search%21search-block-form.tp...
т.е. в шаблоне блока можно вывести уже готовую форму, а можно выводить все по своему
В 7-ке приходилось у обоих элементов менять вес чтобы их поменять местами. Проверьте.
А что css с такими задачами уже не справляется? Float:right на поле.
Ну это я знаю, захотелось через api сделать
Парни, туплю ужасно. Если обработку делаю в template.php, в какой функции нужно менять вес полей, и что именно в массиве поменять надо?
На сейчас пробую менять так:
<?php
function mythemename_form_search_block_form_alter(&$form, &$form_state) { ... }
}
?>кнопку на картинку поменял, а вот где поменять #weight у submit и input не могу догадаться. Почти день над ней сижу
дубль
Вроде так:
<?php
$form['actions']['submit']['#weight'] = ...
?>
Текстовое поле
<?php
$form[$form_id]['#weight'] = ...
?>
И это, hook_form_alter вызывается в модуле а не в теме. Если нужно в теме - смотрите способ номер 2 из первого комента
Неа, не получается. Ни из модуля, ни из template.php. Кстати вариант когда добавляются данные в template.php взят тут
И там именно _alter? и при этом даже работает?
да, в template.php
<?php
function ninesixtyrobots_form_search_block_form_alter(&$form, &$form_state) {
$form['actions']['submit']['#type'] = 'image_button';
$form['actions']['submit']['#src'] = drupal_get_path('theme', 'ninesixtyrobots') . '/images/search.png';
$form['actions']['submit']['#attributes']['class'][] = 'btn';
}
?>
Фуух, сделал. Вот так работает
<?php
function themename_form_search_block_form_alter(&$form, &$form_state) {
$form['actions']['submit']['#type'] = 'image_button';
$form['actions']['submit']['#src'] = drupal_get_path('theme', 'themename') . '/images/search.png';
$form['actions']['#weight']=1;
$form['search_block_form']['#weight'] = 2;
}
?>
Можно и в template.php и в модуль размещать, работает и там и там.
sg85 - спасибо за пинок в нужном направлении
дубль сообщения
Во блин, точно, родителя двигать же надо было))
чего только тут не выяснишь, похоже я нуб в темизации, пойду искать информацию по этому моменту.
Я больше опытным путем стараюсь выяснять. Не люблю теорию