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 Sha
      1 999.00 руб · Срок продления: 100.00 руб за 1 месяц
      Скачать/Купить дополнение


      Route debug board - системный аудит сайта, помощник в оптимизации сайта!
      Инструмент поможет провести системный анализ opencart страниц и расширений сайта!
       
      Модуль имеет два основных направления:
       
      1) Для пользователей:
         - Анализ модулей, расширений, дополнений сайта основываясь на архитектуре OpenCart
         - Построение наглядного timeline графика, с сортировкой по желаемому параметру
         это даст возможность выявить "узкие места" и предпринять меры по оптимизации сайта более точечно и направлено.

       
       
      DEMO
      логин: demo, пароль: demo
       
       
      2) Для разработчиков:
        - возможности описанные выше, плюс
        - построение расширенной таблицы структурированной по маршрутам, очерёдности или скорости выполнения,
        - время отработки model/view/controller каждого route, любой страницы сайта, с возможностью сортировки для сравнения,
        - простой debuger данных $data передаваемых в view каждого route. (экспериментально)

       


       
       
       
      Обратите внимание! Модуль является инструментом помогающим в работе с cms opencart/ocstore,
      и не является автоматическим бустером, компрессором, кешером и т.д. 
       
      используемые технологии:
      bootstrap.js, vue.js, opencart events.  
      Внимание: тип лицензии - доменов неограниченно!
      Сроки техподдержки и бесплатных обновлений указаны в "условия продления" по окончании данного срока более ни каких ограничений не накладывается, модуль продолжает работать как и работал!
      Модуль имеет открытый исходный код, ни каких привязок к серверам, закодированных файлов ionCube и тому подобное в модуле нет!
      Добавил Sha Добавлено 25.04.2020 Категория Инструменты, утилиты Системные требования php 5.4 и выше Метод активации Автоматическая активация Ioncube Loader Нет OpenCart 2.3 ocStore 2.3 OpenCart.Pro, ocShop Не проверялось Обращение к серверу разработчика Нет Старая цена 1999  
    • By Sha
      Инструмент поможет провести системный анализ opencart страниц и расширений сайта!
       
      Модуль имеет два основных направления:
       
      1) Для пользователей:
         - Анализ модулей, расширений, дополнений сайта основываясь на архитектуре OpenCart
         - Построение наглядного timeline графика, с сортировкой по желаемому параметру
         это даст возможность выявить "узкие места" и предпринять меры по оптимизации сайта более точечно и направлено.

       
       
      DEMO
      логин: demo, пароль: demo
       
       
      2) Для разработчиков:
        - возможности описанные выше, плюс
        - построение расширенной таблицы структурированной по маршрутам, очерёдности или скорости выполнения,
        - время отработки model/view/controller каждого route, любой страницы сайта, с возможностью сортировки для сравнения,
        - простой debuger данных $data передаваемых в view каждого route. (экспериментально)

       


       
       
       
      Обратите внимание! Модуль является инструментом помогающим в работе с cms opencart/ocstore,
      и не является автоматическим бустером, компрессором, кешером и т.д. 
       
      используемые технологии:
      bootstrap.js, vue.js, opencart events.  
      Внимание: тип лицензии - доменов неограниченно!
      Сроки техподдержки и бесплатных обновлений указаны в "условия продления" по окончании данного срока более ни каких ограничений не накладывается, модуль продолжает работать как и работал!
      Модуль имеет открытый исходный код, ни каких привязок к серверам, закодированных файлов ionCube и тому подобное в модуле нет!
    • By q3dm0
      800.00 руб
      Скачать/Купить дополнение


      Imagemanager / Менеджер изображений opencart + галерея ScangalleryPack
      Менеджер изображений, он же и обработчик, с богатым функционалом, все, что нужно для обработки изображений на лету в нем есть, некоторый аналог швейцарского армейского ножа - этот модуль является идеальной заменой старого менеджера изображений, и Вы перестанете терять огромное количество времени на редактирование изображений.
       
      Он поддерживает добавление нескольких изображений одновременно, просмотр истории (сохраняет последнюю открытую папку), перетаскивание загружаемых изображений, изменение размера/поворота, поиск изображений/папок  и многое другое!
      Ну и в комплект идет полноценная адаптивная галерея для организации своего блога, страницы новостей или фотогалереи с описанием товара или целой группы товаров с возможностью объединения галереи и товаров по тегам на сайте для более результативного поиска последних. Полноценный модуль imagemanager с возможностью заливать на лету тысячи фотографий  для своих товаров, баннеров, обрабатывать их, перетягивать в нужном порядке методом drugNdrop и не только, теперь Вы сможете это, с новым пакетом ScangalleryPack.
      модуль Imagemanager на базе jquery файл-менеджера elFinder для версий opencart 1.5.X  -2.X – 3.X; галерея на базе jquery галереи blueimp-gallery конечно же с  мультизагрузкой изображений, а также с более простой поисковой оптимизацией Вашего сайта, теперь для каждой картинки можно присвоить свой alt и title прям из под админ панели, ну и само собой, в данный пакет интегрирован модуль сортировки изображений методом перетягивания (Sortable module). Теперь ужасная и нудная работа по добавлению изображений к товарам и баннерам на сайте сводиться к минимуму, в данной версии Вы можете:
      пакетная загрузка картинок на сервер;   удаление файлов в корзину; drugNDrop пакетная загрузка изображение на сервер; обработка изображений (обрезка, поворот и другие приятности прям в окне Вашего броузера); создание, переименование, удаление, перемещение, копирование (вставка), архивирование, как изображений, так и папок, в том числе пакетная; различные варианты просмотра изображений и папок и т.д. многоязычность (два языка (En, Ru) + языки elFinder); легкость обновления версий (для опытных пользователей!); автоматическая нумерация изображений; отсутствие перезаписи системных файлов opencart; объектный метод определения загрузки файлов, теперь Вы избавитесь от лишних надоедливых кнопок внизу; изменять любое изображение в админ панели обычным выбором, есть как встроенный менеджер, так и Imagemanager на выбор.  добавление водяного знака к изображению, работает "НЕ С КЕШЕМ" изображения, водяной знак накладывается сразу при загрузке изображения на сервер,  неплохой вариант для тех кто только что открыл свой интернет магазин и не хочет чтобы его изображения были добавлены на сторонние сайты;  автоматическая регулировка размеров изображения (высота, ширина) при загрузке изображения на сервер, работает при загрузке изображений выше тех размеров которые необходимо получить: 1024*768px -> 800*600px, основан на методе плагина elFinder AutoResize; добавлен ftp клиент для менеджера, теперь можно выгружать на свой сайт картинки из других источников, подключившись по ftp (пока убран, будет полный набор - ftp, onedrive и так далее в 1.12); загрузка изображение текстового редактора summernote (одиночное/пакетное); пакетное добавление изображений в раздел баннеры (Загрузка на сервер и добавление в карточку баннера); автоматическая транслитерация именах изображений, если у Вас на сервере имеются файлы с русскими символами посвящается данный функционал, пора заменить все имена файлов на латиницу; автоматическая замена символов в именах изображений, при загрузке можно контролировать замену символов (которые могут доставить не мало проблем при хранении, переносе сайта на другой хостинг), например на нижний пробел; поддержка тем для elfinder (помимо стандартного еще 4 шт.)      
      Посмотреть работу модуля можно на следующем видео: ссылка
       
      Если возникли проблемы которые требуют моего вмешательства, заранее подготовьте доступы к админке и фтп(а также не забываем указывать точки входа-домен, адрес фтп!!!), установка и решение проблем связанные с ней бесплатны.
       
       
      Добавил q3dm0 Добавлено 08.03.2017 Категория Обмен данными Системные требования Метод активации Без активации Ioncube Loader Нет OpenCart 3.0
      2.3
      2.2
      2.1
      2.0
      1.5.6.4
      1.5.6.3
      1.5.6.2
      1.5.6.1
      1.5.6
      1.5.5.1
      1.5.5
      1.5.4.1
      1.5.3.1 ocStore 3.0
      2.3
      2.2
      2.1
      1.5.5.1.2
      1.5.5.1.1
      1.5.5.1
      1.5.4.1.2
      1.5.4.1.1
      1.5.4.1
      1.5.3.1
      1.5.2.1
      1.5.1.3 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1
      OcShop 2.0.3.х
      OcShop 1.5.6.4.х Обращение к серверу разработчика Нет Старая цена 0  
    • By q3dm0
      Менеджер изображений, он же и обработчик, с богатым функционалом, все, что нужно для обработки изображений на лету в нем есть, некоторый аналог швейцарского армейского ножа - этот модуль является идеальной заменой старого менеджера изображений, и Вы перестанете терять огромное количество времени на редактирование изображений.
       
      Он поддерживает добавление нескольких изображений одновременно, просмотр истории (сохраняет последнюю открытую папку), перетаскивание загружаемых изображений, изменение размера/поворота, поиск изображений/папок  и многое другое!
      Ну и в комплект идет полноценная адаптивная галерея для организации своего блога, страницы новостей или фотогалереи с описанием товара или целой группы товаров с возможностью объединения галереи и товаров по тегам на сайте для более результативного поиска последних. Полноценный модуль imagemanager с возможностью заливать на лету тысячи фотографий  для своих товаров, баннеров, обрабатывать их, перетягивать в нужном порядке методом drugNdrop и не только, теперь Вы сможете это, с новым пакетом ScangalleryPack.
      модуль Imagemanager на базе jquery файл-менеджера elFinder для версий opencart 1.5.X  -2.X – 3.X; галерея на базе jquery галереи blueimp-gallery конечно же с  мультизагрузкой изображений, а также с более простой поисковой оптимизацией Вашего сайта, теперь для каждой картинки можно присвоить свой alt и title прям из под админ панели, ну и само собой, в данный пакет интегрирован модуль сортировки изображений методом перетягивания (Sortable module). Теперь ужасная и нудная работа по добавлению изображений к товарам и баннерам на сайте сводиться к минимуму, в данной версии Вы можете:
      пакетная загрузка картинок на сервер;   удаление файлов в корзину; drugNDrop пакетная загрузка изображение на сервер; обработка изображений (обрезка, поворот и другие приятности прям в окне Вашего броузера); создание, переименование, удаление, перемещение, копирование (вставка), архивирование, как изображений, так и папок, в том числе пакетная; различные варианты просмотра изображений и папок и т.д. многоязычность (два языка (En, Ru) + языки elFinder); легкость обновления версий (для опытных пользователей!); автоматическая нумерация изображений; отсутствие перезаписи системных файлов opencart; объектный метод определения загрузки файлов, теперь Вы избавитесь от лишних надоедливых кнопок внизу; изменять любое изображение в админ панели обычным выбором, есть как встроенный менеджер, так и Imagemanager на выбор.  добавление водяного знака к изображению, работает "НЕ С КЕШЕМ" изображения, водяной знак накладывается сразу при загрузке изображения на сервер,  неплохой вариант для тех кто только что открыл свой интернет магазин и не хочет чтобы его изображения были добавлены на сторонние сайты;  автоматическая регулировка размеров изображения (высота, ширина) при загрузке изображения на сервер, работает при загрузке изображений выше тех размеров которые необходимо получить: 1024*768px -> 800*600px, основан на методе плагина elFinder AutoResize; добавлен ftp клиент для менеджера, теперь можно выгружать на свой сайт картинки из других источников, подключившись по ftp (пока убран, будет полный набор - ftp, onedrive и так далее в 1.12); загрузка изображение текстового редактора summernote (одиночное/пакетное); пакетное добавление изображений в раздел баннеры (Загрузка на сервер и добавление в карточку баннера); автоматическая транслитерация именах изображений, если у Вас на сервере имеются файлы с русскими символами посвящается данный функционал, пора заменить все имена файлов на латиницу; автоматическая замена символов в именах изображений, при загрузке можно контролировать замену символов (которые могут доставить не мало проблем при хранении, переносе сайта на другой хостинг), например на нижний пробел; поддержка тем для elfinder (помимо стандартного еще 4 шт.)      
      Посмотреть работу модуля можно на следующем видео: ссылка
       
      Если возникли проблемы которые требуют моего вмешательства, заранее подготовьте доступы к админке и фтп(а также не забываем указывать точки входа-домен, адрес фтп!!!), установка и решение проблем связанные с ней бесплатны.
       
       
    • By legioner26
      777.00 руб
      Скачать/Купить дополнение


      Модификатор автозаполнения картинок категорий
      Разработан модификатор автозаполнения картинок категорий из первой найденной картинки товара категории, а так же проставляются картинки для главных категорий и под категорий
      версии OpenCart 2.0, 2.1, 2.2, 2.3, 3.x  
      Просто заливаете товары с картинками, а картинки на категории проставятся сами.
      Устанавливаете модификатор как указано на картинке, чистим в модификациях кеш и обновляем. 
       
      Иногда бывает когда некорректно удалены картинки, и они сохранены в базе Для этого надо зайти через phpmyadmin и удалить из полей картинки из таблица oc_category
      UPDATE `oc_category` SET image=''
      http://prntscr.com/rkmuy3
      Введете этот запрос для очистки всех изображений категорий в случае проблем.
       
      РЕКОМЕНДУЕМЫЕ МОДУЛИ
       
      Смс авторизация и регистрация 
      Генератор АКЦИЙ Special PRO
      Конструктор форм обратной связи
      Модуль Зумма
      Модуль подарков
      СЕО генератор мета тегов
       
      Добавил 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 Обращение к серверу разработчика Нет Старая цена 1200  
  • 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.