Помощь Помогите темизировать форму поиска

zloy_admin

Разработчик
Заблокирован
Регистрация
15 Авг 2011
Сообщения
186
Реакции
28
  • Автор темы
  • Заблокирован
  • #1
Ребят подскажите как темизировать форму поиска, точнее из стандартной сделать свою?
 
шаблон же есть для темизации. какая друпа кстати у Вас?
 
Последнее редактирование:
да не, есть же например search-block-form.tpl.php search-result.tpl.php search-results.tpl.php в директории module ядра. копируете нужный шаблон, сбрасываете кэш и делаете то что нужно. Самый простой способ
 
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;
}
вставляй нужные стили, и без всяких .tpl.php
 
и кстати вариант предложеный bonzik - это по "феншую", как более быстродействующий
 
более быстродействующий? да ну? кто то изменил систему шаблонизации? если быстрее, то тогда уж alter для форм.
 
Последнее редактирование:
прошу прощения, возможно я в неадеквате (обчитавшись книжек) :), но применение шаблонов типа search-block-form.tpl.php search-result.tpl.php search-results.tpl.php, это вмешательство в процесс визуализации на самом последнем его этапе, для которого как минимум вызывается функция drupal_discover_template(), чтобы найти ваш измененый шаблон, а это накладывает дополнительные расходы, махонькие :) но все же.
Пожалуйста, поправьте меня если я не прав.

p.s. Цитата из книги ПРОФЕССИОНАЛЬНАЯ РАЗРАБОТКА САЙТОВ НА Drupal 7
Б. Мелансон, Ж. Луиси, К Негиеши, Г . Андерсон, Б. Сомерс, С . Корлоске, и др.
стр. 316
"Применение функций тем вместо шаблонов дает небольшой выигрыш в производительности,
хотя разница по большому счету получается минимальной. Поэтому вопросы производительности
в данном случае не должны влиять на ваш выбор."
 
Последнее редактирование:
Да правильно, я не спорю же. Но говорить по феншую как то неверно. генерация конечной dom все равно проходит через tpl же. "чтобы найти ваш измененый шаблон, а это накладывает дополнительные расходы, махонькие :) но все же."-- измененный, а так с ядреных модулей гребет все равно, обход своего шаблона все равно происходит, будут там лежать измененные шаблоны иль нет. Вот если бы был выбор, и можно было запретить обход tpl файлов, это другое дело.
 
вам виднее, я начинающий друпаллер, захотелось вставить свои "5 копеек", не судите строго
 
Назад
Сверху