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

Контроллер левого меню в openCart


Recommended Posts

Вопрос знатокам! после того как были перелопачены все контроллеры, он на конец-то нашёлся.. контроллер по пути /www/happyhome.ru/catalog/controller/extension/module/catalog.php (левое меню) что самое интересное не работает от этого адреса, хоть файл удали, но, зато спокойно себе функционирует и вносятся любые правки с /www/happyhome.ru/system/storage/modification/catalog/controller/extension/module/catalog.php в общем вопрос однозначный, как это дело исправить...? есть какие-то варианты

 

 

Конструкция: /www/happyhome.ru/system/storage/modification/catalog/controller/extension/module/catalog.php

                $children_data[] = array(
                  'category_id' => $child['category_id'],
                  'name'        => $child['name'],
                  'children2'    => $children_data_level2,
                  'href'        => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id']) 
                ); 

Конструкция:  /www/happyhome.ru/catalog/controller/extension/module/catalog.php

					$children_data[] = array(
						'category_id' => $child['category_id'],
						'name' => $child['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''),
						'href' => $this->url->link('product/category', 'path='  . $child['category_id'])
					);

 

12121212.png

Edited by userAT
Link to post
Share on other sites

у вас работает какой-то модификатор (читайте про OCMOD), который делает вот что:

берет стандартный файл.

вносит в него изменения

сохраняет во временный файл с таким же названием в папке sytem/storage

этот временный файл и используется при работе сайта.

этот файл существует неизменным до тех пор, пока не очистится кеш модификаторов

или пока кеш модификаторов не будет обновлен.

 

Если вы вносите изменения в исходный файл, то необходимо обновить модификаторы.

тогда процесс модификации будет повторен с уже измененным файлом. 

Edited by jaffagold
Link to post
Share on other sites

delete/

пока писал, опередили

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

delete/

пока писал, опередили

 

Страница была бы немного выше в поисковой выдаче)

Link to post
Share on other sites
14 часов назад, jaffagold сказал:

у вас работает какой-то модификатор (читайте про OCMOD), который делает вот что:

берет стандартный файл.

вносит в него изменения

сохраняет во временный файл с таким же названием в папке sytem/storage

этот временный файл и используется при работе сайта.

этот файл существует неизменным до тех пор, пока не очистится кеш модификаторов

или пока кеш модификаторов не будет обновлен.

 

Если вы вносите изменения в исходный файл, то необходимо обновить модификаторы.

тогда процесс модификации будет повторен с уже измененным файлом. 

Здравствуйте, спасибо за развернутый ответ, но в том то и дело модификаторы я обновляю, как и чищю кэш по пути /www/happyhome.ru/system/storage/cache/ 

Link to post
Share on other sites

9 минут назад, userAT сказал:

как и чищю кэш по пути /www/happyhome.ru/system/storage/cache/

system\storage\modification

  • +1 1
Link to post
Share on other sites

 

и что от туда нужно удалить...?

Edited by userAT
Link to post
Share on other sites

Откройте эту папку и смотрите в ней тот файл в который вносите правки, есть ли они там.

Link to post
Share on other sites
$children_data[] = array(
'category_id' => $child['category_id'],
'name' => $child['name'],
'children2' => $children_data_level2,
'href' => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id'])
);
 
в том то и дело что такой структуры в оригинальном файле нет..
Link to post
Share on other sites

Вы же сами написали в своем первом сообщении

/www/happyhome.ru/system/storage/modification/catalog/controller/extension/module/catalog.php 

Это и есть временный модифицированный файл.

Чтобы не лазить по папкам используйте средства опенкарт

Дополнения- Менеджер дополнений

Кнопки в правом верхнем углу

Сброс- стирает временные модифицированные файлы

Обновить- обновляет временные файлы.

На этой же странице вы увидите список модификаторов, установленных в систему штатными средствами.

Кнопку удалить использовать, только когда вы совсем хотите удалить сам модификатор из системы.

 

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

сначала по папке system

а потом в базе данных в таблице oc_modification

столбец xml

 

Edited by jaffagold
Link to post
Share on other sites

