ВопросТемизация кнопки в форме поиска

Здравствуйте.
Пытаюсь темезировать кнопку в форме поиска, но ничего не выходит.
Имею следующий код:

function maindev_form_alter(&$form, &$form_state, $form_id) {
  if ($form_id == 'search_block_form') {
    $form['search_block_form']['#prefix'] = '<div class="search">';
	$form['search_block_form']['#suffix'] = '</div>';
    $form['search_block_form']['#title'] = t('Search'); // Change the text on the label element
    $form['search_block_form']['#title_display'] = 'invisible'; // Toggle label visibilty
    $form['search_block_form']['#size'] = 20;  // define size of the textfield
    $form['search_block_form']['#class'] = 'inputbox';
        $deftext = t('Поиск...');
    $form['search_block_form']['#default_value'] = $deftext; // Set a default value for the textfield
    $form['actions']['submit']['#value'] = t('GO!'); // Change the text on the submit button  
    $form['actions']['submit'] = array('#type' => 'submit', '#value' => 'Go!');
 
// Add extra attributes to the text box
    $form['search_block_form']['#attributes']['class'][] = 'inputbox';
    $form['search_block_form']['#attributes']['onblur'] = "if (this.value == '') {this.value = '".$deftext."';}";
    $form['search_block_form']['#attributes']['onfocus'] = "if (this.value == '".$deftext."') {this.value = '';}";
  }
}

Подскажите как написать что бы присвоить свой класс кнопке. И еще вопрос, почему для поля поиска мой класс добавляется, но стандартный не уходит. Как сделать что бы был присвоен только мне нужный класс?

Комментарии

Аватар пользователя Alpha
Alpha написал:

Посмотри и почитай этот пример изменения внешнего вида формы поиска.

01.03.2012 04:00
Аватар пользователя Spleshka
Spleshka написал:

Он у вас сделан с ошибками.

03.03.2012 00:24
Аватар пользователя Celsoft
Celsoft написал:

Если использовать именно мой код, то кнопку темизировать нельзя?

03.03.2012 06:40
Аватар пользователя Spleshka
Spleshka написал:

В седьмом Друпале можно.

03.03.2012 14:37
Аватар пользователя Celsoft
Celsoft написал:

У меня седьмой.
Не подскажите как сделать на примере моего кода?

03.03.2012 15:23
Аватар пользователя Spleshka
Spleshka написал:

В названии функции замените maindev на название своей темы / модуля.

03.03.2012 15:59
Аватар пользователя Celsoft
Celsoft написал:

Это как бэ моя тема...
Поле темизировал, а вот кнопку не получается.

03.03.2012 16:14
Аватар пользователя Spleshka
Spleshka написал:

А, вам именно кнопку. Ну тогда сделайте так:

function maindev_button($variables) {
  $element = $variables['element'];
  $element['#attributes']['type'] = 'submit';
  element_set_attributes($element, array('id', 'name', 'value'));
 
  $element['#attributes']['class'][] = 'form-' . $element['#button_type'];
  if (!empty($element['#attributes']['disabled'])) {
    $element['#attributes']['class'][] = 'form-button-disabled';
  }
 
  return '<span class="button"><input' . drupal_attributes($element['#attributes']) . ' /></span>';
}

И очистите кэш после этого. В данном примере я обернул все кнопки в <span class="button" />.

03.03.2012 16:17
Аватар пользователя Celsoft
Celsoft написал:

А можно ли именно кнопку поиска в моём коде темезировать, а не все кнопки на сайте?

04.03.2012 08:03
Аватар пользователя Spleshka
Spleshka написал:

Давайте определимся, что вы подразумеваете под "темизировать" ?

06.03.2012 13:37
Аватар пользователя Celsoft
Celsoft написал:

Я же написал в первом посте, что мне нужно присвоить класс для кнопки. Желательно именно через тот код который в первом посте.

06.03.2012 14:43
Аватар пользователя ice
ice написал:

Что вы с ней хотите сделать , почему вам не хватает того что есть ?

06.03.2012 15:50
Аватар пользователя Celsoft
Celsoft написал:

Нет ну какая разница? Я ясно выразился, что мне нужно присвоить индивидуальный класс для моей кнопки и желательно через мой код.

07.03.2012 04:45
Аватар пользователя Alpha
Alpha написал:
function maindev_form_alter(&$form, &$form_state, $form_id){
  if ($form_id == 'search_block_form') {
    $form['actions']['submit']['#attributes']['class'][] = 'MyClass';
  }
}

Дефолтный "form-submit" останется и к нему добавится твой класс "MyClass".

07.03.2012 10:33
Аватар пользователя Celsoft
Celsoft написал:

Спасибо, вопрос решён.

07.03.2012 11:39
Аватар пользователя Тот кто ищет ответ
Тот кто ищет ответ написал:

Как убрать дефолтный класс чтобы висел только мой на кнопке submit?

26.02.2013 17:25

Комментировать