Здравствуйте, темизирую магазин в связке Drupa 6 + ubercart использую тему carthelp (сборка инет магазина).
Добрался до формы поиска и завис, перелопатил гору материала, в файле template.php прописал следующие функции:
<?php
function carthelp_theme(){
return array(
'search_block_form' => array(
'arguments' => array('form' => NULL),
),
);
}
function carthelp_search_block_form($form) {
$output = '';
unset($form['search_block_form']['#title']);
$form['search_block_form']['#attributes']['class'] = 'sbox';
$form['submit']['#type'] = 'image_button';
$form['submit']['#id'] = 'b_img';
$form['submit']['#src'] = drupal_get_path('theme', 'carthelp') . '/images/sbtn.png';
$form['submit']['#attributes']['class'] = 'sbtn';
$form['search_block_form']['#value'] = 'поиск';
$form['submit']['#value'] = 'Найти';
$form['search_block_form']['#attributes'] = array(
'onBlur'=> "if (this.value.length == 0) {this.value='{$form['search_block_form']['#value']}'}",
'onFocus'=> "if (this.value== '{$form['search_block_form']['#value']}') {this.value=''}"
);
$output .= drupal_render($form);
return $output;
}
?>
Добился присвоения классов полю ввода и ,частично, кнопке 'submit' но кнопка на изображение почему то не меняется и вставляется ниже строки поиска, мало того если заглянуть в генерируемый код там вообще полный мрак, куча каких то классов и DIV ов.
Помогите, кто может, заранее благодарен
Комментарии
для 7 есть здесь
http://drupalfly.ru/lesson/theme_search_block_for_template
Попробуйте выкинуть всё и просто заменить кнопку на картинку через css.
В этом случае чистый CSS не очень подходит, т.к. кнопка submit определяется для всех кнопок сайта, соответсвенно при если мы чисто поменяем дизайн кнопки через CSS то все кнопки изменятся, а если переопределять класс для данной конкретной кнопки, всё равно прийдется лезть в код,
Что касается статьи, там из примера видно, что имеется та же проблема что и у меня, кнопка находится за DIVом с текстовым полем поиска
так в данном примере показана функция замены этой кнопки на изображение, а далее стилями перемещай куда тебе ее нужно!
<?php $form['submit']['#type'] = 'image_button'; ?>
В том то всё и дело, эта функция ДОЛЖНА заменять кнопку на картинку, но на деле получается кнопка, а сверху картинка, и всё это художество вынесено за DIV с текстовым полем поиска, тоесть сама кнопка находится снизу поля, и с этим ничего поделать не получается.
скорее всего кнопка живёт не в $form['submit'] а где-то в дебрях $form['search_block_form'] - сделайте вывод объекта с формой и посмотрите где конкретно она обитает.
По поводу css и кнопок на всё сайте - можно же поменять кнопку только в пределах формы по её классу/id
спасибо, попробую, вечером отпишусь по результату
не получается вывести объект напрямую в шаблон <?php print ();?> Вывожу его через регион, но тут возникает проблема, он оборачивается в кучу DIVов со своими класами, кто нибудь знает, как снести всё это добро и вывести просто Serch form??? обернутый в собственный див ???
не получается вывести объект напрямую в шаблон <?php print ();?> Вывожу его через регион, но тут возникает проблема, он оборачивается в кучу DIVов со своими класами, кто нибудь знает, как снести всё это добро и вывести просто Serch form??? обернутый в собственный див ???
не получается вывести объект напрямую в шаблон <?php print ();?> Вывожу его через регион, но тут возникает проблема, он оборачивается в кучу DIVов со своими класами, кто нибудь знает, как снести всё это добро и вывести просто Serch form??? обернутый в собственный див ???
Для удобной отладки включите модуль devel.
http://ratatosk.net/drupal/tutorials/debugging-drupal.html
если у кого осталась тема carthelp скиньте плиз