Im создает каталог prestashop, но он должен быть доступен только для зарегистрированных пользователей. Это возможно. Было бы неплохо, если для этого используется встроенный вход в систему preashop. Любая помощь приветствуется.Только каталог prestashop
ответ
Это будет легко.
Используйте этот код:
if(!self::$cookie->isLogged(true) AND in_array($this->step, array(1, 2, 3)))
Tools::redirect('authentication.php');
В предобработки вашего IndexController
Вот мое решение, оно работает как шарм, и это очень легко исправить!
В классах \ configuration.php (вокруг линии 114) она выглядит следующим образом
static public function get($key, $id_lang = NULL)
{
if ($id_lang AND isset(self::$_CONF_LANG[(int)$id_lang][$key]))
return self::$_CONF_LANG[(int)$id_lang][$key];
elseif (is_array(self::$_CONF) AND key_exists($key, self::$_CONF))
return self::$_CONF[$key];
return false;
}
изменить его к этому:
static public function get($key, $id_lang = NULL)
{
//Grab access to the $cookie which is already loaded in the FrontController as global $cookie;
global $cookie;
if ($id_lang AND isset(self::$_CONF_LANG[(int)$id_lang][$key]))
return self::$_CONF_LANG[(int)$id_lang][$key];
elseif (is_array(self::$_CONF) AND key_exists($key, self::$_CONF))
//If the system is trying to find out if Catalog Mode is ON, then return the configuration setting,
//but override it with the user logon status
if($key == 'PS_CATALOG_MODE')
{
return !$cookie->logged || self::$_CONF[$key];
}
else
{
return self::$_CONF[$key];
}
return false;
}
По сути, я хотел, чтобы заставить систему, чтобы отобразить « Режим каталога ", когда пользователь не вошел в систему и отключил его, когда он вошел в систему.
Я могу гарантировать, что это работает для v1.4.3.0 и кода для текущей версии 1.4.8.2 (навремя этого сообщения) не изменилось, поэтому он должен там работать.
большое спасибо, более раннее решение работает только для индекса/дома страница, помещая ее в конфигурацию, имеет больше смысла! – rashid
Я хочу взять людей на authentic.php, если они не вошли в систему, а не показывать режим каталога или что-то еще до входа в систему. – rashid
Отличный ответ! Спасибо за обмен. – JazZ
У меня есть предложение. Вы можете использовать функцию «Группы клиентов» в PrestaShop 1.5 и разрешать только зарегистрированным клиентам видеть цены. Для каждого Клиента, который сгруппирован в Visitor, они будут видеть ваш сайт в режиме каталога.
Prestashop 1,5 Решение:
Просто загрузите исходный файл:
classes\controller\FrontController.php
в:
override/classes/controller/FrontController.php
Затем переименуйте класс. Окончательный код должен выглядеть следующим образом:
class FrontController extends FrontControllerCore
{
public function init()
{
parent::init();
if (!$this->context->customer->isLogged() && $this->php_self != 'authentication' && $this->php_self != 'password')
{
Tools::redirect('index.php?controller=authentication?back=my-account');
}
}
}
Последний шаг вручную удалить следующий файл, так PrestaShop осведомлен о перекрываться класса (Он будет вновь сгенерированного автоматически):
cache/class_index.php
И voilà, функциональность достигнута без перезаписи файлов ядра.
это может работать дорого, хотя :([link] (http://www.presto-changeo.com/ru/prestashop-modules/30-private-shop.html) – rashid