<?php
class ControllerExtensionModuleCategory extends Controller {
	public function index() {
		$this->load->language('extension/module/category');

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

		if (isset($this->request->get['path'])) {
			$parts = explode('_', (string)$this->request->get['path']);
		} else {
			$parts = array();
		}

		if (isset($parts[0])) {
			$data['category_id'] = $parts[0];
		} else {
			$data['category_id'] = 0;
		}

		if (isset($parts[1])) {
			$data['child_id'] = $parts[1];
		} else {
			$data['child_id'] = 0;
		}

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

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

		$data['categories'] = array();

		$categories = $this->model_catalog_category->getCategories(0);

		foreach ($categories as $category) {
			$children_data = array();

			if ($category['category_id'] == $data['category_id']) {
				$children = $this->model_catalog_category->getCategories($category['category_id']);

				foreach($children as $child) {
					$filter_data = array('filter_category_id' => $child['category_id'], 'filter_sub_category' => true);

					$children_data[] = array(
						'category_id' => $child['category_id'],
						'name' => $child['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''),
						'href' => $this->url->link('product/category', 'path='  . $child['category_id'])
					);
				}
			}

			$filter_data = array(
				'filter_category_id'  => $category['category_id'],
				'filter_sub_category' => true
			);

			$data['categories'][] = array(
				'category_id' => $category['category_id'],
				'name'        => $category['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''),
				'children'    => $children_data,
				'href'        => $this->url->link('product/category', 'path=' . $category['category_id'])
			);
		}

		return $this->load->view('extension/module/category', $data);
	}
}

Это оригинал

 

 

 

 

 

 

<?php
class ControllerExtensionModuleCategory extends Controller {
	        
        public function index() {
          $this->load->language('extension/module/category');
      
          $data['heading_title'] = $this->language->get('heading_title');
      
          if (isset($this->request->get['path'])) {
            $parts = explode('_', (string)$this->request->get['path']);
          } else {
            $parts = array();
          }
          
          if (isset($parts[0])) {
            $data['category_id'] = $parts[0];
          } else {
            $data['category_id'] = 0;
          }
      
          if (isset($parts[1])) {
            $data['child_id'] = $parts[1];
          } else {
            $data['child_id'] = 0;
          }
          
          if (isset($parts[2])) {
            $data['child2_id'] = $parts[2];
          } else {
            $data['child2_id'] = 0;
          }
      
          $this->load->model('catalog/category');
      
          $this->load->model('catalog/product');
      
          $result_all_categories = $this->cache->get('octemplates.module_category.' . (int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . $this->config->get('config_customer_group_id'));
          
          if (!$result_all_categories) {
            $categories = $this->model_catalog_category->getCategories(0);  
            
            foreach ($categories as $category) {
              $children_data = array();
              $children = $this->model_catalog_category->getCategories($category['category_id']);
              
              foreach ($children as $child) {
                $children_data_level2 = array();
                $children_level2 = $this->model_catalog_category->getCategories($child['category_id']);       
                
                foreach ($children_level2 as $child_level2) {
                  $data_level2 = array(
                    'filter_category_id'  => $child_level2['category_id'],
                    'filter_sub_category' => true
                  );

                  $children_data_level2[] = array(
                    'category_id' => $child_level2['category_id'],
                    'name'  =>  $child_level2['name'],
                    'href'  => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id'] . '_' . $child_level2['category_id']),
                    'id' => $category['category_id']. '_' . $child['category_id']. '_' . $child_level2['category_id']
                  );
                }

                $children_data[] = array(
                  'category_id' => $child['category_id'],
                  'name'        => $child['name'],
                  'children2'    => $children_data_level2,
                  'href'        => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id']) 
                );    
              }
        
              $result_all_categories[] = array(
                'category_id' => $category['category_id'],
                'name'        => $category['name'],
                'children'    => $children_data,        
                'href'        => $this->url->link('product/category', 'path=' . $category['category_id'])
              );  
            }
      
            $this->cache->set('octemplates.module_category.' . (int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . $this->config->get('config_customer_group_id'), $result_all_categories);
          }

          $data['categories'] = $result_all_categories;

          return $this->load->view('extension/module/category', $data);
        }

        public function old_index() {
		$this->load->language('extension/module/category');

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

		if (isset($this->request->get['path'])) {
			$parts = explode('_', (string)$this->request->get['path']);
		} else {
			$parts = array();
		}

		if (isset($parts[0])) {
			$data['category_id'] = $parts[0];
		} else {
			$data['category_id'] = 0;
		}

		if (isset($parts[1])) {
			$data['child_id'] = $parts[1];
		} else {
			$data['child_id'] = 0;
		}

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

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

		$data['categories'] = array();

		$categories = $this->model_catalog_category->getCategories(0);

		foreach ($categories as $category) {
			$children_data = array();

			if ($category['category_id'] == $data['category_id']) {
				$children = $this->model_catalog_category->getCategories($category['category_id']);

				foreach($children as $child) {
					$filter_data = array('filter_category_id' => $child['category_id'], 'filter_sub_category' => true);

					$children_data[] = array(
						'category_id' => $child['category_id'],
						'name' => $child['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''),
						'href' => $this->url->link('product/category'  . $child['category_id'])
					);
				}
			}

			$filter_data = array(
				'filter_category_id'  => $category['category_id'],
				'filter_sub_category' => true
			);

			$data['categories'][] = array(
				'category_id' => $category['category_id'],
				'name'        => $category['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''),
				'children'    => $children_data,
				'href'        => $this->url->link('product/category', 'path=' . $category['category_id'])
			);
		}

		return $this->load->view('extension/module/category', $data);
	}
}

из system

Edited by userAT
Link to post
Share on other sites

31 минуту назад, jaffagold сказал:

Dds же сами написали в своем первом сообщении

/www/happyhome.ru/system/storage/modification/catalog/controller/extension/module/catalog.php 

Это и есть временный модифицированный файл.

Чтобы не лазить по папкам используйте средства опенкарт

Дополнения- Менеджер дополнений

Кнопки в правом верхнем углу

Сброс- стирает временные модифицированные файлы

Обновить- обновляет временные файлы.

Кнопку удалить использовать, только когда вы совсем хотите удалить модификатор из системы.

 

да, сорян...но суть та что такой конструкции нет, с которой происходят изменения если делать их в system/..

 

$children_data_level2[] = array(
'category_id' => $child_level2['category_id'],
'name' => $child_level2['name'],
'href' => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id'] . '_' . $child_level2['category_id']),
'id' => $category['category_id']. '_' . $child['category_id']. '_' . $child_level2['category_id']
);
Edited by userAT
Link to post
Share on other sites

Спойлер

'octemplates.module_category.

Этот текст говорит, что у вас установлен шаблон от octemplates

Зачем вы тогда нам морочите голову дефолтными файлами?

Link to post
Share on other sites

9 минут назад, jaffagold сказал:
  Скрыть контент


'octemplates.module_category.

Этот текст говорит, что у вас установлен шаблон от octemplates

Зачем вы тогда нам морочите голову дефолтными файлами?

 

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

Link to post
Share on other sites

Пожалуй, отвечу тут в последний раз.

Когда вы просите о помощи, будьте добры, уважайте время тех людей, которые будут пытаться вам помочь.

Выдавайте полную информацию. не заставляйте вытягивать ее.

Принято указывать шаблон, установленные модули. Обычно, желательна также ссылка на сайт.

То, что вы задаете свои вопросы не в теме поддержки шаблона наводит на некоторые неприятные выводы.

 

Edited by jaffagold
Link to post
Share on other sites

14 минут назад, jaffagold сказал:

Пожалуй, отвечу тут в последний раз.

Когда вы просите о помощи, будьте добры, уважайте время тех людей, которые будут пытаться вам помочь.

Выдавайте полную информацию. не заставляйте вытягивать ее.

Принято указывать шаблон, установленные модули. Обычно, желательна также ссылка на сайт.

То, что вы задаете свои вопросы не в теме поддержки шаблона наводит на некоторые неприятные выводы.

 

 

как скажешь, отец

Link to post
Share on other sites

Шаблон откуда у вас?

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

Шаблон откуда у вас?

 к сожалению не имею такой инфы..

Link to post
Share on other sites

То есть , это как?

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

То есть , это как?

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

 

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 Sa1det
      2000
      Скачать/Купить дополнение


      Синхронизация Opencart и Мой Склад
      Данный модуль позволяет переносить информацию о товарах из сервиса Мой Склад в Opencart.
       
      Модуль включает в себя следующие функции и настройки:
      добавление товаров и категорий обновление информации о товарах и категориях обновление изображений и атрибутов товаров возможность выбора полей, по которым будет выполнятся связывание товаров (Мой Склад -> Opencart) - "Код" -> "Модель"
      - "Внешний код" -> "Модель"
      - "Артикул" -> "Модель"
      возможность выбора цены продажи, если их несколько возможность выбора действия, которое будет осуществляться с товарами, которые есть в Opencart, но отсутствуют в Моем Складе - Ничего не делать
      - Обнулять остатки
      - Обнулять остатки и ставить статус "нет в наличии"
       
      Информация о  работе модуля:
      - обмен данными происходит через API;
      - модуль может работать с Cron (планировщик);
      - модуль имеет открытый код;
      - модуль легко настраивается.
      - идентификаторы, по которым происходит связывание товаров должны быть уникальными для каждого товара
       
      Установка
      Установка данного модуля происходит через функцию "Установка расширений" в Opencart. Все что требуется - нажать на "Загрузить файл" и выбрать архив с модулем.
       
      Поддержка
      По всем возникающим вопросам можно обращаться через личные сообщения или в раздел FAQ
      Добавил Sa1det Добавлено 12.01.2022 Категория Обмен данными Системные требования Метод активации Автоматическая активация Ioncube Loader Нет OpenCart 3.0 ocStore 3.0 OpenCart.Pro, ocShop Не проверялось Обращение к серверу разработчика Нет  
    • By Sa1det
      Данный модуль позволяет переносить информацию о товарах из сервиса Мой Склад в Opencart.
       
      Модуль включает в себя следующие функции и настройки:
      Добавление товаров и категорий Обновление информации о товарах и категориях Обновление изображений и атрибутов товаров Возможность выбора полей, по которым будет выполнятся связывание товаров (Мой Склад -> Opencart) - "Код" -> "Модель"
      - "Внешний код" -> "Модель"
      - "Артикул" -> "Модель"
      Возможность выбора цены продажи, если их несколько Возможность выбора действия, которое будет осуществляться с товарами, которые есть в Opencart, но отсутствуют в Моем Складе - Ничего не делать
      - Обнулять остатки
      - Обнулять остатки и ставить статус "нет в наличии"
       
      Информация о  работе модуля:
      - Обмен данными происходит через API
      - Модуль может работать с Cron (планировщик)
      - Модуль имеет открытый код
      - Модуль легко настраивается
      - Идентификаторы, по которым происходит связывание товаров должны быть уникальными для каждого товара
       
      Установка
      Установка данного модуля происходит через функцию "Установка расширений" в Opencart. Все что требуется - нажать на "Загрузить файл" и выбрать архив с модулем.
       
      Поддержка
      По всем возникающим вопросам можно обращаться через личные сообщения или в раздел FAQ
    • By Slavik7
      Добрый день, Уважаемые специалисты! Впервые столкнулся с такой проблемой. Долго загружаются все страницы категорий (там где есть товары), если переходить на них в первый раз. И чем больше товаров в категории, тем дольше загрузка. Хотя товаров не так уж и много, примерно 5000 (это на всем сайте), а в самой большой категории около 1000.
       
      "DOMContentLoaded" и "Load" может достигать 30 секунд.

      Так же заметил, что после того как очищаю кэш в админке и перезагружаю главную страницу (с помощью горячих клавиш: Ctrl + Shift + R) то главная страница тоже долго загружается. "DOMContentLoaded" и "Load" около 20 секунд.

      Понимаю, что может быть очень много разных причин этой проблемы, но возможно вы сталкивались с этим и смогли решить данную проблему. Буду рад даже ссылкам на какие-то статьи по этой теме, или обсуждения. 

      Я пробовал отключать стандартные модули "Новинки" "Рекомендуемые товары" и т.д. и проблема с загрузкой главной страницы после очистки кэша, исчезла. Но это так себе решение. С таким же успехом можно просто убрать товары из категорий и они будут быстро загружаться.

      Мой сайт: https://bagcity.com.ua
      Версия OpenCart: 3.0.3.2
    • By 1DeX6
      Нужно сделать синхронизацию учета товаров между opencart 3 и YCLIENTS, а так же по возможности передачу информации по истории покупок клиента (бонусы, баллы и тп.). Документация API YCLIENTS 

      Пишите сразу за какой срок сделаете и цену. 
      Можно сюда или в личку
    • By fonclub
      Модуль «Говорящие товары» позволяет эмулировать общение товаров Вашего магазина между собой для привлечения внимания покупателя. Первый «пузырь» появляется после прокрутки страницы через заданное количество секунд, остальные через указанный промежуток. Каждый «пузырь» отображается заданное количество секунд. Возможности: - Для каждого товара можно задать несколько блоков с текстами. - В каждом блоке можно добавить неограниченное количество текстов. - Возможность задания своих стилей для «пузырей» в css файле catalog/view/theme/default/stylesheet/bubbles.css Демо http://oc2.7cub.ru/index.php?route=product/category&amp;path=24 
       
      Демо админки: http://oc2.7cub.ru/admin/index.php?route=extension/module/bubbles demo/demo
  • 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.