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

Предоставление доступа к определенно странице (information) определенной группе покупателей


Recommended Posts

Приветствую всех форумчан.

 

Я создал сраничку (['information_id'] == '14'). Мне нужно предоставить к ней доступ только одной группе покупателей (CustomerGroupId() == '2').

OpenCart 2.0.3.1 + Journal-2

 

В файл template/information/information.tpl я добавил проверку "зарегистрирован ли клиент":

<div id="content" class="<?php echo $class; ?>">		
		<?php if (!$logged) { ?>
		<?php echo $text_welcome; ?>
		<?php } else { ?>		
      <h1 class="heading-title"><?php echo $heading_title; ?></h1>
      <?php echo $content_top; ?>
      <?php echo $description; ?>
	    <?php } ?>
		

Проверка работает (если клиент не залогинился - ему выводится сообщение $text_welcome (чтобы вошел или зарегистрировался)). Но распространяется данная проверка на все странички information.

Когда я меняю 

<?php if (!$logged) { ?>

на 

<?php if (((!$logged) && ($information_info['information_id'] == '14') && ($this->customer->getCustomerGroupId() == '2'))) { ?>

доступ к страницам предоставляется всем пользователям (даже не зарегистрированным).

 

Уважаемые форумчане подскажите как реализовать предоставление доступ к страничке (['information_id'] == '14') группе покупателей (CustomerGroupId() == '2')?

 

Заранее благодарен!

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


1.5

      public function getCustomerGroupId() {
        return $this->customer_group_id;    
      }

2.x

    public function getGroupId() {
        return $this->customer_group_id;
    }

$this->customer->getGroupId(()
Надіслати
Поділитися на інших сайтах

1.5

      public function getCustomerGroupId() {

        return $this->customer_group_id;    

      }

2.x

    public function getGroupId() {

        return $this->customer_group_id;

    }

 

$this->customer->getGroupId(()

У меня 2.x.

Можете уточнить - как этот код применить к моей проверке?

<?php if (((!$logged) && ($information_info['information_id'] == '14') && ($this->customer_GroupId() == '2'))) { ?>

Я правильно понял?

Спасибо!

Змінено користувачем Borodin
Надіслати
Поділитися на інших сайтах


После внесенных изменений, проверку на залогиненность, стала проверять только нужная мне страница ['information_id'] == '14'. Но  отображаться для всех групп пользователей.

И выводится не вся проверяемая страница (от контенда до футера).

Змінено користувачем Borodin
Надіслати
Поділитися на інших сайтах


<?php if ($information_info['information_id'] == '14' && $this->customer_GroupId() == '2') { ?>

После внесения правок - изменений не произошло:

  1. все information страницы отображает кроме info['information_id'] == '14';
  2. info['information_id'] == '14' отображается не вся страница (включительно от контента до футера - не отображается);
  3. info['information_id'] == '14' отображается для всех групп покупателей (в том числе неавторизованным).
Надіслати
Поділитися на інших сайтах


 

После внесения правок - изменений не произошло:

  1. все information страницы отображает кроме info['information_id'] == '14';
  2. info['information_id'] == '14' отображается не вся страница (включительно от контента до футера - не отображается);
  3. info['information_id'] == '14' отображается для всех групп покупателей (в том числе неавторизованным).

 

 

Да понятное дело ! Не будет оно у вас отображаться везде и в разных позициях.

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

И все молчат, что это такой кривой костыль....  :ugeek: :? 

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

Да понятное дело ! Не будет оно у вас отображаться везде и в разных позициях.

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

И все молчат, что это такой кривой костыль....  :ugeek: :?

Готовые модули есть?

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


 

Чтобы везде отображалось это на сделать модулем

Что модулем?

Зачем модулем?

 

Костыль? ну... все что не через ваш модуль, то костыль

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


И что? ошибок нет

 

$this->customer_GroupId

Что это?

На странице info['information_id'] == '14' ошибок нет. А в админке в  журнале ошибок: PHP Notice:  Undefined variable: redirect in .../catalog/view/theme/journal2/template/common/language.tpl on line 42

<input type="hidden" name="redirect" value="<?php echo $redirect; ?>" />
Змінено користувачем Borodin
Надіслати
Поділитися на інших сайтах


Что модулем?

Зачем модулем?

 

Костыль? ну... все что не через ваш модуль, то костыль

Да при чем здесь мой модуль. Всё он вам покоя не дает :-D

Просто надо СДЕЛАТЬ модуль, а не костыль

И да, мой модуль тоже умеет это делать

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

 

На странице info['information_id'] == '14' ошибок нет. А в админке в  журнале ошибок: PHP Notice:  Undefined variable: redirect in .../catalog/view/theme/journal2/template/common/language.tpl on line 42

<input type="hidden" name="redirect" value="<?php echo $redirect; ?>" />

Хочу уточнить, что страница info['information_id'] == '14' отображается/загружается как раз до 

<div id="content" class="<?php echo $class; ?>">		

Эта строка уже не отображается.

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


Да при чем здесь мой модуль. Всё он вам покоя не дает :-D

Просто надо СДЕЛАТЬ модуль, а не костыль

И да, мой модуль тоже умеет это делать

И.. расскажите как модуль может повлиять на отображение контента.

Если вызов модуля является дочерним процессом .

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

Хочу уточнить, что страница info['information_id'] == '14' отображается/загружается как раз до 

<div id="content" class="<?php echo $class; ?>">		

Эта строка уже не отображается.

 

Проблема с $this->customer_GroupId() == '2'

После замены в

<?php if ($information_info['information_id'] == '14' && $this->customer_GroupId() == '2') { ?>

на 

<?php if ($information_info['information_id'] == '14' && !$logged) { ?>
  1. страница стала отображаться полностью;
  2. information страницы отображаются для всех (вошедших/не вошедших) покупателей;
  3. info['information_id'] == '14' отображается только для вошедших покупателей (любой группы);

Осталось еще сделать проверку для доступа только для группы покупателей $this->customer_GroupId() == '2'.

Змінено користувачем Borodin
Надіслати
Поділитися на інших сайтах


откуда?

 

Из БД, таблица : oc_customer_group_description, 

Ну и в админке в группе клиентов, при редактировании данной группы, ссылка так заканчивается customer_group_id=2. (Их у меня всего 2).

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


Я не понимаю

 

Потому что..

Я показал вызов метода

Вы мне подсовывает какую-то херню, неизвестно откуда взятую..

 

Хрустальный шар мой уже покрылся налетом пыли  - не вижу!

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

Я не понимаю

 

Потому что..

Я показал вызов метода

Вы мне подсовывает какую-то херню, неизвестно откуда взятую..

 

Хрустальный шар мой уже покрылся налетом пыли  - не вижу!

 

Сейчас не понимаю я. :)

- Я неправильно вызываю метод?

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


в каком месте вы вызываете метод?

В контроллере я дописал (но так выдает ошибку 500)

public function getGroupId() {
        return $this->customer_group_id;
    }
	$this->customer->getGroupId();
Змінено користувачем Borodin
Надіслати
Поділитися на інших сайтах


 

В контроллере я дописал (но так выдает ошибку 500)

public function getGroupId() {
        return $this->customer_group_id;
    }
	$this->customer->getGroupId();

Да, простите, все понял!

В контроллере добавил

public function getGroupId() {
        return $this->customer_group_id;
    }

А в tpl сроку изменил на 

<?php if ($information_info['information_id'] == '14' && $this->customer->getGroupId() !== '2') { ?>
Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

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

Important Information

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