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

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


themodul

Recommended Posts

Люди добрые, подскажите, пожалуйста - нужно скрыть блог (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= убрать? 

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 измените  :)

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

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

 

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

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


  $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']);

                }

}

...

...

 

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

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

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

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

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


Проблему, вроде, решил - оказывается 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 користувачів

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

×
×
  • Створити...

Important Information

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