Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Sign Up

Recommended Posts

Здравствуйте,

Ранее мне сделали обертку для ocfilter Версии 4.7ххх , чтобы его можно было выводить в любое место(главная, статьи, блог... не важно) все работало вполне адекватно, но появиласть необходимость сделать тоже-самое но на новую версию фильтра...

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

сделал логирование ошибок
 

[07-Nov-2021 13:18:05 UTC] PHP Fatal error:  Uncaught Error: Class 'OCFilter' not found in /home/p/pikenebl/***/public_html/catalog/controller/extension/module/lazyfilter.php:54
Stack trace:
#0 [internal function]: ControllerExtensionModuleLazyFilter->index(Array)
#1 /home/p/pikenebl/***/storage/modification/system/engine/action.php(79): call_user_func_array(Array, Array)
#2 /home/p/pikenebl/***/storage/modification/system/engine/loader.php(48): Action->execute(Object(Registry), Array)
#3 /home/p/pikenebl/***/storage/modification/catalog/controller/common/content_top.php(70): Loader->controller('extension/modul...')
#4 [internal function]: ControllerCommonContentTop->index(Array)
#5 /home/p/pikenebl/***/storage/modification/system/engine/action.php(79): call_user_func_array(Array, Array)
#6 /home/p/pikenebl/***/storage/modification/system/engine/loader.php(48): Action->execute(Object(Registry), Array)
#7 /home/p/pikenebl/***/public_html/catalog/controller/common/h in /home/p/pikenebl/***/public_html/catalog/controller/extension/module/lazyfilter.php on line 54

 

в файле по на этой строке находиться 

$this->registry->set('ocfilter', new OCFilter($this->registry));

что является частью цикла

		if (!$cached || (empty($data['lazyfilter_data']))) {
			
			$ocf_settings = $this->getSetting('module_ocfilter');
			$ocf_settings['mode'] = 'vertical';

			$this->load->model('catalog/category');

			$categories = [];
			if (isset($this->request->get['path']) && $data['sub_show']) {
				$path = explode('_', $this->request->get['path']);
				$category_id = end($path);
				$categories = $this->model_catalog_category->getCategories($category_id);
			} else {
				$results = $this->config->get('module_lazyfilter_categories');
				foreach ($results as $value) {
					$category_id = (int) $value;
					$categories[$category_id] = $this->model_catalog_category->getCategory($category_id);
				}
			}

			if (empty($categories)) {
				return;
			}

			foreach ($categories as $category_data) {
				$category_id = (int) $category_data['category_id'];
				
				$this->request->get['path'] = $category_id;
				
				$this->registry->set('ocfilter', new OCFilter($this->registry));

				$ocfilter_data = $this->load->controller('extension/module/ocfilter', $ocf_settings);

				unset($this->request->get['path']);
				
				$ocfilter_data = str_replace('#ocfilter', '#ocfilter-' . $category_id, $ocfilter_data);
				$ocfilter_data = str_replace('id="ocfilter', 'id="ocfilter-' . $category_id, $ocfilter_data);
				
				$data['lazyfilter_data'][$category_id] = [
					'category_data' => $category_data,
					'filter_data' => $ocfilter_data,
				];

			}
			if ($cached) {
				$this->cache->set('module.lazyfilter', $data['lazyfilter_data']);
			}
		}
	
		$this->load->language('extension/module/lazyfilter');
		
		return $this->load->view('extension/module/lazyfilter', $data);

 

когда я комментирую строку 

$this->registry->set('ocfilter', new OCFilter($this->registry));

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

 

сначала я грешил на то, что нет нужных данных в массиве ($this->registry), но после более внимательного просмотра логов ошибок, я понял что проблема в отсутствии класса OCFilter

может кто подкинуть идей в какой стороне надо смотреть?

 

PS разработчик надстройки, молчит как партизан на допросе

 

Спасибо

Link to post
Share on other sites

18 минут назад, Demanoco сказал:

PS разработчик надстройки, молчит как партизан на допросе

