Вопросы по системному модулю поиска

Аватар пользователя Andrew_noob Andrew_noob 16 сентября в 10:02

Я решил изменить форму поиска в 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-wrapper">

    <div id="page">
       
        <div id="header">
           
            <div class="search">

                <?php print render($page['search_modules']); ?>
               
            </div>
<!-- Это часть кода в <header> -->

И теперь прописал на класс search CSS:

.search{

    max-width: 1458px;
    margin: 0 auto;
    background-color: #004D78;
    padding: 20px 40px;
    display: flex;
    flex-wrap: wrap;
    justify-content: end;
 
}

И теперь вопрос как мне изменить иконку, которую я добавил к поиску вместо стандартной? Эта иконка то прописывается в php и в css я ни как не могу взаимодействовать с конкретной частью поиска. Как мне это сделать?

И ещё вопрос, я пока временно работаю с сайтом в браузере(Edge), в режиме инкогнито, и у меня проблема, у меня этот модуль поиск отображается, только когда я вхожу в админ панель, а если я не авторизован то не вижу его, вижу только задний фон который я задал CSS. Как это исправить?

Комментарии

Аватар пользователя ivnish ivnish 16 сентября в 10:05

Andrew_noob wrote: И теперь вопрос как мне изменить иконку

С помощью CSS картинку можно заменить на другую без правок на бэкенде

Andrew_noob wrote: отображается, только когда я вхожу в админ панель

По умолчанию у анонимов нет доступа к поиску. Дайте соответствующие права в разделе прав доступа друпала

Аватар пользователя Andrew_noob Andrew_noob 16 сентября в 10:26

Прошу прощения, но я всё же не понимаю как заменить картинку через СSS, и вообще хотелось бы понял, как мне не только картинку изменять, но и другие отдельные части настраивать, по типу заднего вона текста и все остальное, я был бы очень благодарен если бы вы мне объяснили ну или хотя бы дали ссылки на статьи по этому. Спасибо)

А насчет доступа, я в настройках search в структуре/блоки изменил роли, пробовал всё по очереди, каждый раз сбрасывал кеш, но всё равно ничего не менялось. Возможно я не так поняял ваш совет, и настроить нужно где то в другом месте? Спасибо)

Аватар пользователя ivnish ivnish 16 сентября в 10:30

Вообще это зависит от того, как эту картинку добавили. Сейчас чаще всего это делают через элемент ::before и иконочные шрифты. В вашем случае надо смотреть как картинка добавлена изначально.

Andrew_noob wrote: я был бы очень благодарен если бы вы мне объяснили ну или хотя бы дали ссылки на статьи по этому. Спасибо)

Пройдите какой-нибудь онлайн-курс по основам CSS.

Andrew_noob wrote: А насчет доступа, я в настройках search в структуре/блоки изменил роли

Это настройки видимости блока, а вам нужны именно права доступа. Они тут /admin/people/permissions

Аватар пользователя Andrew_noob Andrew_noob 16 сентября в 10:44

ivnish wrote: Это настройки видимости блока, а вам нужны именно права доступа. Они тут /admin/people/permissions

Понял, спасибо)

ivnish wrote: Пройдите какой-нибудь онлайн-курс по основам CSS.

Что ж, ладно, поищу, попробую