Arama blok Drupal çalışmıyor

1 Cevap php

I just uploaded a test site on the following location : www.betterclassofleaders.co.cc/whackk I am using a customised search block (customised through search-theme-form.tpl.php) but it does not work. If you type in a search term and hit Enter it will go to the search result page but without actually performing the search.

Sonuçları sayfası üzerinden arıyor, normal olarak çalışır. Herhangi bir fikir sorun ne olabilir?

1 Cevap

Görünüşe göre, doğrudan search-theme-form.tpl.php olarak HTML değiştiremezsiniz thats yapmak için değil, doğru yolu beri. Yani benim sınıf ekleme ve onFocus ve onBlur nitelikleri sorun oldu.

Bunu yapmak için doğru yolu temaları template.php dosya değiştirmek için. Temelde biz form_alter() form öğeleri değiştirmek için kullanıyor olacak. HTML şekilde kullanarak yanlış olduğu. Aşağıdaki kodu bir göz atın (alınan: here)

<?php
/**
* Override or insert PHPTemplate variables into the search_theme_form template.
*
* @param $vars
*   A sequential array of variables to pass to the theme template.
* @param $hook
*   The name of the theme function being called (not used in this case.)
*/
function yourthemename_preprocess_search_theme_form(&$vars, $hook) {
  // Note that in order to theme a search block you should rename this function
  // to yourthemename_preprocess_search_block_form and use
  // 'search_block_form' instead of 'search_theme_form' in the customizations
  // bellow.

  // Modify elements of the search form
  $vars['form']['search_theme_form']['#title'] = t('');

  // Set a default value for the search box
  $vars['form']['search_theme_form']['#value'] = t('Search this Site');

  // Add a custom class and placeholder text to the search box
  $vars['form']['search_theme_form']['#attributes'] = array('class' => 'NormalTextBox txtSearch', 
                                                              'onfocus' => "if (this.value == 'Search this Site') {this.value = '';}",
                                                              'onblur' => "if (this.value == '') {this.value = 'Search this Site';}");

  // Change the text on the submit button
  //$vars['form']['submit']['#value'] = t('Go');

  // Rebuild the rendered version (search form only, rest remains unchanged)
  unset($vars['form']['search_theme_form']['#printed']);
  $vars['search']['search_theme_form'] = drupal_render($vars['form']['search_theme_form']);

  $vars['form']['submit']['#type'] = 'image_button';
  $vars['form']['submit']['#src'] = path_to_theme() . '/images/search.jpg';

  // Rebuild the rendered version (submit button, rest remains unchanged)
  unset($vars['form']['submit']['#printed']);
  $vars['search']['submit'] = drupal_render($vars['form']['submit']);

  // Collect all form elements to make it easier to print the whole form.
  $vars['search_form'] = implode($vars['search']);
}
?>

In yourthemename_preprocess_search_theme_form - 'yourthemename' besbelli özel tema adını yansıtır. Temelde kod kendini açıklamaktadır. yorum ve tüm ne.

Yani, temelde çalışır şekilde thats.