попробуйте ему денег предложить

Link to post
Share on other sites
1 час назад, nikifalex сказал:

попробуйте ему денег предложить

я бы подкинул, вообще не отвечает

Link to post
Share on other sites

в новой версии ж из коробки можно вывести фильтр на любой странице и ничего изобретать не нужно

Link to post
Share on other sites
10 минут назад, Blast сказал:

в новой версии ж из коробки можно вывести фильтр на любой странице и ничего изобретать не нужно

мне отдельные вкладки в нем нужны

Link to post
Share on other sites

4 часа назад, Demanoco сказал:

когда я комментирую строку 


$this->registry->set('ocfilter', new OCFilter($this->registry));

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

 

сначала я грешил на то, что нет нужных данных в массиве ($this->registry), но после более внимательного просмотра логов ошибок, я понял что проблема в отсутствии класса OCFilter

 

зачем методом ТЫКА решать свои проблемы по коду, тем более вы не имеете нужных знаний

Link to post
Share on other sites

 

36 минут назад, Venter сказал:

 

зачем методом ТЫКА решать свои проблемы по коду, тем более вы не имеете нужных знаний

что в какой теме нужно разбираться чтобы решить мою проблему? я для этого на форум и написал чтобы узнать 

Link to post
Share on other sites

Может кто подсказать по этому вопросу что-то?

Link to post
Share on other sites

2 минуты назад, Demanoco сказал:

Может кто подсказать по этому вопросу что-то?

Да ничего тут не подсказать. надо разбираться просто по месту.

А эти задачи они весьма специфические и без гарантии результата, и очень тяжело уговорить кого-то заняться ими.

А у всех кто смог бы заняться этим, еще и предновогодний завал.

 

Link to post
Share on other sites
2 часа назад, Demanoco сказал:

Может кто подсказать по этому вопросу что-то?

подтолкну в нужную сторону. нужно исправить условие чтоб подключился класс там где вам нужно. 

 

В 08.11.2021 в 01:11, Demanoco сказал:

что в какой теме нужно разбираться чтобы решить мою проблему?

