Jump to content
Sign in to follow this  
theplastique

Не работает поиск на сайте

Recommended Posts

Здравствуйте, уважаемые форумчане.

Подскажите пожалуйста куда копать...

 

Проблема: не работает поиск на сайте

Синдром: при вводе текста в поле поиска, после нажатия на кнопку "поиск" переходит на страницу поиска, но пишет, что "ничего не найдено"

 

common.js не изменялся, файл search.tpl так же стандартный с темы.

 

Сборка Maxystore 1.5.4.1 Шаблон: PERFECTUM

ссылка на сайт: berberry NET

Share this post


Link to post
Share on other sites

ищите ошибку в коде шаблона

Share this post


Link to post
Share on other sites

ищите ошибку в коде шаблона

не подскажите где копать именно и что искать?

Share this post


Link to post
Share on other sites

эта говносборка не причем, тут дело в шаблоне, но где - не пойму :) на опенкарт тоже не работает поиск :(

Share this post


Link to post
Share on other sites

Очень даже при чём.Поставьте на чистый Opencart-Ocstore и всё станет понятно само собой.

Share this post


Link to post
Share on other sites

Очень даже при чём.Поставьте на чистый Opencart-Ocstore и всё станет понятно само собой.

в том то и дело... поставил и не работало!!!

Share this post


Link to post
Share on other sites

в файле header.tpl найти:

<div id="search">
 
    <input type="text" name="search" value="Поиск" onclick="this.value = ''" onblur="if(this.value=='') { this.value = 'Поиск'}" ;="">
     <button type="submit" title="Go" class="search-btn button-search"><span>Go</span></button>
  </div>

и в этом участке заменить name="search" на name="filter_name"

Share this post


Link to post
Share on other sites

в файле header.tpl найти:

<div id="search">
 
    <input type="text" name="search" value="Поиск" onclick="this.value = ''" onblur="if(this.value=='') { this.value = 'Поиск'}" ;="">
     <button type="submit" title="Go" class="search-btn button-search"><span>Go</span></button>
  </div>

и в этом участке заменить name="search" на name="filter_name"

ОГРОМНЕЙШЕЕ СПАСИБО!!! 

Share this post


Link to post
Share on other sites

модуль поиска перенес в левую колонку, он работает, но по умолчанию пишет в строке поиска 

<b>Notice</b>: Undefined variable: search in <b>D:\xampp\htdocs\stroika\catalog\view\theme\default\template\common\column_left.tpl</b> on line <b>5</b>

 

а вот и сам файл левой колонки

<?php if ($modules) { ?>
<div id="column-left">
<div id="search">
    <div class="button-search"></div>
    <input type="text" name="search" placeholder="<?php echo $text_search; ?>" value="<?php echo $search; ?>" />
  </div>
  <?php foreach ($modules as $module) { ?>
  <?php echo $module; ?>
  <?php } ?>
</div>
<?php } ?> 
где я накосячить успел?

Share this post


Link to post
Share on other sites

В контроллере  этой самой левой колонки.

Share this post


Link to post
Share on other sites

я услышал новое слово . . . "контроллер".

итого, как я понял, "контроллер" - это php документ, который, собственно, отвечает за работу модуля поиска?

я его пальцем не трогал :(

Share this post


Link to post
Share on other sites

я его пальцем не трогал 

в том и вся суть, что не трогал,

а переменые в модуль насовал)))

например вот 

<?php echo $text_search; ?>

контроллер в курсе что это за переменная и откуда ее брать? 

header.php знает:

$this->data['text_search'] = $this->language->get('text_search');

он лезет в свой языкововой файл \catalog\language\russian\common\header.php  и вытаскивает оттуда переменную 

$_['text_search']         = 'Поиск';

 а ваш category.php этому обучен? :-) 

 

Share this post


Link to post
Share on other sites

$search;

Не насовывал, взял "стащил" из одного шаблона, а в контроллере не обработал.

Share this post


Link to post
Share on other sites

После всех манипуляций  будет ещё один вопрос))) Почему не работает по нажатию на интер)

Следовательно после изучения php начинаем активно изучать js )))

Share this post


Link to post
Share on other sites

мой сайт ..\catalog\controller\product\search.php 

сюда мне обратить свой взор?

даже и не мог подозревать, что это будет проблемой такой . . . ведь он же работает и вроде как исправно даже, только вот эта строка противная :(

Share this post


Link to post
Share on other sites

О_О всего то, подвинул из хеадера в левый столб поиск, откуда столько траблов !?

блин, скажите пожалуйста хотя бы на какие файлы обратить внимание, я постараюсь разобраться :(

Share this post


Link to post
Share on other sites

http://ru.wikipedia.org/wiki/Model-View-Controller

 

 

Концепция MVC позволяет разделить данные, представление и обработку действий пользователя на три отдельных компонента:

  • Модель (англ. Model). Модель предоставляет знания: данные и методы работы с этими данными, реагирует на запросы, изменяя своё состояние. Не содержит информации, как эти знания можно визуализировать.
  • Представлениевид (англ. View). Отвечает за отображение информации (визуализацию). Часто в качестве представления выступает форма (окно) с графическими элементами.
  • Контроллер (англ. Controller). Обеспечивает связь между пользователем и системой: контролирует ввод данных пользователем и использует модель и представление для реализации необходимой реакции.

 

Share this post


Link to post
Share on other sites

познавательный экскурс . . . глазки немного раскрыл на это дело . . .  

жаль, что ошибка не указывается в каком файле php ее искать . . . было бы проще :(

и все же вопрос остался актуальным на счет "search.php"

Share this post


Link to post
Share on other sites

блин, это последний вопрос по сайту остался, только поиск, где нужно подружить контроллеры.

давайте еще раз пройдемся по теме.

я перенес в \catalog\view\theme\default\template\common\column_left.tpl 

 

<div id="search">

    <div class="button-search"></div>
    <input type="text" name="search" placeholder="<?php echo $text_search; ?>" value="<?php echo $search; ?>" />
  </div>

 вставил кусок, который забрал из хедера

теперь он выдает такую запись

 

<b>Notice</b>: Undefined variable: search in <b>/home/domotekb/rsi.by/catalog/view/theme/default/template/common/column_left.tpl</b> on line <b>6</b>

я уверен, что вы этот поиск пихали уже во все дыры в этом чудесном движке. давай по порядку пройдемся :(

что теперь мне делать?

если бы я мог, я бы сам сделал, но, действительно нужна ваша "гуру" помощь . . . 

Share this post


Link to post
Share on other sites

Ну так ведь "по-русски" пишет

 

Undefined variable: search

 

и говорит что в шаблоне

Но в шаблоне такой переменой нет, она туда попадает через контроллер

через массив

$this->data

Следовательно она должна быть там определена

Share this post


Link to post
Share on other sites

 

$this->data['text_search'] = $this->language->get('text_search');

 
// Search
if (isset($this->request->get['search'])) {
$this->data['search'] = $this->request->get['search'];
} else {
$this->data['search'] = '';
}

colum_left.php 

теперь новая проблема, поиск работает, только  он не берез из языкового пакета фразу 

 

$_['text_search']       = 'Товары, соответствующие критериям поиска';

а пишет так же text_search

Share this post


Link to post
Share on other sites

может мне нужно сделать файл column_left.php

 

с текстом 

 

<?php

$_['text_search']         = 'Поиск';

?>

попробовал, не получилось . . . 

Share this post


Link to post
Share on other sites

как ему объяснить, что нужно брать и откуда?

где я ошибаюсь?

Share this post


Link to post
Share on other sites

colum_left.php 

теперь новая проблема, поиск работает, только  он не берет из языкового пакета фразу 

а пишет так же text_search

так откуда он его "просто так" возьмет, если 

1. в контроллере не указан (по дефолту) языковой файл откуда брать текстовые переменные 

(не так сложно посмотреть как это делается в другом контроллере, например в header.php :

$this->language->load('common/header');
......
$this->data['text_search'] = $this->language->get('text_search');
........

)

2. исходя из 1-го либо подключить имеющийся языковой файл и там прописать переменную (хотя я не советовал бы),

а) либо создать свой в языковом пакете и подключить его,

б) либо тупо в tpl*ке прописать вместо переменных текст...но не прокатит если сайт мультиязычен, да и не совсем логически правильно...

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.