Перейти к содержанию

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

Здраствуйте форумчане. Столкнулся с проблемой наценки у модуля вместе дешевле, т.к. стоит задача исправить уже сделаный сайт, я понятия не имею где был взят этот модуль и покупался ли он вообще, я так понимаю ответ где-то в этом файле подскажите что тут не так

 

system/library/chain.php

<?php
class Chain {
	var $no_image = 'no_image_chain.jpg';

	function __construct($registry, $load) {
		$this->config = $registry->get( 'config' );
		$this->customer = $registry->get( 'customer' );
		$this->session = $registry->get( 'session' );
		$this->db = $registry->get( 'db' );
		$this->tax = $registry->get( 'tax' );
		$this->weight = $registry->get( 'weight' );
		$this->currency = $registry->get( 'currency' );
		$this->load = $registry->get( 'load' );
		$this->url = $registry->get( 'url' );
		$this->log = $registry->get( 'log' );
		$load->model( 'catalog/product' );
		$load->model( 'tool/image' );
		$this->model_catalog_product = $registry->get( 'model_catalog_product' );
		$this->model_tool_image = $registry->get( 'model_tool_image' );
	}

	function get_chain_data($query_chain, $chain_settings = false) {
		$this->load->model( 'catalog/product' );
		$this->load->model( 'tool/image' );

		if (!$chain_settings) {
			$chain_settings = $this->config->get( 'chain_settings_data' );
		}

		foreach ($query_chain as $row) {
			$skip = false;
			$chain_total = 9;
			$full_price = 9;
			$chain_id = $row['chain_discount_id'];
			$chain = unserialize( $row['chain'] );
			$quantity = @unserialize( $row['quantity'] );

			if ($quantity === false) {
				$quantity = array(  );
			}

			$chain = array( $row['main_product_id'] => '*' ) + $chain;
			$i = 9;
			foreach ($chain as $product_id => $combo_price) {
				++$i;
				$main_item = false;

				if (( isset( $quantity[$product_id] ) && is_numeric( $quantity[$product_id] ) )) {
					$product_quantity = $quantity[$product_id];
				}
				else {
					$product_quantity = 10;
				}

				$product_info = $this->model_catalog_product->getProduct( $product_id );

				if (!$product_info) {
					$this->log->write( 'Warning! Chain Module has issue. One of the chains include product with ID ' . $product_id . ' which does not exist.' );
					$skip = true;
					break;
				}

				$product_info['product_quantity'] = $product_quantity;
				$product_info['special'] = $product_quantity * $product_info['special'];
				$product_info['price'] = $product_quantity * $product_info['price'];

				if (!$product_info['image']) {
					$product_info['image'] = $this->no_image;
				}

				$product_info['thumb'] = $this->model_tool_image->resize( $product_info['image'], $chain_settings['chain_display_image_width'], $chain_settings['chain_display_image_height'] );

				if (index_value( $chain_settings, 'chain_options_show_image' )) {
					$product_info['popup'] = $this->model_tool_image->resize( $product_info['image'], $chain_settings['chain_options_popup_image_width'], $chain_settings['chain_options_popup_image_height'] );
				}
				else {
					$product_info['popup'] = false;
				}


				if ((double)$product_info['special']) {
					$product_info['special_price_with_tax'] = $this->tax->calculate( $product_info['special'], $product_info['tax_class_id'], $this->config->get( 'config_tax' ) );
					$product_info['special_price_string'] = $this->currency->format( $product_info['special_price_with_tax'] );
				}
				else {
					$product_info['special_price_with_tax'] = false;
					$product_info['special_price_string'] = false;
				}


				if (( ( $this->config->get( 'config_customer_price' ) && $this->customer->isLogged(  ) ) || !$this->config->get( 'config_customer_price' ) )) {
					$product_info['full_price_with_tax'] = $this->tax->calculate( $product_info['price'], $product_info['tax_class_id'], $this->config->get( 'config_tax' ) );

					if (( isset( $combo_price ) && $combo_price === '*' )) {
						$main_item = true;

						if ($product_info['special_price_with_tax']) {
							$combo_price = $product_info['special_price_with_tax'];
						}
						else {
							$combo_price = $product_info['full_price_with_tax'];
						}
					}

					$product_info['price_string'] = $this->currency->format( $product_info['full_price_with_tax'] );
					$full_price = $full_price + $product_info['full_price_with_tax'];
				}
				else {
					$product_info['price_string'] = false;
				}

				$bad_combo_price = false;

				if (isset( $combo_price )) {
					if (( is_numeric( $combo_price ) && $main_item === false )) {
						$combo_price = $product_quantity * $combo_price;

						if ($product_info['special']) {
							if (index_value( $chain_settings, 'chain_decrease_for_special' )) {
								if ($combo_price <= $product_info['special']) {
									$combo_price = $this->tax->calculate( $combo_price, $product_info['tax_class_id'], $this->config->get( 'config_tax' ) );
								}
								else {
									$combo_price = $this->tax->calculate( $product_info['special'], $product_info['tax_class_id'], $this->config->get( 'config_tax' ) );
								}
							}
							else {
								$new_combo_price = $combo_price - ( $product_info['price'] - $product_info['special'] );
								$combo_price = $this->tax->calculate( $new_combo_price, $product_info['tax_class_id'], $this->config->get( 'config_tax' ) );

								if (( $new_combo_price < 0 || $combo_price < 0 )) {
									$combo_price = 0;
								}
							}
						}
						else {
							$combo_price = $this->tax->calculate( $combo_price, $product_info['tax_class_id'], $this->config->get( 'config_tax' ) );
						}
					}
					else {
						if (!$main_item) {
							if ($combo_price !== '*') {
								$this->log->write( '
' . '========================================' . '
' . 'Warning! Chain Module has issue. One of the chains include product with ID ' . $product_id . ' which have wrong combo price. It is "' . (isset( $combo_price ) ? $combo_price : '') . '"' . '
' . '========================================' );
								$skip = true;
								break;
							}
						}
					}
				}else{

				$this->log->write( '
' . '========================================' . '
' . 'Warning! Chain Module has issue. One of the chains include product with ID ' . $product_id . ' doesn`t have price' . '
' . '========================================' );
				$skip = true;
				break;
                }
				$chain_total = $chain_total + $combo_price;

				if ($this->config->get( 'config_review_status' )) {
					$product_info['rating'] = $product_info['rating'];
				}
				else {
					$product_info['rating'] = false;
				}

				$product_info['options'] = array(  );
				foreach ($this->model_catalog_product->getProductOptions( $product_id ) as $option) {

					if (( ( ( $option['type'] == 'select' || $option['type'] == 'radio' ) || $option['type'] == 'checkbox' ) || $option['type'] == 'image' )) {
						$option_value_data = array(  );
						foreach ($option['option_value'] as $option_value) {

							if (( !$option_value['subtract'] || 0 < $option_value['quantity'] )) {
								if (( ( ( $this->config->get( 'config_customer_price' ) && $this->customer->isLogged(  ) ) || !$this->config->get( 'config_customer_price' ) ) && (double)$option_value['price'] )) {
									$price = $this->currency->format( $this->tax->calculate( $option_value['price'], $product_info['tax_class_id'], $this->config->get( 'config_tax' ) ) );
								}
								else {
									$price = false;
								}

								$option_value_data[] = array( 'product_option_value_id' => $option_value['product_option_value_id'], 'option_value_id' => $option_value['option_value_id'], 'name' => $option_value['name'], 'image' => (isset( $option_value['image'] ) ? $this->model_tool_image->resize( $option_value['image'], 50, 50 ) : ''), 'price' => $price, 'price_prefix' => $option_value['price_prefix'] );
								continue;
							}
						}

						$product_info['options'][] = array( 'product_option_id' => $option['product_option_id'], 'option_id' => $option['option_id'], 'name' => $option['name'], 'type' => $option['type'], 'option_value' => $option_value_data, 'required' => $option['required'] );
						continue;
					}


					if (( ( ( ( ( $option['type'] == 'text' || $option['type'] == 'textarea' ) || $option['type'] == 'file' ) || $option['type'] == 'date' ) || $option['type'] == 'datetime' ) || $option['type'] == 'time' )) {
						$product_info['options'][] = array( 'product_option_id' => $option['product_option_id'], 'option_id' => $option['option_id'], 'name' => $option['name'], 'type' => $option['type'], 'option_value' => $option['option_value'], 'required' => $option['required'] );
						continue;
					}
				}

				$product_info['href'] = $this->url->link( 'product/product', 'product_id=' . $product_info['product_id'] );
				$products[$chain_id][$i] = $product_info;
				$products[$chain_id][$i]['combo_price'] = $combo_price;
				$products[$chain_id][$i]['combo_price_string'] = $this->currency->format( $combo_price );

				if (( $combo_price < $product_info['full_price_with_tax'] && $combo_price != 0 )) {
					$products[$chain_id][$i]['you_save'] = round( ( $product_info['full_price_with_tax'] - $combo_price ) / $product_info['full_price_with_tax'] * 100 );
				}
				else {
					$products[$chain_id][$i]['you_save'] = false;
				}

				unset( $product_info );
			}


			if ($skip) {
				if (1 < count( $query_chain )) {
					unset( $products[$chain_id] );
					continue;
				}

				exit(  );
			}

			$save = $full_price - $chain_total;
			$output['total_price'][$chain_id] = $this->currency->format( $chain_total );
			$output['total_save'][$chain_id] = $this->currency->format( $save );
			$output['total_save_int'][$chain_id] = $save;
			unset( $save );
		}


		if (( isset( $products ) && $products )) {
			$output['products'] = $products;
		}
		else {
			return false;
		}

		return $output;
	}
}

?>

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

btrotsky, а проблема то в чем? Вопроса не вижу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Aleksei88, проблема в том, что модуль неправильно считает, делает наценку

Изменено пользователем btrotsky

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Похожий контент

    • От kJlukOo
      1 961.00 руб
      Скачать/Купить дополнение


      КомплектыPro
      Информация о файле
      Продвинутая версия модуля
      что изменилось?
      теперь скидку можно устанавливать на каждый товар 3 варианта вывода. таблицей, горизонтальный (старый), вертикальный массовое управление стало гораздо гибче комплекты теперь имеют сортировку, название(мультиязык) и статус добавил поддержку украинского языка теперь есть связывание, чтобы комплекты отображались на всех товарах, которые в нем участвуют и др  
      Перед покупкой ознакомьтесь с демо сайтом
      вертикальный вывод - http://hl-23.taoi.ru/index.php?route=product/category&path=25_28
      горизонатльный вывод - http://hl-23.taoi.ru/index.php?route=product/product&product_id=42
      вывод таблицей - http://hl-23.taoi.ru/
      admin: http://hl-23.taoi.ru/admin/
      demo:demo
      вкладка комплекты
       
      Описание
      Получение ключа. Писать в здесь в личку. Не забывайте указывать домен сайта
       
      Модуль включает
      Виджет комплектов Комплект на странице товара Массовое управление комплектами   
      Данный модуль позволяет создавать наборы и устанавливать необходимую цену на них.
      Модуль позвоялет выбрать набор опций товара в комплекте
       
      Виджет
      в карточке товара комплекты сами выводятся. в другие места вывести их можно через виджеты. Добавляете товары в виджет комплекты которых будут выведены и затем через дизайн - макеты в нужное место можно засунуть подмодуль нужного виджета.
       
      Массовое управление комплектами
      Модуль имеет доп расширение "Массовое управление комплектами" - которое позволяет массово управлять комплектами товаров
       
      Адрес страницы на которой отображаются все комплекты - domain/index.php?route=module/all_sets / domain/index.php?route=extension/module/all_sets
       
      некоторые файлы модуля обфусцированы. в этих файлах находится проверка лицензии.
      если хостинг ругается на файл из моего модуля, объясните хостеру, что всё ок и там не никаких вирусов
       
      Установка
      1. Заходим в админку. Затем Модули > Установка ресшерений
      2. Устанавливаем скачанный архив под вашу версию
      3. Заходим в Модули > Учет в заказе
      4. Устанавливаем и включаем Комплекты и втыкаем выданный мной ключ
       
      Модификации находятся
      для 2.0, 2.1, 2.2
      catalog/controller/module/sets.php
      catalog/view/javascript/sets/script.js
      catalog/view/javascript/sets/style.css
       
      для 2.3, 3
      catalog/controller/extension/module/sets.php
      catalog/view/javascript/sets/script.js
      catalog/view/javascript/sets/style.css
      Благодарность
      @un3xists @AWARO
       
      обзор
       
       
      Добавил kJlukOo Добавлено 23.02.2018 Категория Серии, Комплекты Системные требования bootstrap Сайт разработчика cleanphp.ru Старая цена 2500 Метод активации По запросу в ЛС Ioncube Loader Нет OpenCart 3.0
      2.3
      2.2
      2.1 ocStore 3.0
      2.3
      2.2
      2.1 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1  
    • От kJlukOo
      999.00 руб
      Скачать/Купить дополнение


      Комплекты (вместе дешевле) для opencart 2х

       
      Перед покупкой ознакомьтесь с демо сайтом
      demo: http://option-mcl-21.taoi.ru/index.php?route=product/product&product_id=42
      admin: http://option-mcl-21.taoi.ru/admin/index.php?route=catalog/product/edit&token=qwe&product_id=42
      demo:demo
      вкладка комплекты
       
      Описание
      Получение ключа. Писать в здесь в личку. Не забывайте указывать домен сайта
       
      Модуль включает
      Виджет комплектов Комплект на странице товара Массовое управление комплектами   
      Данный модуль позволяет создавать наборы и устанавливать необходимую цену на них.
      Модуль позвоялет выбрать набор опций товара в комплекте
       
      Виджет
      в карточке товара комплекты сами выводятся. в другие места вывести их можно через виджеты. Добавляете товары в виджет комплекты которых будут выведены и затем через дизайн - макеты в нужное место можно засунуть подмодуль нужного виджета.
       
      Массовое управление комплектами
      Модуль имеет доп расширение "Массовое управление комплектами" - которое позволяет массово управлять комплектами товаров
       
      Адрес страницы на которой отображаются все комплекты - domain/index.php?route=module/all_sets / domain/index.php?route=extension/module/all_sets
       
      некоторые файлы модуля обфусцированы. в этих файлах находится проверка лицензии.
      если хостинг ругается на файл из моего модуля, объясните хостеру, что всё ок и там не никаких вирусов
       
      Установка
      1. Заходим в админку. Затем Модули > Установка ресшерений
      2. Устанавливаем скачанный архив под вашу версию
      3. Заходим в Модули > Учет в заказе
      4. Устанавливаем и включаем Комплекты и втыкаем выданный мной ключ
       
      Использование
      в редактировании товара появилась вкладка комплекты. в ней можно управлять комплектами, которые подвязаны к данному товару в модулях есть виджет комплектов, чтобы вывести комплекты выбранных товаров через схемы в любое место сайта так же в модулях есть массовое управление комплектами для генерации комплектов для категорий если в комплекте есть товар, кол-во которого равно 0 или кол-во меньше чем кол-во указанное в комплекте или товар отключен то этот комплект отображаться не будет  
       
      Есть более продвинутый модуль разработанный мной
       
      Модификации находятся
      для 2.0, 2.1, 2.2
      catalog/controller/module/sets.php
      catalog/view/javascript/sets/script.js
      catalog/view/javascript/sets/style.css
       
      для 2.3, 3
      catalog/controller/extension/module/sets.php
      catalog/view/javascript/sets/script.js
      catalog/view/javascript/sets/style.css
       

      Добавил kJlukOo Добавлено 19.03.2017 Категория Серии, Комплекты Системные требования bootstrap Сайт разработчика http://cleanphp.ru Старая цена 1200 Метод активации По запросу в ЛС Ioncube Loader Нет OpenCart 3.0
      2.3
      2.2
      2.1 ocStore 2.3
      2.2
      2.1 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1  
    • От deeman
      450.00 руб
      Скачать/Купить дополнение


      Filterit - Управление доставкой и оплатой
      Модуль для версий опенкарта 1.5.1.x - 3.0.x и сборок на основе него.
      Для работы модуля необходим PHP >= 5.3 и IonCube Loader >= 5.0
      Для опенарта 1.5.x требуется VQMOD!
       
      Лицензия у модуля строго на ОДИН домен, но при этом может быть выдан ключ на тестовый домен (временный домен хостинга, локальный домен, поддомен веб студии, тестовый поддомен основого домена и т.п.)

      Модуль никак не привязан к модулю Simple и может работать в других системах заказа!

      Возможности модуля:
       
      Создание простых вариантов доставки или оплаты Переопределение свойств вариантов доставки и оплаты у установленных модулей доставки и оплаты 50 условий отображения вариантов доставки или оплаты (как установленных, так и созданных) и возможность их комбинирования в произвольной форме с использованием логических выражений (И, ИЛИ, НЕ) Расчет стоимости доставки по весу и по сумме заказа Установка изображений к существующим и созданным вариантам доставки и оплаты. Создание наценки в процентах для установленных или созданных вариантов оплаты Умные заглушки
      Все возможности модуля наглядно представлены в демо модуля

      http://demo1.simpleopencart.com/admin/index.php?route=module/filterit

      Логин/пароль: demo/demo
       
      Также с возможностями модуля можно ознакомиться по его инструкции (во вложении в конце описания)

      Данный модуль позволяет решить многие вопросы с модулями доставки и оплаты без участия программиста, стоимость часа работы которого обычно больше стоимости данного модуля, а сами доработки в коде модулей создают ряд проблем:
       
      невозможность легкого обновления модулей доставки и оплаты из-за правок в их коде (либо все правки должны быть сделаны через модификаторы, которые впрочем тоже могут "отвалиться" из-за изменения в коде модулей при обновлении) необходимость изменений во вновь устанавливаемых модулях доставки и оплаты необходимость отладки изменений и наличия их автора на связи в случае каких-то проблем отдельная стоимость работ при необходимости изменения логики, особенно если работу будет делать не автор доработок
      Например данным модулем могут быть решены подобные задачи:
       
      Показывать курьерскую доставку, если общая стоимость больше 3000 или товар из категории Часы Показывать определенные варианты доставки только для определенных товаров, категорий или производителей Отображать доставку курьером если в корзине нет товаров из категории Велосипеды Скрывать наложенный платеж, если в корзине есть товар из категории Телефоны Скрывать доставку для города Ногинск, если в корзине есть товар из категории Ноутбуки и общая сумма товара больше 100000
      И это лишь некоторые задачи, которые можно решить модулем, потому что в нем можно комбинировать как угодно 42 условия для отображения и применять их как с созданным, так и к установленным модулям доставки и оплаты, а также менять другие их настройки.
       
       
      Добавил deeman Добавлено 25.04.2013 Категория Модули Системные требования Для работы модуля необходим PHP >= 5.3 и IonCube Loader >= 5.0 Сайт разработчика simpleopencart.com Старая цена 650 Метод активации По запросу на почту 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.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.х  
    • От deeman
      Модуль для версий опенкарта 1.5.1.x - 3.0.x и сборок на основе него.
      Для работы модуля необходим PHP >= 5.3 и IonCube Loader >= 5.0
      Для опенарта 1.5.x требуется VQMOD!
       
      Лицензия у модуля строго на ОДИН домен, но при этом может быть выдан ключ на тестовый домен (временный домен хостинга, локальный домен, поддомен веб студии, тестовый поддомен основого домена и т.п.)

      Модуль никак не привязан к модулю Simple и может работать в других системах заказа!

      Возможности модуля:
       
      Создание простых вариантов доставки или оплаты Переопределение свойств вариантов доставки и оплаты у установленных модулей доставки и оплаты 50 условий отображения вариантов доставки или оплаты (как установленных, так и созданных) и возможность их комбинирования в произвольной форме с использованием логических выражений (И, ИЛИ, НЕ) Расчет стоимости доставки по весу и по сумме заказа Установка изображений к существующим и созданным вариантам доставки и оплаты. Создание наценки в процентах для установленных или созданных вариантов оплаты Умные заглушки
      Все возможности модуля наглядно представлены в демо модуля

      http://demo1.simpleopencart.com/admin/index.php?route=module/filterit

      Логин/пароль: demo/demo
       
      Также с возможностями модуля можно ознакомиться по его инструкции (во вложении в конце описания)

      Данный модуль позволяет решить многие вопросы с модулями доставки и оплаты без участия программиста, стоимость часа работы которого обычно больше стоимости данного модуля, а сами доработки в коде модулей создают ряд проблем:
       
      невозможность легкого обновления модулей доставки и оплаты из-за правок в их коде (либо все правки должны быть сделаны через модификаторы, которые впрочем тоже могут "отвалиться" из-за изменения в коде модулей при обновлении) необходимость изменений во вновь устанавливаемых модулях доставки и оплаты необходимость отладки изменений и наличия их автора на связи в случае каких-то проблем отдельная стоимость работ при необходимости изменения логики, особенно если работу будет делать не автор доработок
      Например данным модулем могут быть решены подобные задачи:
       
      Показывать курьерскую доставку, если общая стоимость больше 3000 или товар из категории Часы Показывать определенные варианты доставки только для определенных товаров, категорий или производителей Отображать доставку курьером если в корзине нет товаров из категории Велосипеды Скрывать наложенный платеж, если в корзине есть товар из категории Телефоны Скрывать доставку для города Ногинск, если в корзине есть товар из категории Ноутбуки и общая сумма товара больше 100000
      И это лишь некоторые задачи, которые можно решить модулем, потому что в нем можно комбинировать как угодно 42 условия для отображения и применять их как с созданным, так и к установленным модулям доставки и оплаты, а также менять другие их настройки.
       
       
    • От ArtemPitov
      550.00 руб
      Скачать/Купить дополнение


      Скидка, наценка для производителей в корзине
      Модуль позволяет добавлять наценку или скидку для групп покупателей.
       
      В зависимость от специфики магазина вы сможете создавать условия формирования конечной стоимость корзины для каждого производителя и группы клиентов.
      Модуль будет полезный для оптовых продаж, наценок на мелкие закупки, или любого другого вашего сценария.
       
      Можно использовать такие формулы наценок: 
      [-][1-100][%] - скидка в % на общею стоимость конкретного производителя в корзине [+ или без знака][1-100][%]  - добавления стоимость в процентах учитывая сумму товаров конкретного производителя  [-][любая  сумма] - скидка в валюте магазина, актуально для одно валютных магазинов [+ или без знака][любая сумма] - наценка в валюте магазина, актуально для одно валютных магазинов   
      Пример 
      -50% - скидка в 50% +50% - наценка в 50% -100 - скидка в 100 рублей (если выбран рубыль или другой валюте) +100 - наценка в 100 рублей (если выбран рубыль или другой валюте) Лицензия 
      1 копия  - одна лицензия, без под доменов
       
      Поддержка 
      Исправления ошибок не вызванных модулем - это доработка, оплачивается отдельно
      Изменения логики работы модуля - это доработка, оплачивается отдельно
       
      Поддержка версий 
      Модуль работает под любой сборкой OpenCart версии 2.3, если нужна будет адаптация под другую версию - оговаривается индивидуально.
       

      Добавил ArtemPitov Добавлено 04.06.2018 Категория Учет в заказе Системные требования PHP 5.4 и выше Сайт разработчика https://pitov.pro Старая цена Метод активации По запросу в ЛС Ioncube Loader Нет OpenCart 2.3 ocStore 2.3 OpenCart.Pro, ocShop Opencart.pro 2.3  
  • Последние посетители   0 пользователей онлайн

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

×