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

Скрыть блог если не зарегистрирован

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

Люди добрые, подскажите, пожалуйста - нужно скрыть блог (Blog Manager) для незарегистрированных покупателей. Просто обернуть ссылку <?php if ($this->customer->isLogged()) { ?> не подходит т.к. нужен, после регистрации или входа, редирект на страницу блога.

Прописал в контроллере блога:

if (!$this->customer->isLogged()) {

            $this->session->data['redirect'] = $this->url->link('blog', '', 'SSL');   
            $this->redirect($this->url->link('account/login', '', 'SSL'));
    }
,но ссылка приобретает вид site.ru/index.php?route=blog, а нужно site.ru/blog 

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


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

Народ, 28 просмотров и неужели никто не знает как index.php?route= убрать? 

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


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

Народ, 28 просмотров и неужели никто не знает как index.php?route= убрать? 

BM не жалуют :)

 

Он по сути костыльно работает с ЧПУ формирователями, поэтому им не пользуются здесь, есть в "100 раз" лучше альтернативы, без костылей

А доступ по правам есть в других модулях этого класса ;)

 

3580357839.png

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


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

Да я его завел с трудом - все ссылки нормальные сделал. Блог доступен по site.ru/blog

НО когда редирект делаю после регистрации, то ссылка становится site.ru/index.php?route=blog и, соответственно, страница не найдена :( 

Подскажите, как в этой строчке $this->session->data['redirect'] = $this->url->link('blog', '', 'SSL'); задать ссылку site.ru/blog

Может ка кто можно абсолютную ссылку задать?

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


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

 

Люди добрые, подскажите, пожалуйста - нужно скрыть блог (Blog Manager) для незарегистрированных покупателей. Просто обернуть ссылку <?php if ($this->customer->isLogged()) { ?> не подходит т.к. нужен, после регистрации или входа, редирект на страницу блога.

Прописал в контроллере блога:

if (!$this->customer->isLogged()) {

            $this->session->data['redirect'] = $this->url->link('blog', '', 'SSL');   
            $this->redirect($this->url->link('account/login', '', 'SSL'));
    }
,но ссылка приобретает вид site.ru/index.php?route=blog, а нужно site.ru/blog 

 

 

Вбей URL жестко

$this->session->data['redirect'] = 'site.ru/blog';   

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


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

 

Вбей URL жестко

$this->session->data['redirect'] = 'site.ru/blog';   

 

Жесткий костыль, но потянет как едино разовое решение, главное потом не забыть если url измените  :)

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


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

Попробовал, но костыль не подошел :) Редирект происходит в my-account

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


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

Само собой! Вы же костыль в сессию запихиваете. А собственно redirect - в account/login

 

Если же незарегистрированный зарегистрируется, условие будет false, т.е. строки с redirect НЕ будут выполнены 

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


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

  $this->redirect('site.ru/blog');

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


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

  $this->redirect('site.ru/blog');

 

Я пытаюсь сделать как в сравнении товаров - нажал на сравнение - перешел на страницу регистрации/входа, после входа происходит перенаправление на страницу сравнения.

 

Может я этот кусок не туда засунул - в контроллер категории блога:

 

class ControllerModuleBlogcategory extends Controller {
   protected function index($setting) {
   if (!$this->customer->isLogged()) {
            $this->session->data['redirect'] = 'site.ru/blog';   
  $this->redirect($this->url->link('account/login', '', 'SSL'));
    }

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


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

Само собой! Вы же костыль в сессию запихиваете. А собственно redirect - в account/login

 

Если же незарегистрированный зарегистрируется, условие будет false, т.е. строки с redirect НЕ будут выполнены 

 

Подскажите, а как это можно тогда реализовать грамотно? 

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


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

Подскажите, а как это можно тогда реализовать грамотно? 

Грамотно? Не костылями? Забить на BM.

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


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

Да как то жалко, столько времени на него потратил - урлы настроил, дизайн натянул... Посмотрю, если никто еще не подскажет - придется снести. 

Всем спасибо за подсказки, хоть и не помогли...

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


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

Могу только костыль предложить:

account/account.php - добавляем что выделено болдом

 

class ControllerAccountAccount extends Controller {
    public function index() {
        if (!$this->customer->isLogged()) {
              $this->session->data['redirect'] = $this->url->link('account/account', '', 'SSL');
      
              $this->redirect($this->url->link('account/login', '', 'SSL'));
        } else {

 

                 if (isset( $this->session->data['redirect']) &&  $this->session->data['redirect']=='site.ru/blog') {

                       $this->redirect($this->session->data['redirect']);

                }

}

...

...

 

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


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

К сожалению, и этот вариант, почему то, не подходит :(

При таком варианте, если пользователь разлогенный, то попадает на блог, а не на регистрацию

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


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

Может потому что у меня seo pro модифицировано под этот блог...

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


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

Всем спасибо!


Проблему, вроде, решил - оказывается blog/category был замаскирован как blog


Не знаю насколько это правильно, но прописал в контроллере блога


if (!$this->customer->isLogged()) {


            $this->session->data['redirect'] = $this->url->link('blog/category', '', 'SSL');   

            $this->redirect($this->url->link('account/login', '', 'SSL'));

    }

При уже зарегистрированным пользователе все работает! А вот начал создавать нового (чтобы проверить предположение "igon"), и (беда не приходит одна) обнаружил, что симпла не реагирует на кнопку! Это значит пора идти спать :-D   

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


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

Simple разобрался, спасибо автору. Но проблема с блогом осталась. Думаю прейти на Блог там есть функция которая мне нужна. 

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


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

Simple разобрался, спасибо автору. Но проблема с блогом осталась. Думаю прейти на Блог там есть функция которая мне нужна. 

Совет не на Блог а на https://opencartforum.com/files/file/1435-seo-cms-pro-блог-новости-отзывы-галерея-формы/

 

Там еще больше функций работы с группами пользователей

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


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

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

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

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

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

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

Войти

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

Войти

  • Последние посетители   0 пользователей онлайн

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

×

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

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