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

[Решено] Как вывести имя группы, в которой зарегистрирован пользователь?

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

Добрый день!

 

при регистрации пользователь выбирает группу, которая определяет цену.

 

на страничке регистрации имя группы отображается с помощью кода

<?php echo $customer_group['name']; ?>

вот теперь хочется на других страницах сайта тоже вывести имя группы, пишу этот код в нужную старницу в шаблоне *.tpl но вылазит ошибка

Undefined variable: customer_group in

 

вроде надо из контроллера взять эту информацию?

 

попробовал этот код взять

		$this->data['customer_groups'] = array();
		
		if (is_array($this->config->get('config_customer_group_display'))) {
			$customer_groups = $this->model_account_customer_group->getCustomerGroups();
			
			foreach ($customer_groups as $customer_group) {
				if (in_array($customer_group['customer_group_id'], $this->config->get('config_customer_group_display'))) {
					$this->data['customer_groups'][] = $customer_group;
				}
			}
		}

но в этом случае вообще страница перестала что-либо показывать.

 

Подскажите, пожалуйста, как добыть эту переменную  $customer_group['name'] из базы?

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


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

= = system/library/customer.php

ищем

private $customer_group_id;

дальше вставляем

private $customer_group_name;

дальше за

if ($customer_query->num_rows) {

вставляем

$customer_name_query = $this->db->query("SELECT name FROM " . DB_PREFIX . "customer_group_description WHERE customer_group_id = '" . (int)$customer_query->row['customer_group_id'] . "'");
            $this->customer_group_name = $customer_name_query->row['name'];

за этим

$this->customer_group_id = '';

вот это

$this->customer_group_name = '';

и после

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

вот это

public function getCustomerGroupName() {
      return $this->customer_group_name;   
     }

теперь в = = catalog/controller/common/header.php

ищем

$this->data['text_logged'] = sprintf($this->language->get('text_logged'), $this->url->link('account/account', '', 'SSL'), $this->customer->getFirstName(), $this->url->link('account/logout', '', 'SSL'));

и заменяем на

$cust_name = $this->customer->getFirstName();
      $cust_group_id = $this->customer->getCustomerGroupName();
      $concat_info = $cust_name. "," . "Ваша группа: ".$cust_group_id.",";
      $this->data['text_logged'] = sprintf($this->language->get('text_logged'), $this->url->link('account/account', '', 'SSL'), $concat_info, $this->url->link('account/logout', '', 'SSL'));

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


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

 

 

теперь в = = catalog/controller/common/header.php

ищем

$this->data['text_logged'] = sprintf($this->language->get('text_logged'), $this->url->link('account/account', '', 'SSL'), $this->customer->getFirstName(), $this->url->link('account/logout', '', 'SSL'));

и заменяем на

$cust_name = $this->customer->getFirstName();
      $cust_group_id = $this->customer->getCustomerGroupName();
      $concat_info = $cust_name. "," . "Ваша группа: ".$cust_group_id.",";
      $this->data['text_logged'] = sprintf($this->language->get('text_logged'), $this->url->link('account/account', '', 'SSL'), $concat_info, $this->url->link('account/logout', '', 'SSL'));

 

 

 

 

вот после этого ничего не происходит.

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

 

попробовал 

<?php echo $cust_group_id ?>

и

<?php echo $cust_name ?>

так же ругается на неизвестные переменные

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


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

вот после этого ничего не происходит.

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

 

 

вру-вру-вру

 

оказывается в контроллере на комментирии вида <!-- --> ругается

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


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

какая версия движка?

 

1.5.5.1 OpenCart

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


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

да, там желательно // использовать

 

ага, с этим уже разобрался. спасибо!

 

только вот как теперь эти переменные использовать

всё равно ругается на такой код

<?php echo $concat_info ?> 

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


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

В хедере должно выводить по приведенному мной примеру. Если где-то в теле страницы хотите выводить, добавляйте в соответствующий контроллер.

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


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

В хедере должно выводить по приведенному мной примеру. Если где-то в теле страницы хотите выводить, добавляйте в соответствующий контроллер.

 

вот этот момент я что-то совсем не понял.

мы ведь в контроллере правили, а то, что выводится я редактирую в шаблоне ведь... или через контроллер тоже можно выводить?

как тогда указывать в каком именно месте в хедере будет эта строчка?

 

у меня шаблон palioxis, может из-за этого, но никаких изменений в хедере не произошло. :(

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


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

нашел в хедере строчки нужные. оказывается я из закомментировал до этого

 

теперь у меня показывает так:

Вы вошли как Вася, Ваша группа: ( Выйти )

 

 

т.е. имя группы не получилось показать

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


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

Всё сделал! Спасибо Большое!

 

Пропустил вот этот код:

 

 

= = system/library/customer.php


дальше за

if ($customer_query->num_rows) {

вставляем

$customer_name_query = $this->db->query("SELECT name FROM " . DB_PREFIX . "customer_group_description WHERE customer_group_id = '" . (int)$customer_query->row['customer_group_id'] . "'");
            $this->customer_group_name = $customer_name_query->row['name'];

 

 

 

:eek:

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


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

Теперь, чтобы вывести название группы в любом месте хедера.

я правлю в шаблоне /common/header.tpl

 

добавляю

 

<?php
    $cust_group_id = $this->customer->getCustomerGroupName();
        echo $cust_group_id;
?>
 

 

тогда, если пользователь залогинен, то пишется название его группы, а вот как сделать, если пользователь не залогинился еще. надо написать название группы по умолчанию.

 

это ведь надо в коде из предыдущего сообщения как-то прописать, else?

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


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

всё решено! :eek:

if ($cust_group_id == null )
		{ echo "Группа: <font color=red>По умолчанию</font>"; }
	else
		{echo "Группа: <font color=red>". $cust_group_id ."</font>"; }

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


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

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

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

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

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

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

Войти

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

Войти

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

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

×

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

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