Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Мануал как ускорить Opencart 3 от разработчика с Themeforest


 Поделиться

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

Я просто не могу не поделиться с вами творением мастера с themeforest

https://themeforest.net/item/kept-responsive-opencart-theme/19982236

 

Я читал этот файл как хороший детектив на ночь.

 

Угадайте куда он цепляется? Правильно! К common/menu! в Opencart 3! 

 

Для тех кто не хочет читать и восхищаться - спойлер

 

Спойлер

Перебрать 2 раза(!) на каждой странице 4 уровня категорий и посчитать там количество товаров! Я даже не знаю куда и как надо бить таких "разработчиков"

 

<?php
/*

 Project - "KEPT" - Responsive OpenCart Premium Theme

 --------------------------------------------------------------------------------

 BUY LICENCE:     https://themeforest.net/user/0808web/portfolio

 Author:          ROBERT from 0808web
 Website:         0808web.com
 Theme Version:   1.5.0.0
 Compatible:      OpenCart 3.0.2.0 or higher

 --------------------------------------------------------------------------------

 COPYRIGHT 2017 ROBERT MIRCIOI ALL RIGHTS RESERVED

*/

if ($this->config->get('config_theme') == 'kept') {
	if (isset($this->request->get['path'])) {
		$parts = explode('_', (string)$this->request->get['path']);
	} else {
		$parts = array();
	}
		
	if (isset($parts[0])) {
		$data['category_1_id'] = $parts[0];
	} else {
		$data['category_1_id'] = 0;
	}
	
	if (isset($parts[1])) {
		$data['category_2_id'] = $parts[1];
	} else {
		$data['category_2_id'] = 0;
	}
	
	if (isset($parts[2])) {
		$data['category_3_id'] = $parts[2];
	} else {
		$data['category_3_id'] = 0;
	}
	
	if (isset($parts[3])) {
		$data['category_4_id'] = $parts[3];
	} else {
		$data['category_4_id'] = 0;
	}
	 
	$this->load->model('catalog/category');

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

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

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

	foreach ($kept_categories as $category_1) {
		if ($category_1['top']) {
			$level_2_data = array();
			$categories_2 = $this->model_catalog_category->getCategories($category_1['category_id']);

			foreach ($categories_2 as $category_2) {
				$level_3_data = array();
				$categories_3 = $this->model_catalog_category->getCategories($category_2['category_id']);

				foreach ($categories_3 as $category_3) {
					$level_4_data = array();
					$categories_4 = $this->model_catalog_category->getCategories($category_3['category_id']);

					foreach ($categories_4 as $category_4) {
						$data_category_4 = array('filter_category_id' => $category_4['category_id'], 'filter_sub_category' => false);
						$product_total_category_4 = $this->model_catalog_product->getTotalProducts($data_category_4);
						
						$level_4_data[] = array(
							'name' => $category_4['name'] . ($this->config->get('config_product_count') ? '<sup>' . $product_total_category_4 . '</sup>' : ''),
							'id' => $category_4['category_id'],
							'href' => $this->url->link('product/category', 'path=' . $category_1['category_id'] . '_' . $category_2['category_id'] . '_' . $category_3['category_id'] . '_' . $category_4['category_id'])
						);
					}

					$data_category_3 = array('filter_category_id' => $category_3['category_id'], 'filter_sub_category' => false);
					$product_total_category_3 = $this->model_catalog_product->getTotalProducts($data_category_3);
					
					$level_3_data[] = array(
						'name' => $category_3['name'] . ($this->config->get('config_product_count') ? '<sup>' . $product_total_category_3 . '</sup>' : ''),
						'id' => $category_3['category_id'],
						'children' => $level_4_data,
						'href' => $this->url->link('product/category', 'path=' . $category_1['category_id'] . '_' . $category_2['category_id'] . '_' . $category_3['category_id'])
					);
				}

				$data_category_2 = array('filter_category_id' => $category_2['category_id'], 'filter_sub_category' => false);
				$product_total_category_2 = $this->model_catalog_product->getTotalProducts($data_category_2);
				
				$level_2_data[] = array(
					'name' => $category_2['name'] . ($this->config->get('config_product_count') ? '<sup>' . $product_total_category_2 . '</sup>' : ''),
					'id' => $category_2['category_id'],
					'children' => $level_3_data,
					'href' => $this->url->link('product/category', 'path=' . $category_1['category_id'] . '_' . $category_2['category_id'])
				);					
			}

			$data_category_1 = array('filter_category_id' => $category_1['category_id'], 'filter_sub_category' => true);
			$product_total_category_1 = $this->model_catalog_product->getTotalProducts($data_category_1);
		
			$data['kept_categories'][] = array(
				'name' => $category_1['name'],
				'name_count' => $category_1['name'] . ($this->config->get('config_product_count') ? '<sup>' . $product_total_category_1 . '</sup>' : ''),
				'id' => $category_1['category_id'],
				'children' => $level_2_data,
				'href' => $this->url->link('product/category', 'path=' . $category_1['category_id'])
			);
		}
	}
	
	$data['kept_sidebar_categories'] = array();

	$kept_sidebar_categories = $this->model_catalog_category->getCategories(0);
	
	foreach ($kept_sidebar_categories as $category_1) {
		$level_2_data = array();
		$categories_2 = $this->model_catalog_category->getCategories($category_1['category_id']);

		foreach ($categories_2 as $category_2) {
			$level_3_data = array();
			$categories_3 = $this->model_catalog_category->getCategories($category_2['category_id']);

			foreach ($categories_3 as $category_3) {
				$level_4_data = array();
				$categories_4 = $this->model_catalog_category->getCategories($category_3['category_id']);

				foreach ($categories_4 as $category_4) {
					$data_category_4 = array('filter_category_id' => $category_4['category_id'], 'filter_sub_category' => false);
					$product_total_category_4 = $this->model_catalog_product->getTotalProducts($data_category_4);
					

					$level_4_data[] = array(
						'name' => $category_4['name'] . ($this->config->get('config_product_count') ? '<sup>' . $product_total_category_4 . '</sup>' : ''),
						'id' => $category_4['category_id'],
						'href' => $this->url->link('product/category', 'path=' . $category_1['category_id'] . '_' . $category_2['category_id'] . '_' . $category_3['category_id'] . '_' . $category_4['category_id'])
					);
				}

				$data_category_3 = array('filter_category_id' => $category_3['category_id'], 'filter_sub_category' => false);
				$product_total_category_3 = $this->model_catalog_product->getTotalProducts($data_category_3);
				
				$level_3_data[] = array(
					'name' => $category_3['name'] . ($this->config->get('config_product_count') ? '<sup>' . $product_total_category_3 . '</sup>' : ''),
					'id' => $category_3['category_id'],
					'children' => $level_4_data,
					'href' => $this->url->link('product/category', 'path=' . $category_1['category_id'] . '_' . $category_2['category_id'] . '_' . $category_3['category_id'])
				);
			}

			$data_category_2 = array('filter_category_id' => $category_2['category_id'], 'filter_sub_category' => false);
			$product_total_category_2 = $this->model_catalog_product->getTotalProducts($data_category_2);
			

			$level_2_data[] = array(
				'name' => $category_2['name'] . ($this->config->get('config_product_count') ? '<sup>' . $product_total_category_2 . '</sup>' : ''),
				'id' => $category_2['category_id'],
				'children' => $level_3_data,
				'href' => $this->url->link('product/category', 'path=' . $category_1['category_id'] . '_' . $category_2['category_id'])
			);					
		}

		$data_category_1 = array('filter_category_id' => $category_1['category_id'], 'filter_sub_category' => true);
		$product_total_category_1 = $this->model_catalog_product->getTotalProducts($data_category_1);
		
		$data['kept_sidebar_categories'][] = array(
			'name' => $category_1['name'],
			'name_count' => $category_1['name'] . ($this->config->get('config_product_count') ? '<sup>' . $product_total_category_1 . '</sup>' : ''),
			'id' => $category_1['category_id'],
			'children' => $level_2_data,
			'href' => $this->url->link('product/category', 'path=' . $category_1['category_id'])
		);
	}
	
	$data['code'] = $this->session->data['language'];

	$this->load->model('localisation/language');

	$results = $this->model_localisation_language->getLanguages();

	foreach ($results as $result) {
		if ($data['code'] == $result['code']) {
			$data['t08_kept_language'] = $result['language_id'];
		}
	}
	
	$data['t08_kept_text'] = $this->config->get('theme_kept_text');
	
	$data['t08_kept_header'] = $this->config->get('theme_kept_header');
	
	$data['t08_kept_header_urls'] = $this->config->get('theme_kept_header_url');
}

 

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах

7 минут назад, Yakaya сказал:

Потому что Themeforest и ускорить - это антонимы. Как и совместимость их шаблонов с модулями.

 

У меня просто, как говорят сейчас по-модному, бомбануло, когда увидел Fast page speed loading

 

Top 3 KEPT Best Features

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах

Только что, spectre сказал:

 

У меня просто, как говорят сейчас по-модному, бомбануло, когда увидел Fast page speed loading

 

Top 3 KEPT Best Features

 

У меня были их шаблоны когда-то. Аж целых два. Доблестный Page Speed они не смогли за год исправить и после каждого релиза, когда народ начинал выдавать в форуме поддержки гору ошибок либо рекомендовали отключить, либо говорили, что это не их проблемы.

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах


Ну а что вы хотел ? Там в основном индусы клепают

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах

зато сертифицированные разрабётчики
как диплом  Подмосковья 
 

Спойлер

Спускается человек в первые в метро и удивлённо восклицает; "Ах вот оно какое Подмосковье!"

 

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах


Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

×
×
  • Создать...

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

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