Приветствую. Решил переопределить форму поиска. Вот исходный код формы поиска:
<div id="block-search-api-page-search" class="block block-search-api-page contextual-links-region first odd">
<div class="contextual-links-wrapper"><ul class="contextual-links"><li class="search-api-page-edit first"><a href="/admin/config/search/search_api/page/search/edit?destination=taxonomy/term/7">Edit search page</a></li>
<li class="block-configure last"><a href="/admin/structure/block/manage/search_api_page/search/configure?destination=taxonomy/term/7">Настроить блок</a></li>
</ul></div>
<form action="/%D0%B6%D0%B5%D0%BD%D1%81%D0%BA%D0%B8%D0%B5-%D0%BA%D0%BE%D1%88%D0%B5%D0%BB%D1%8C%D0%BA%D0%B8-%D0%BE%D0%BF%D1%82%D0%BE%D0%BC" method="post" id="search-api-page-search-form-search" accept-charset="UTF-8"><div><input placeholder="Введите ключевые слова для поиска" type="text" id="edit-keys-1" name="keys_1" value="" size="15" maxlength="128" class="form-text form-autocomplete live-results-search-textfield" /><input type="hidden" id="edit-keys-1-autocomplete" value="http://test17/search_api_live_results/search_api_page_1" disabled="disabled" class="live-result-autocomplete" /><input type="hidden" name="id" value="1" />
<input type="submit" id="edit-submit-1" name="op" value="Поиск" class="form-submit" /><input type="hidden" name="form_build_id" value="form--cOUwE91kq4sesvPpNeW39z5eCfQ21fipu80HNZ8V0Y" />
<input type="hidden" name="form_id" value="search_api_page_search_form_search" />
</div></form>
</div>
</div>
В template.php темы (подтема zen, имя темы new_theme) вставил функцию:
<?php
function new_theme_form_alter(&$form, &$form_state, $form_id) {
if (
$form_id == 'search-api-page-search-form-search') {
$deftext = t(' ');
$form['keys_1']['#title'] = t(' ');
$form['keys_1']['#title_display'] = 'invisible';
$form['keys_1']['#size'] = 24;
$form['keys_1']['#default_value'] = $deftext;
//$form['actions']['submit']['#value'] = t('Найти');
$form['actions']['submit'] = array('#type' => 'image_button', '#src' => base_path() . path_to_theme() . '/search.png');
$form['keys_1']['#attributes']['onblur'] = "if (this.value == '') {this.value = '".$deftext."';}";
$form['keys_1']['#attributes']['onfocus'] = "if (this.value == '".$deftext."') {this.value = '';}";
}
}
?>
Но переопределения формы не происходит. Помогите пожалуйста разобраться знающие люди, что я делаю не так.
Комментарии
А разве ID'шник формы у меня не "search_api_page_search_form_search"? Вот кусок из кода:
Вам нужен не ID html-селектора, а ID формы, что есть ее имя.
Вы можете чекнуть правильный ID'шник выполнив:
<?php
var_dump($form_id);
// Или Devel'ом
// dpm($form_id);
?>
в альтере формы (!смотрите со 2го раза).
devel показывает айдишник формы "search_api_page_search_form_search". К тому же в коде страницы есть скрытый input name='form_id value='search_api_page_search_form_search' (
<input type="hidden" name="form_id" value="search_api_page_search_form_search" />
). Как я понял айдишник формы все же "search_api_page_search_form_search". Или я опять что то не так понял. Может форму не получается переопределить так как поиск я реализовывал с помощью модулей Search API, Search API Database Search, Search API pages, Search API live results, а модуль search отключил?Нижние подчёркивания с дефисами перепутаны жеж.
Спасибо большое. Из за невнимательности столько времени потерял и чуть голову не сломал.
Спасибо большое. Из за невнимательности столько времени потерял и чуть голову не сломал.
Так... Я, видимо, не очень понятно написал, my bad!
Когда я писал:
Я имел ввиду вот в этом куске:
<?php
if ($form_id == 'search-api-page-search-form-search') { // заменить на "search_api_page_search_form_search"
// Alteration staff
}
?>
Это я не очень внимательно прочитал, извините. Спасибо за помощь.
кусок кода: