Перейти к содержанию
theplastique

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

Рекомендуемые сообщения

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

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

 

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

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

 

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

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в файле 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"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в файле 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"

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

<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 } ?> 
где я накосячить успел?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

например вот 

<?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 этому обучен? :-) 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

$search;

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

 

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

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

я перенес в \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>

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

Undefined variable: search

 

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

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

через массив

$this->data

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

$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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

с текстом 

 

<?php

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

?>

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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*ке прописать вместо переменных текст...но не прокатит если сайт мультиязычен, да и не совсем логически правильно...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.