[РЕШЕНО] Как разместить submit кнопку перед полем поисковой формы?

Главные вкладки

Аватар пользователя web09 web09 28 сентября 2012 в 17:02

Речь идет о форме поиска.
Требуется разместить сабмит кнопку перед полем ввода текста. Обычно помогало свойство weight, в данном случае либо не помогает либо я его не туда леплю

Комментарии

Аватар пользователя sg85 sg85 28 сентября 2012 в 18:08

Вроде не туда лепите, однако там есть еще и альтернативный вариант
http://api.drupal.org/api/drupal/modules%21search%21search-block-form.tp...
т.е. в шаблоне блока можно вывести уже готовую форму, а можно выводить все по своему

Аватар пользователя web09 web09 28 сентября 2012 в 18:56

"Koreychenko" wrote:
А что css с такими задачами уже не справляется? Float:right на поле.

Ну это я знаю, захотелось через api сделать

Аватар пользователя web09 web09 28 сентября 2012 в 19:33

Парни, туплю ужасно. Если обработку делаю в template.php, в какой функции нужно менять вес полей, и что именно в массиве поменять надо?

На сейчас пробую менять так:

<?php
function mythemename_form_search_block_form_alter(&$form, &$form_state) { ... }

}

?>

кнопку на картинку поменял, а вот где поменять #weight у submit и input не могу догадаться. Почти день над ней сижу

Аватар пользователя sg85 sg85 28 сентября 2012 в 20:10

Вроде так:
<?php
$form['actions']['submit']['#weight'] = ...
?>
Текстовое поле
<?php
$form[$form_id]['#weight'] = ...
?>
И это, hook_form_alter вызывается в модуле а не в теме. Если нужно в теме - смотрите способ номер 2 из первого комента

Аватар пользователя web09 web09 28 сентября 2012 в 21:08

"sg85" wrote:
...

Неа, не получается. Ни из модуля, ни из template.php. Кстати вариант когда добавляются данные в template.php взят тут

Аватар пользователя web09 web09 28 сентября 2012 в 21:31

да, в 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';
}
?>
Аватар пользователя web09 web09 28 сентября 2012 в 21:52

Фуух, сделал. Вот так работает

<?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 - спасибо за пинок в нужном направлении

Аватар пользователя sg85 sg85 28 сентября 2012 в 21:59

Во блин, точно, родителя двигать же надо было))

"web09" wrote:
да, в template.php

чего только тут не выяснишь, похоже я нуб в темизации, пойду искать информацию по этому моменту.