Я решил изменить форму поиска в drupal 7.
Написал такой код, что бы изменить надпись и иконку:
<?php
function edeputat_form_alter(&$form, &$form_state, $form_id) {
if (
$form_id == 'search_block_form') {
$deftext = t('Пошук...');
$form['search_block_form']['#title'] = t(' ');
$form['search_block_form']['#title_display'] = 'invisible';
$form['search_block_form']['#size'] = 24;
$form['search_block_form']['#default_value'] = $deftext;
$form['actions']['submit']['#value'] = t('Найти');
$form['search_block_form']['#attributes']['onblur'] = "if (this.value == '') {this.value = '".$deftext."';}";
$form['search_block_form']['#attributes']['onfocus'] = "if (this.value == '".$deftext."') {this.value = '';}";
$form['actions']['submit'] = array('#type' => 'image_button', '#src' => base_path() . path_to_theme() . '/images/search.png');
}
}
?>
Затем, что бы изменить задний фон , сделать отступы я в page.tpl.php сделал регион для именно поиска:
<div id="page">
<div id="header">
<div class="search">
<?php print render($page['search_modules']); ?>
</div>
<!-- Это часть кода в <header> -->
И теперь прописал на класс search CSS:
max-width: 1458px;
margin: 0 auto;
background-color: #004D78;
padding: 20px 40px;
display: flex;
flex-wrap: wrap;
justify-content: end;
}
И теперь вопрос как мне изменить иконку, которую я добавил к поиску вместо стандартной? Эта иконка то прописывается в php и в css я ни как не могу взаимодействовать с конкретной частью поиска. Как мне это сделать?
И ещё вопрос, я пока временно работаю с сайтом в браузере(Edge), в режиме инкогнито, и у меня проблема, у меня этот модуль поиск отображается, только когда я вхожу в админ панель, а если я не авторизован то не вижу его, вижу только задний фон который я задал CSS. Как это исправить?
Комментарии
С помощью CSS картинку можно заменить на другую без правок на бэкенде
По умолчанию у анонимов нет доступа к поиску. Дайте соответствующие права в разделе прав доступа друпала
Прошу прощения, но я всё же не понимаю как заменить картинку через СSS, и вообще хотелось бы понял, как мне не только картинку изменять, но и другие отдельные части настраивать, по типу заднего вона текста и все остальное, я был бы очень благодарен если бы вы мне объяснили ну или хотя бы дали ссылки на статьи по этому. Спасибо)
А насчет доступа, я в настройках search в структуре/блоки изменил роли, пробовал всё по очереди, каждый раз сбрасывал кеш, но всё равно ничего не менялось. Возможно я не так поняял ваш совет, и настроить нужно где то в другом месте? Спасибо)
Вообще это зависит от того, как эту картинку добавили. Сейчас чаще всего это делают через элемент ::before и иконочные шрифты. В вашем случае надо смотреть как картинка добавлена изначально.
Пройдите какой-нибудь онлайн-курс по основам CSS.
Это настройки видимости блока, а вам нужны именно права доступа. Они тут /admin/people/permissions
Понял, спасибо)
Что ж, ладно, поищу, попробую