Jump to content

Recommended Posts

Всем привет!

 

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

Теперь встал вопрос поиска по сайту. По умолчанию поиск идет по товарам, а мне надо по тексту в описании категорий. Что посоветуете? Может уже есть готовые модули под эту задачу или еще что подобное.

В идеале - в строке поиска задаем слово или часть слова и при выдаче получаем список категорий (страниц) где это слово или часть слова встречается.

Видел решение когда немного модифицируется стандартный поиск, но там версия более старая (у меня 1.5.6) и при реализации работало очень криво, а сам я в программировании профан.

Может кто возьмется сделать такую доработку - пишите стоимость и, думаю, договоримся ))

 

Share this post


Link to post
Share on other sites

День второй )) Вот к чему пока пришел:

/catalog/model/catalog/category.php

=====добавляем ==================

public function getSearchCategories($keyword) {           
        $sql = "SELECT c.image, c.category_id FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id) WHERE cd.name LIKE '%" . $keyword . "%' OR cd.description LIKE '%" . $keyword . "%' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND c.status = '1'" ;
        $query = $this->db->query($sql);
        $category_data = array();
            foreach($query->rows as $result) {
                $category_data[$result['category_id']] = $this->getCategory($result['category_id']);
            }
        return $category_data;
    }

Далее добавил в контроллере  /catalog/controller/product/search.php
 
============= добавляем ========================
 
$this->data['search_categories'] = array();
            
            foreach($this->model_catalog_category->getSearchCategories($data['filter_name']) as $category) {
                
                $this->data['search_categories'][] = array(
                    'name' => $category['name'],
                    'href' => $this->url->link('product/category', 'path=' . $category['category_id'])
                );


            }
 
И потом в шаблон /catalog/view/theme/default/template/product/search.tpl
внес место для выдачи:
 
============= добавляем ==============
 <div class="category-list">
    <ul>
<?php if ($search_categories) { ?>


        <?php foreach ($search_categories as $category) { ?>
            <li><a href="/<?php echo $category['href'];?>"><span><?php echo $category['name'];?></span></a></li>
        <?php }  ?>  




<?php } ?>
    </ul>
  </div>
Вот. При внесении запроса теперь выдает список страниц где этот запрос встречается. НО
пишет ошибку если запроса нет:
Notice: Undefined variable: search_categories in /home/ ....
Как в шаблоне правильно сделать выдачу чтобы без запросов ошибки не было ???

Share this post


Link to post
Share on other sites

1. код в CODE.

2. полный текст ошибок, а не обрубки.

Share this post


Link to post
Share on other sites

Файлы с кодом приложил (это исправленные мной оригинальный файлы). Файл шаблона не прикрепился, поэтому привожу код с начала страницы:

<?php echo $header; ?><?php echo $column_left; ?><?php echo $column_right; ?>
<div id="content"><?php echo $content_top; ?>
  <div class="breadcrumb">
    <?php foreach ($breadcrumbs as $breadcrumb) { ?>
    <?php echo $breadcrumb['separator']; ?><a href="<?php echo $breadcrumb['href']; ?>"><?php echo $breadcrumb['text']; ?></a>
    <?php } ?>
  </div>
  <h1><?php echo $heading_title; ?></h1>
  <b><?php echo $text_critea; ?></b>
  
  
  
  
  
  <div class="category-list">
    <ul>
<?php if ($search_categories) { ?>


        <?php foreach ($search_categories as $category) { ?>
            <li><a href="/<?php echo $category['href'];?>"><span><?php echo $category['name'];?></span></a></li>
        <?php }  ?>  




<?php } ?>
    </ul>
  </div>
Если ввести запрос, то выводятся категории где есть часть такого запроса (index.php?route=product/search&search=поисковоый запрос).

А ошибка такая передается если нет запроса поискового (index.php?route=product/search):

Notice: Undefined variable: search_categories in /home/host1323407/sitedomen.ru/htdocs/stm/catalog/view/theme/default/template/product/search.tpl on line 17
И вот как убрать эту ошибку я не знаю.  Начал изучать php, своими силами через пол годика думаю решу вопрос, но хотелось бы быстрее ))

search.php

category.php

Edited by afwollis

Share this post


Link to post
Share on other sites

ну так перенеси

$this->data['search_categories'] = array();
наверх, к

$this->data['products'] = array();
ты ж его не туда вписал.

Share this post


Link to post
Share on other sites

Ура !!! Решение нашел. 

Тупо загуглил текст ошибки (хотя и так перевел что переменная не определена) и посмотрел как что делает и все получилось ))

 

Итак: 