это в первую очередь PHP и уметь читать код

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Similar Content

    • By PlatonElenin
      Добрый день.
      Необходимо помочь перевести сайт с пхп 5.6 на 7+.
      Магазин Опенкарт 2.3 установлен на ВПС (хостинг).
      Модуль с Ионкубом один - Simple, автор посоветовал обновится до последней версии.
      Заранее благодарен за отклик.
    • By SooR
      2800 40
      Скачать/Купить дополнение
        OCFilter - Модуль фильтра товаров
      🔑 Для обновления на 4.8 нужен ключ активации.
      Получить ключ можно здесь
       
      Внимание. Не для слабонервных!
      Начиная с версии 4.8 ссылки на обычные фильтры имеют формат
      site.com/category?ocf=F2S0V13478T137613F1S0V31
      а не
      site.com/category/color/red/price/100-300
       
      Так сделано по следующим причинам:
       
      Возможности модуля
       
      Фильтрация по:
       
      цене (включая акции, скидки, цены опций и налоги); производителям; наличию на складе (как по количеству, так и по stock_status_id); новым поступлениям (с возможностью указания временного признака); наличию скидки и акции у товаров; весу и габаритам товара, указанным в карточке; атрибутам с возможностью указания до трёх разделителей (мультиатрибуты)*; опциям товара*; стандартным фильтрам OpenCart*.
      *требует скопировать их в настройках модуля  
      Вывести модуль можно на следующих страницах:
       
      категория; товары производителя; акции; поиск товаров (не работает с модулем Поисковая система с морфологией и релевантностью PRO); любая другая страница со своими фильтрами.  
      Поддержка SEO посадочных страниц:
       
      массовое добавление страниц по выбранным критериям и шаблону подстановки; массовое редактирование; создание динамических страниц; вывод ссылок на страницы в категориях, модуле, товарах (характеристики), карте сайта.  
      Локализация
       
      Модуль поддерживает работу с мультиязычными магазинами. 
      Модуль переведен на следующие языки:
      Русский; Украинский; Английский.
      Мобильная версия и внешний вид
       
      моментальное переключение (без перезагрузки) между полной и мобильной версией; возможность указать произвольную ширину экрана, при которой полная версия переключится в мобильную; мобильную версию можно расположить слева или справа; блок модуля поддерживает жесты и закрытие по клику на пустую область вне модуля; адаптирован под внешний вид в горизонтальной разметке; поддержка двух тем: «светлая» и «светлая блочная».  
      Другие особенности
       
      - Работа с большим количеством товаров (100к +) и фильтров;
      - Не заменяет файлы вашего магазина, OCmod с минимальными вставками кода;
      - Возможность скрывать неактивные (с нулевым количеством товаров) значения фильтра;
      - Возможность использовать слайдеры для любых числовых фильтров;
      - Возможность ограничивать вывод фильтров и значений, скрывая лишние под collapse кнопку;
      - Возможность загружать скрытые фильтры и значения в фоновом режиме (AJAX) не увеличивая количество DOM элементов (положительное влияние на PageSpeed);
      - Код модуля не зашифрован и не требует декодеров, не привязан к определенной версии PHP или серверу.
       
      Больше возможностей смотрите во вкладке «Обновления».
       
      Демо

      Категория
      Производитель
      Акции
      Главная с фильтрами

      Админ панель (временно недоступна)
      Логин: demo
      Пароль: demo
       
      Совместимость

      Модуль совместим с OpenCart 2.* и 3.* (включая различные сборки на базе этих версий).
      OpenCart 1.5.x не поддерживается.
      Модуль не будет работать на странице поиска, если у вас установлен "Поисковая система с морфологией и релевантностью PRO".
       
      Совместимость с шаблонами
      Модуль совместим со всеми шаблонами, но для некоторых (например, Journal) может потребоваться небольшая корректировка.
       
      Контакты

      Время работы поддержки: пн-пт с 10:00 до 19:00, суббота, воскресенье - выходной
      Добавил SooR Добавлено 27.09.2016 Категория Фильтры Системные требования PHP 5.6+, jQuery Метод активации По емейлу
      Через официальный сайт дополнения Ioncube Loader Нет OpenCart 3.0
      2.3
      2.2
      2.1
      2.0 ocStore 3.0
      2.3.0.2.4
      2.3
      2.2
      2.1 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1
      OcShop 2.0.3.х Обращение к серверу разработчика Нет  
    • By Slavik7
      Добрый вечер, уважаемые специалисты!

      Столкнулся с такой проблемой. Если в поиск ввести более 2 слов на русском языке (кириллице) и нажать на кнопку поиска, то на странице поиска в url и в поле поиска, русские слова заменяются на непонятные символы. 
       
      Если вводить в поиск слова на английском языке, всё работает. И если вводить только одно слово на русском языке, тоже работает. 
       
      Если я правильно понимаю эта ошибка связана с кодировкой.
       
      Просто дело в том, что у меня есть два сайта, которые идентичны (отличаются лишь дизайном и некоторыми мелочами). На сайте https://divek.com.ua/ поиск работает без ошибок, а вот на втором https://bagcity.com.ua/ с ошибками.
       
      Уже столько разных статей перечитал по решению подобной проблемы, но так и не получилось решить эту задачу.
       
      Понимаю, что подобные темы уже обсуждались и возможно Вы посоветуете получше поискать ответы в интернете. Но если Вас это не затруднит, то подскажите, пожалуйста,  как решить эту проблему.
       
      Общая информация:
      Версия OpenCart: 3.0.3.2 Хостинг: https://www.ukraine.com.ua/ Версия PHP: 7.3 Ссылка на сайт: https://bagcity.com.ua  
      Скриншот результата поиска ( https://bagcity.com.ua/search/?search=ÑÑмка ÑеÑÐ½Ð°Ñ ) :

    • By SooR
      🔑 Для обновления на 4.8 нужен ключ активации.
      Получить ключ можно здесь
       
      Внимание. Не для слабонервных!
      Начиная с версии 4.8 ссылки на обычные фильтры имеют формат
      site.com/category?ocf=F2S0V13478T137613F1S0V31
      а не
      site.com/category/color/red/price/100-300
       
      Так сделано по следующим причинам:
       
      Возможности модуля
       
      Фильтрация по:
       
      цене (включая акции, скидки, цены опций и налоги); производителям; наличию на складе (как по количеству, так и по stock_status_id); новым поступлениям (с возможностью указания временного признака); наличию скидки и акции у товаров; весу и габаритам товара, указанным в карточке; атрибутам с возможностью указания до трёх разделителей (мультиатрибуты)*; опциям товара*; стандартным фильтрам OpenCart*.
      *требует скопировать их в настройках модуля  
      Вывести модуль можно на следующих страницах:
       
      категория; товары производителя; акции; поиск товаров (не работает с модулем Поисковая система с морфологией и релевантностью PRO); любая другая страница со своими фильтрами.  
      Поддержка SEO посадочных страниц:
       
      массовое добавление страниц по выбранным критериям и шаблону подстановки; массовое редактирование; создание динамических страниц; вывод ссылок на страницы в категориях, модуле, товарах (характеристики), карте сайта.  
      Локализация
       
      Модуль поддерживает работу с мультиязычными магазинами. 
      Модуль переведен на следующие языки:
      Русский; Украинский; Английский.
      Мобильная версия и внешний вид
       
      моментальное переключение (без перезагрузки) между полной и мобильной версией; возможность указать произвольную ширину экрана, при которой полная версия переключится в мобильную; мобильную версию можно расположить слева или справа; блок модуля поддерживает жесты и закрытие по клику на пустую область вне модуля; адаптирован под внешний вид в горизонтальной разметке; поддержка двух тем: «светлая» и «светлая блочная».  
      Другие особенности
       
      - Работа с большим количеством товаров (100к +) и фильтров;
      - Не заменяет файлы вашего магазина, OCmod с минимальными вставками кода;
      - Возможность скрывать неактивные (с нулевым количеством товаров) значения фильтра;
      - Возможность использовать слайдеры для любых числовых фильтров;
      - Возможность ограничивать вывод фильтров и значений, скрывая лишние под collapse кнопку;
      - Возможность загружать скрытые фильтры и значения в фоновом режиме (AJAX) не увеличивая количество DOM элементов (положительное влияние на PageSpeed);
      - Код модуля не зашифрован и не требует декодеров, не привязан к определенной версии PHP или серверу.
       
      Больше возможностей смотрите во вкладке «Обновления».
       
      Демо

      Категория
      Производитель
      Акции
      Главная с фильтрами

      Админ панель
      Логин: demo
      Пароль: demo
       
      Совместимость

      Модуль совместим с OpenCart 2.* и 3.* (включая различные сборки на базе этих версий).
      OpenCart 1.5.x не поддерживается.
      Модуль не будет работать на странице поиска, если у вас установлен "Поисковая система с морфологией и релевантностью PRO".
       
      Совместимость с шаблонами
      Модуль совместим со всеми шаблонами, но для некоторых (например, Journal) может потребоваться небольшая корректировка.
       
      Контакты

      Время работы поддержки: пн-пт с 10:00 до 19:00, суббота, воскресенье - выходной
    • By Slavik7
      Добрый вечер!
       
      Уже неделю не могу решить вопрос с сортировкой товаров. Нужно чтобы при любой стандартной сортировке, товары со статусом "нет в наличии" были в самом конце.
       
      Нашел много статей на эту тему, но для 2 версии OpenCart. Для 3-й же версии нашел всего лишь парочку статей. Но все эти решения не дали результат.
       
      Думаю для знающих и разбирающихся в php и MySql это довольно легкая задача. Буду благодарен если поможете в этом вопросе.
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

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.