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

1 Screenshot

About This File

В OpenCart есть досадное недоразумение. Мультимагазин поддерживается только на фронтенде. И разработчики пытаются с помощью костылей заставить свои модули работать с мультимагазинами.

Что делает этот модуль?

Добавляет в админ.часть переменную с указанием магазина, и после его установки ЛЮБОЙ модуль начинает поддерживать мультимагазины.

Зачем мне это?

За тем, чтобы разные модули вели себя по-разному на разных витринах. Например, у Вас есть мультимагазин с 2 доменами, на один из них допускаются только лица 18+, Вы можете поставить модуль, который будет показывать всплывающее окно с подтверждением возраста, а с помощью этого фикса он будет появляться только на 1м домене.

Установка и использование

После установки будут доступны админки с разных доменов, т.е. если раньше у Вас был site.ru/admin/, и при попытке зайти на site2.ru/admin/ Вас перекидывало на site.ru/admin/, то теперь у каждого домена будет "своя" админка. И все изменения сделанные там, будут касаться настроек только этого домена.

Как бонус, можно будет улучшить безопасность, для каждого домена (магазина) назначить своих менеджеров, которые будут иметь доступ только к данному магазину и не тронут всю систему.

РЕШЕНИЕ ПРОБЛЕМ

Бывает, что файлы /admin/index.php и /admin.config.php создаются, но не работают (запускается оригинальная версия). В таком случае в эти файлы надо внести правки самостоятельно. Есть 2 варианта:

1 вариант: Заливаем файл multistore_admin_fix_core.ocmod.xml, обновляем кэш дополнений. Затем идем в /system/storage/modification/admin, копируем оттуда эти 2 файла и заменяем ими оригинальные в папке /admin

2 вариант: Открываем /admin/config.php и меняем

<?php

// HTTP

define('HTTP_SERVER', 'http://ваш.сайт/admin/');

define('HTTP_CATALOG', 'http://ваш.сайт/');

// HTTPS

define('HTTPS_SERVER', 'http://ваш.сайт/admin/');

define('HTTPS_CATALOG', 'http://ваш.сайт/');

на

<?php

$host = $_SERVER['HTTP_HOST'];

// HTTP

define('HTTP_SERVER', 'http://'.$host.'/admin/');

define('HTTP_CATALOG', 'http://ваш.сайт/');

// HTTPS

define('HTTPS_SERVER', 'http://'.$host.'/admin/');

define('HTTPS_CATALOG', 'http://ваш.сайт/');

А также редактируем /admin/index.php

// Settings

$query = $db->query("SELECT * FROM " . DB_PREFIX . "setting WHERE store_id = '0'");

меняем на

// Store

if (isset($_SERVER['HTTPS']) && (($_SERVER['HTTPS'] == 'on') || ($_SERVER['HTTPS'] == '1'))) {

$store_query = $db->query("SELECT * FROM " . DB_PREFIX . "store WHERE REPLACE(`ssl`, 'www.', '') = '" . $db->escape('https://' . str_replace('www.', '', $_SERVER['HTTP_HOST']) . rtrim(dirname($_SERVER['PHP_SELF']), '/.\\') . '/') . "'");

} else {

$store_query = $db->query("SELECT * FROM " . DB_PREFIX . "store WHERE REPLACE(`url`, 'www.', '') = '" . $db->escape('http://' . str_replace('www.', '', $_SERVER['HTTP_HOST']) . rtrim(dirname($_SERVER['PHP_SELF']), '/.\\') . '/') . "'");

}

if ($store_query->num_rows) {

$config->set('config_store_id', $store_query->row['store_id']);

} else {

$config->set('config_store_id', 0);

}

// Settings

$query = $db->query("SELECT * FROM " . DB_PREFIX . "setting WHERE store_id = '0' OR store_id = '" . (int)$config->get('config_store_id') . "' ORDER BY store_id ASC");

Совместимость

Пока модуль проверен только на ocStore 2.1.0.2.1, пробуйте и сообщайте мне о совместимости и багах, буду дополнять.




User Feedback

  • 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.