Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Не получается вывести модуль на странице пагинации


Saker

Recommended Posts

Нужно вывести модуль только на первой странице пагинации всех категорий. Код вставляю в catalog/controller/common/content_top.php (схема модуля добавлена в вверх страницы)

 

 

 

Применяю вот такую схему:

 

if ($output) {
	if ($route == 'product/category' && $this->request->get['page'] == 1 && $part[1] == 33) {
		$data['modules'][] = $output;

	} elseif ($route == 'product/category' && $part[1] == 33) {
		$data['modules'][] = "";
	// Стандартный вывод контента позиции 
	} else {
		$data['modules'][] = $output;
	}
}

 

$part[1] == 33    - это айди модуля. Буду благодарен за исправление)

Надіслати
Поділитися на інших сайтах


$data['modules'][] = "";

Это вообще убрать надо. Фактически тут 3 условия в одно объединить, по нормальному. Очистить кэш также

Змінено користувачем LTRay
Надіслати
Поділитися на інших сайтах


11 минут назад, LTRay сказал:

Вставляете после чего? Нужно смотреть весь код. Ну и я в этом фрагменте не вижу isset

 

В файле catalog/controller/common/content_top.php заменяю вот эту часть кода:

 

if ($output) {
	$data['modules'][] = $output;
}

 

на 

 

if ($output) {
	if ($route == 'product/category' && $this->request->get['page'] == 1 && $part[1] == 33) {
		$data['modules'][] = $output;

	} elseif ($route == 'product/category' && $part[1] == 33) {
		$data['modules'][] = "";
	// Стандартный вывод контента позиции 
	} else {
		$data['modules'][] = $output;
	}
}

 

6 минут назад, LTRay сказал:

$data['modules'][] = "";

Фактически тут 3 условия в одно объединить, по нормальному. Очистить кэш также

 

К сожалению, в программирование никак

Надіслати
Поділитися на інших сайтах


Код файла content_top.php

 

Спойлер

<?php
class ControllerCommonContentTop extends Controller {
	public function index() {
		$this->load->model('design/layout');

		if (isset($this->request->get['route'])) {
			$route = (string)$this->request->get['route'];
		} else {
			$route = 'common/home';
		}

		$layout_id = 0;

		if ($route == 'product/category' && isset($this->request->get['path'])) {
			$this->load->model('catalog/category');

			$path = explode('_', (string)$this->request->get['path']);

			$layout_id = $this->model_catalog_category->getCategoryLayoutId(end($path));
		}

		if ($route == 'product/product' && isset($this->request->get['product_id'])) {
			$this->load->model('catalog/product');

			$layout_id = $this->model_catalog_product->getProductLayoutId($this->request->get['product_id']);
		}

		if ($route == 'information/information' && isset($this->request->get['information_id'])) {
			$this->load->model('catalog/information');

			$layout_id = $this->model_catalog_information->getInformationLayoutId($this->request->get['information_id']);
		}

		if (!$layout_id) {
			$layout_id = $this->model_design_layout->getLayout($route);
		}

		if (!$layout_id) {
			$layout_id = $this->config->get('config_layout_id');
		}

		$this->load->model('setting/module');

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

		$modules = $this->model_design_layout->getLayoutModules($layout_id, 'content_top');

		foreach ($modules as $module) {
			$part = explode('.', $module['code']);

			if (isset($part[0]) && $this->config->get('module_' . $part[0] . '_status')) {
				$module_data = $this->load->controller('extension/module/' . $part[0]);

				if ($module_data) {
					$data['modules'][] = $module_data;
				}
			}

			if (isset($part[1])) {
				$setting_info = $this->model_setting_module->getModule($part[1]);

				if ($setting_info && $setting_info['status']) {
					$output = $this->load->controller('extension/module/' . $part[0], $setting_info);


if ($output) {
	if ($route == 'product/category' && $this->request->get['page'] == 1 && $part[1] == 33) {
		$data['modules'][] = $output;
	} elseif ($route == 'product/category' && $part[1] == 33) {
		$data['modules'][] = "";
	// Стандартный вывод контента позиции 
	} else {
		$data['modules'][] = $output;
	}
}
				}
			}
		}

		return $this->load->view('common/content_top', $data);
	}
}

 

 

Надіслати
Поділитися на інших сайтах


if ($output) {
	if ($route == 'product/category' && isset($this->request->get['page']) && $this->request->get['page'] != 1 && $part[1] == 33) {
		break;
	}
	
	$data['modules'][] = $output;
}

Как то так

Змінено користувачем LTRay
Надіслати
Поділитися на інших сайтах


19 минут назад, LTRay сказал:

if ($output) {
	if ($route != 'product/category' || !isset($this->request->get['page']) || $this->request->get['page'] != 1 || $part[1] != 33) {
		$data['modules'][] = $output;
	}
}

Как то так

 

Спасибо!) Схема сработала, но к сожалению, только частично.

 

Получается, если перейти по странице index.php?route=product/category&path=3257&page=1 модуль не отображается. Когда переходишь на страницу index.php?route=product/category&path=3257&page=2 модуль отображается.

 

Если перейти вот так /index.php?route=product/category&path=3257 (без употребления page) - модуль тоже есть

 

Надіслати
Поділитися на інших сайтах


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

Сложно тут чтото сказать точно. Я в слепую код писал, ещё и исправлял 2 раза. Надо смотреть конкретно на сайте

 

Уже исправил! Большое вам спасибо за помощь! Получается я применил get['page'] >2 и все заработало как надо)

 

Еще раз спасибо, выручили!

Надіслати
Поділитися на інших сайтах


9 minutes ago, Saker said:

 

Спасибо!) Схема сработала, но к сожалению, только частично.

 

Получается, если перейти по странице index.php?route=product/category&path=3257&page=1 модуль не отображается. Когда переходишь на страницу index.php?route=product/category&path=3257&page=2 модуль отображается.

 

Если перейти вот так /index.php?route=product/category&path=3257 (без употребления page) - модуль тоже есть

 

Те тут код не верный. Нужна та что с break

Змінено користувачем LTRay
Надіслати
Поділитися на інших сайтах


6 минут назад, LTRay сказал:

А блин, Вы проверьте конечную версию. Пост исправлен

 

Попробовал ваш исправленный код, все сработало четко! На вашем последнем варианте и остановлюсь) 

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.