Вместо этой фразы в файле шаблона:

  1. <?php if ($search_categories) { ?>

 

Пишем:

<?php if (isset($search_categories)) { ?>

 

Если переменная не определена, то ничего и не выводится и ошибки нет, а если переменная есть, то все выводится.

Вот. Пользуйтесь на здоровье таким поиском по описанию категорий кто хочет.

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  

  • Similar Content

    • By smartcoder
      500.00 руб
      Скачать/Купить дополнение


      Дополнительные услуги (создание сайта, мелкие доработки, правки по сайту, загрузка товаров на сайт, разработка модуля для Opencart)
      Мелкие правки по сайту - от 500руб
      Разработка модулей для Opencart - от 2000руб
      Наполнение товарами - от 2500руб
      Автоматизация интернет-магазинов - от 8000руб
      Интеграция API сервисов - от 15000руб
      Разработка сервисов (Laravel, Yii2) - от 180000руб.
       
      Что нужно, для оценки стоимости работ?
      Четкое и подробное описание задачи. Формирование цены происходит из расчета цены за 1 час работы.
      В среднем работа стоит 1000руб./час. В случае дополнительных доработок или правок оплаченного задания, производится перерасчет дополнительного затраченного времени.
       
      Сроки
      Сроки разработки определяет программист для каждого проекта индивидуально.
      По времени исполнения зачастую зависит от своевременного предоставления программисту доступов к проекту заказчика. Программист не несет ответственности за упущенную прибыль заказчика, в случае нарушения ранее оговоренных сроков.
       
      Перед покупкой напишите в личные сообщения к @smartcoder для уточнения деталей.
       
       
      ------------------------------------------------------------------------------
      Доработка сайта - от 500руб
      Стоимость услуги «Доработка сайта» зависит от масштабности проекта и его текущего состояния, от движка, а также от задач, которые вы для него ставите.
       
      Если вам необходимо выполнить доработки по сайту, воспользуйтесь нашими услугами.
      Обновить информацию Исправить ошибки Поправить верстку  
      Мы располагаем собственным штатом программистов и готовы решить любые задачи по вашему сайту вне зависимости от того, на какой технологии он построен.
       
      Доработать можно любой сайт?
      Да, абсолютно любой, но иногда изменение сайта несет за собой переделку порядка 80% всего сайта. В таких случаях лучшее решение – создать сайт с нуля. Мы всегда предупреждаем о такой ситуации прежде чем начинать работу с проектом
      Перед покупкой напишите в личные сообщения к @smartcoder для уточнения деталей.
      ------------------------------------------------------------------------------
      Разработка модуля для Opencart - от 2000руб
      Разработка модуля любой сложности для Opencart.
       
      Какие модули вы уже разрабатывали?
      Модули доставки Модули оплаты Модуль по работе с клиентами Модули по работе с товарами Автоматизация прайс-листов Заказ в один клик Модуль по работе с бонусами, акциями и скидками.  
      При разработке учитываются индивидуальные пожелания, работа функционала, оформления блоков, дизайн и т.д.
      Перед покупкой напишите в личные сообщения к @smartcoder для уточнения деталей.
      ------------------------------------------------------------------------------
      Наполнение товарами магазина - от 2500руб
      Добавление товаров по вашим прайс-листам. Наименование товаров, цены, атрибуты, описание, характеристики и др.
       
      Что нужно для наполнения сайта товарами?
      Для наполнения нужен прайс-лист, в формате Excel или CSV или в YML(Яндекс).
       
      Сколько товаров можно добавить в магазин Opencart?
      Максимальный заказ, который был реализован с автоматическим изменением остатков и цен - это 500 000 товаров (возможно и более, если это вам нужно).
      Для магазинов в 3-5 тысяч товаров, это стандартный заказ, в которых не возникает проблем на большинстве хостингов.
       
      Какой нужен хостинг?
      Если вы используете достаточно большое количество товара и у вас планируется хороший трафик пользователей, то стоит задуматься о VDS (виртуальный сервер с максимальными привилегиями). Такое необходимо для магазинов больше 10тыс. товаров и больше 500 посетителей в день. 
      Перед покупкой напишите в личные сообщения к @smartcoder для уточнения деталей.
      ------------------------------------------------------------------------------
      Автоматизация интернет-магазина - от 8000руб
      Автоматизация наполнения товарами, обновление цен и остатков Автоматическое наполнение магазина новыми товарами* Автоматическое заполнение количества актуальных остатков Автоматическое изменение цены поставщика. Перед покупкой напишите в личные сообщения к @smartcoder для уточнения деталей.
      ------------------------------------------------------------------------------
      Интеграция API сервисов - от 15000руб
      Интеграция с любым API сервисом любой сложности, интеграция с телефонией, оплатой, доставкой и другими сервисами.
       
      Что такое интеграция API сервисов?
      Интеграция по API - это взаимодействие вашего сайта на Opencart с различными сервисами по интерфейсу API (application programming interface). Например вам нужно связать ваш сайт, с партнерским сайтом, либо вам нужно настроить взаимодействие с сервисом доставки или взаимодействие с банком.
       
      Сколько стоит интеграция с моим сервисом?
      Для оценки интеграции, нужно взглянуть на документацию сервиса по API, с которым предстоит работать, для этого предварительно напишите в сообщении для уточнении цены.
      Перед покупкой напишите в личные сообщения к @smartcoder для уточнения деталей.
      ------------------------------------------------------------------------------
      Разработка сервисов - от 180000руб
      Разработка сервисов любой сложности.
       
      О каких сервисах идет речь?
      Речь идет о ваших собственных сервисах, которые могут быть публичными или только внутренние (только для вашей компании).
       
      Как узнать стоимость моего сервиса?
      Для того, чтобы узнать точную стоимость, необходимо составить четкое ТЗ, возможно так же спросить примерную стоимость, но нужно понимать что при наличии четкого ТЗ, эта сумма может меняться.
      Перед покупкой напишите в личные сообщения к @smartcoder для уточнения деталей.
       
      Добавил smartcoder Добавлено 02.08.2018 Категория Услуги  
    • By smartcoder
      Мелкие правки по сайту - от 500руб
      Разработка модулей для Opencart - от 2000руб
      Наполнение товарами - от 2500руб
      Автоматизация интернет-магазинов - от 8000руб
      Интеграция API сервисов - от 15000руб
      Разработка сервисов (Laravel, Yii2) - от 180000руб.
       
      Что нужно, для оценки стоимости работ?
      Четкое и подробное описание задачи. Формирование цены происходит из расчета цены за 1 час работы.
      В среднем работа стоит 1000руб./час. В случае дополнительных доработок или правок оплаченного задания, производится перерасчет дополнительного затраченного времени.
       
      Сроки
      Сроки разработки определяет программист для каждого проекта индивидуально.
      По времени исполнения зачастую зависит от своевременного предоставления программисту доступов к проекту заказчика. Программист не несет ответственности за упущенную прибыль заказчика, в случае нарушения ранее оговоренных сроков.
       
      Перед покупкой напишите в личные сообщения к @smartcoder для уточнения деталей.
       
       
      ------------------------------------------------------------------------------
      Доработка сайта - от 500руб
      Стоимость услуги «Доработка сайта» зависит от масштабности проекта и его текущего состояния, от движка, а также от задач, которые вы для него ставите.
       
      Если вам необходимо выполнить доработки по сайту, воспользуйтесь нашими услугами.
      Обновить информацию Исправить ошибки Поправить верстку  
      Мы располагаем собственным штатом программистов и готовы решить любые задачи по вашему сайту вне зависимости от того, на какой технологии он построен.
       
      Доработать можно любой сайт?
      Да, абсолютно любой, но иногда изменение сайта несет за собой переделку порядка 80% всего сайта. В таких случаях лучшее решение – создать сайт с нуля. Мы всегда предупреждаем о такой ситуации прежде чем начинать работу с проектом
      Перед покупкой напишите в личные сообщения к @smartcoder для уточнения деталей.
      ------------------------------------------------------------------------------
      Разработка модуля для Opencart - от 2000руб
      Разработка модуля любой сложности для Opencart.
       
      Какие модули вы уже разрабатывали?
      Модули доставки Модули оплаты Модуль по работе с клиентами Модули по работе с товарами Автоматизация прайс-листов Заказ в один клик Модуль по работе с бонусами, акциями и скидками.  
      При разработке учитываются индивидуальные пожелания, работа функционала, оформления блоков, дизайн и т.д.
      Перед покупкой напишите в личные сообщения к @smartcoder для уточнения деталей.
      ------------------------------------------------------------------------------
      Наполнение товарами магазина - от 2500руб
      Добавление товаров по вашим прайс-листам. Наименование товаров, цены, атрибуты, описание, характеристики и др.
       
      Что нужно для наполнения сайта товарами?
      Для наполнения нужен прайс-лист, в формате Excel или CSV или в YML(Яндекс).
       
      Сколько товаров можно добавить в магазин Opencart?
      Максимальный заказ, который был реализован с автоматическим изменением остатков и цен - это 500 000 товаров (возможно и более, если это вам нужно).
      Для магазинов в 3-5 тысяч товаров, это стандартный заказ, в которых не возникает проблем на большинстве хостингов.
       
      Какой нужен хостинг?
      Если вы используете достаточно большое количество товара и у вас планируется хороший трафик пользователей, то стоит задуматься о VDS (виртуальный сервер с максимальными привилегиями). Такое необходимо для магазинов больше 10тыс. товаров и больше 500 посетителей в день. 
      Перед покупкой напишите в личные сообщения к @smartcoder для уточнения деталей.
      ------------------------------------------------------------------------------
      Автоматизация интернет-магазина - от 8000руб
      Автоматизация наполнения товарами, обновление цен и остатков Автоматическое наполнение магазина новыми товарами* Автоматическое заполнение количества актуальных остатков Автоматическое изменение цены поставщика. Перед покупкой напишите в личные сообщения к @smartcoder для уточнения деталей.
      ------------------------------------------------------------------------------
      Интеграция API сервисов - от 15000руб
      Интеграция с любым API сервисом любой сложности, интеграция с телефонией, оплатой, доставкой и другими сервисами.
       
      Что такое интеграция API сервисов?
      Интеграция по API - это взаимодействие вашего сайта на Opencart с различными сервисами по интерфейсу API (application programming interface). Например вам нужно связать ваш сайт, с партнерским сайтом, либо вам нужно настроить взаимодействие с сервисом доставки или взаимодействие с банком.
       
      Сколько стоит интеграция с моим сервисом?
      Для оценки интеграции, нужно взглянуть на документацию сервиса по API, с которым предстоит работать, для этого предварительно напишите в сообщении для уточнении цены.
      Перед покупкой напишите в личные сообщения к @smartcoder для уточнения деталей.
      ------------------------------------------------------------------------------
      Разработка сервисов - от 180000руб
      Разработка сервисов любой сложности.
       
      О каких сервисах идет речь?
      Речь идет о ваших собственных сервисах, которые могут быть публичными или только внутренние (только для вашей компании).
       
      Как узнать стоимость моего сервиса?
      Для того, чтобы узнать точную стоимость, необходимо составить четкое ТЗ, возможно так же спросить примерную стоимость, но нужно понимать что при наличии четкого ТЗ, эта сумма может меняться.
      Перед покупкой напишите в личные сообщения к @smartcoder для уточнения деталей.
       
    • By legioner26
      399.00 руб
      Скачать/Купить дополнение


      Модификатор автозаполнения картинок категорий
      Разработан модификатор автозаполнения картинок категорий из первой найденной картинки товара категории, а так же проставляются картинки для главных категорий и под категорий
      версии OpenCart 2.0, 2.1, 2.2, 2.3, 3.x  
      Просто заливаете товары с картинками, а картинки на категории проставятся сами.
      Устанавливаете модификатор как указано на картинке, чистим в модификациях кеш и обновляем. 
       
       
      Добавил legioner26 Добавлено 31.08.2017 Категория Модули Системные требования Сайт разработчика Метод активации Без активации Ioncube Loader Нет OpenCart 3.0
      2.3
      2.2
      2.1
      2.0 ocStore 3.0
      2.3
      2.2
      2.1 OpenCart.Pro, ocShop Обращение к серверу разработчика Нет Старая цена 650  
    • By legioner26
      Разработан модификатор автозаполнения картинок категорий из первой найденной картинки товара категории, а так же проставляются картинки для главных категорий и под категорий
      версии OpenCart 2.0, 2.1, 2.2, 2.3, 3.x  
      Просто заливаете товары с картинками, а картинки на категории проставятся сами.
      Устанавливаете модификатор как указано на картинке, чистим в модификациях кеш и обновляем. 
       
       
    • By legioner26
      399.00 руб
      Скачать/Купить дополнение


      Сортировка товаров в заказе по категориям с учетом остатков
      Разработан модификатор с сортировкой товаров в заказе по категориям в админ панели, в пользовательской части, в письме заказчику и письме администратора магазина.
      Данный функционал в разы упрощает работу менеджеров в подборе номенклатуры для выставления счетов.
      Так же в админке в заказах добавлена колонка производителя, фото товара и учет остатков по складу с возможностью сохранять выбор.
      Установка:
      Устанавливаете модификатор через "Установка расширений", далее в модификаторах чистим кешь и обновляем.
       
      Добавил legioner26 Добавлено 27.12.2017 Категория Покупки, оформление заказа, корзина Системные требования Сайт разработчика Метод активации Без активации Ioncube Loader Нет OpenCart 2.3
      2.2
      2.1
      2.0 ocStore 2.3
      2.2
      2.1 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1
      OcShop 2.0.3.х Обращение к серверу разработчика Нет Старая цена 800  
  • 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.