Jump to content
Sign in to follow this  
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 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

BM не жалуют :)

 

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

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

 

3580357839.png

Share this post


Link to post
Share on other sites

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

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

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

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

Share this post


Link to post
Share on other sites

 

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

Share this post


Link to post
Share on other sites

 

Вбей URL жестко

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

 

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

 

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

 

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

 

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

                }

}

...

...

 

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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


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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

 

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

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.