Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Смена надписи "Личный кабинет" (в шапке магазина) на имя покупателя после авторизации


Recommended Posts

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

Нашёл следующее несложное решение по замене надписи "Личный кабинет" (в шапке магазина) на имя покупателя после авторизации 

За решение спасибо Faraon.

1. Открываем файл catalog/view/theme/default/template/common/header.tpl и находим строки, отвечающие за вывод самого пункта меню + выпадающего списка:

Код

<li class="dropdown"><a href="<?php echo $account; ?>" title="<?php echo $text_account; ?>" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-user"></i> <span class="hidden-xs hidden-sm hidden-md"><?php echo $text_account; ?></span> <span class="caret"></span></a>
<ul class="dropdown-menu dropdown-menu-right">
<?php if ($logged) { ?>
<li><a href="<?php echo $account; ?>"><?php echo $text_account; ?></a></li>
<li><a href="<?php echo $order; ?>"><?php echo $text_order; ?></a></li>
<li><a href="<?php echo $transaction; ?>"><?php echo $text_transaction; ?></a></li>
<li><a href="<?php echo $download; ?>"><?php echo $text_download; ?></a></li>
<li><a href="<?php echo $logout; ?>"><?php echo $text_logout; ?></a></li>
<?php } else { ?>
<li><a href="<?php echo $register; ?>"><?php echo $text_register; ?></a></li>
<li><a href="<?php echo $login; ?>"><?php echo $text_login; ?></a></li>
<?php } ?>
</ul>
</li>

и меняем на следующий код:

<li class="dropdown">
<?php if (!$logged) { ?>
<a href="<?php echo $account; ?>" title="<?php echo $text_account; ?>" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-user"></i> <span class="hidden-xs hidden-sm hidden-md"><?php echo $text_account; ?></span> <span class="caret"></span></a>
<ul class="dropdown-menu dropdown-menu-right">
<?php if ($logged) { ?>
<li><a href="<?php echo $account; ?>"><?php echo $text_account; ?></a></li>
<li><a href="<?php echo $order; ?>"><?php echo $text_order; ?></a></li>
<li><a href="<?php echo $transaction; ?>"><?php echo $text_transaction; ?></a></li>
<li><a href="<?php echo $download; ?>"><?php echo $text_download; ?></a></li>
<li><a href="<?php echo $logout; ?>"><?php echo $text_logout; ?></a></li>
<?php } else { ?>
<li><a href="<?php echo $register; ?>"><?php echo $text_register; ?></a></li>
<li><a href="<?php echo $login; ?>"><?php echo $text_login; ?></a></li>
<?php } ?>
</ul>
<?php } else { ?>
<i class="fa fa-user"></i> <?php echo $text_logged; ?>
<?php } ?>
</li>

Открываем файл catalog/language/russian/common/header.php и после строки:
$_['text_login'] = 'Авторизация';

$_['text_logged'] = 'Вы вошли как <a href="%s">%s</a> <b>(</b> <a href="%s">Выйти</a> <b>)</b>';

Если покупатель выйдет из личного кабинета, то в шапке магазина снова будет видна вкладка «Личный кабинет» с двумя подпунктами, которые будут предлагать либо зарегистрироваться, либо авторизоваться.

 

Но у меня вывод пункта Личный кабинет немного другой.

<div class="btn-group box-account">
				<button data-toggle="dropdown" type="button" class="dropdown-toggle btn btn-link">
				<i class="fa fa-user"></i>
				<span class="hidden-xs hidden-sm"><?php echo $text_account; ?></span> <span class="caret"></span>		
				</button>
			<ul class="dropdown-menu dropdown-menu-right">
				<?php if ($logged) { ?>
				<li><a rel="nofollow" href="<?php echo $account; ?>"><?php echo $text_account; ?></a></li>
				<li><a rel="nofollow" href="<?php echo $order; ?>"><?php echo $text_order; ?></a></li>
				<li><a rel="nofollow" href="<?php echo $transaction; ?>"><?php echo $text_transaction; ?></a></li>
				<li><a rel="nofollow" href="<?php echo $download; ?>"><?php echo $text_download; ?></a></li>
				<li><a rel="nofollow" href="<?php echo $logout; ?>"><?php echo $text_logout; ?></a></li>
				<?php } else { ?>
				<li><a rel="nofollow" href="<?php echo $register; ?>"><?php echo $text_register; ?></a></li>
				<li><a rel="nofollow" href="#login_modal_popup" data-toggle="modal" data-target="#login-form-popup"><?php echo $text_login; ?></a></li>
				<?php } ?>
			</ul>
		</div>

И решение работает не совсем адекватно
Буду благодарен за помощь в адаптации  применительно к моему шаблону.

 

до изменений.jpg

после изменений.jpg

Edited by Redje
Link to comment
Share on other sites


32 минуты назад, AndreyPopov сказал:

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


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

 

4 часа назад, Redje сказал:

Буду благодарен за помощь в адаптации  применительно к моему шаблону.


 

Edited by Redje
Link to comment
Share on other sites


On 7/2/2018 at 3:08 PM, Redje said:

Буду благодарен за помощь в адаптации  применительно к моему шаблону.

 

Доброго времени суток! Делал следующим образом:

Код в header.tpl

<li class="dropdown">
          <?php if (!$logged) { ?>
          <a href="<?php echo $account; ?>" title="<?php echo $text_account; ?>" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-user"></i> <span class="hidden-xs hidden-sm"><?php echo $text_account; ?></span> <span class="caret"></span></a>
          <?php } else { ?>
            <a href="<?php echo $account; ?>" title="<?php echo $text_account; ?>" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-user"></i> <span class="hidden-xs hidden-sm"></i><?php echo $firstname; ?> <?php echo $lastname; ?></span> <span class="caret"></span></a>
          <?php } ?>
          <ul class="dropdown-menu dropdown-menu-left">
            <?php if ($logged) { ?>
            <li><a href="<?php echo $account; ?>"><?php echo $text_account; ?></a></li>
            <li><a href="<?php echo $order; ?>"><?php echo $text_order; ?></a></li>
            <li><a href="<?php echo $logout; ?>"><?php echo $text_logout; ?></a></li>
            <?php } else { ?>
            <li><a href="<?php echo $register; ?>"><?php echo $text_register; ?></a></li>
            <li><a href="<?php echo $login; ?>"><?php echo $text_login; ?></a></li>
            <?php } ?>
          </ul>
        </li>

Добавить в контроллер header.php после

$data['text_account'] = $this->language->get('text_account');

Две переменные:

$data['firstname'] = $this->customer->getFirstName();
$data['lastname'] = $this->customer->getLastName();

Когда пользователь залогинился - вместо Личный кабинет, будет выводиться Имя + Фамилия с сохранением выпадающего списка!

Link to comment
Share on other sites


  • 6 months later...
  • 9 months later...
В 02.07.2018 в 15:08, Redje сказал:

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

Нашёл следующее несложное решение по замене надписи "Личный кабинет" (в шапке магазина) на имя покупателя после авторизации 

За решение спасибо Faraon.

1. Открываем файл catalog/view/theme/default/template/common/header.tpl и находим строки, отвечающие за вывод самого пункта меню + выпадающего списка:

Код

<li class="dropdown"><a href="<?php echo $account; ?>" title="<?php echo $text_account; ?>" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-user"></i> <span class="hidden-xs hidden-sm hidden-md"><?php echo $text_account; ?></span> <span class="caret"></span></a>
<ul class="dropdown-menu dropdown-menu-right">
<?php if ($logged) { ?>
<li><a href="<?php echo $account; ?>"><?php echo $text_account; ?></a></li>
<li><a href="<?php echo $order; ?>"><?php echo $text_order; ?></a></li>
<li><a href="<?php echo $transaction; ?>"><?php echo $text_transaction; ?></a></li>
<li><a href="<?php echo $download; ?>"><?php echo $text_download; ?></a></li>
<li><a href="<?php echo $logout; ?>"><?php echo $text_logout; ?></a></li>
<?php } else { ?>
<li><a href="<?php echo $register; ?>"><?php echo $text_register; ?></a></li>
<li><a href="<?php echo $login; ?>"><?php echo $text_login; ?></a></li>
<?php } ?>
</ul>
</li>

и меняем на следующий код:

<li class="dropdown">
<?php if (!$logged) { ?>
<a href="<?php echo $account; ?>" title="<?php echo $text_account; ?>" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-user"></i> <span class="hidden-xs hidden-sm hidden-md"><?php echo $text_account; ?></span> <span class="caret"></span></a>
<ul class="dropdown-menu dropdown-menu-right">
<?php if ($logged) { ?>
<li><a href="<?php echo $account; ?>"><?php echo $text_account; ?></a></li>
<li><a href="<?php echo $order; ?>"><?php echo $text_order; ?></a></li>
<li><a href="<?php echo $transaction; ?>"><?php echo $text_transaction; ?></a></li>
<li><a href="<?php echo $download; ?>"><?php echo $text_download; ?></a></li>
<li><a href="<?php echo $logout; ?>"><?php echo $text_logout; ?></a></li>
<?php } else { ?>
<li><a href="<?php echo $register; ?>"><?php echo $text_register; ?></a></li>
<li><a href="<?php echo $login; ?>"><?php echo $text_login; ?></a></li>
<?php } ?>
</ul>
<?php } else { ?>
<i class="fa fa-user"></i> <?php echo $text_logged; ?>
<?php } ?>
</li>

Открываем файл catalog/language/russian/common/header.php и после строки:
$_['text_login'] = 'Авторизация';

$_['text_logged'] = 'Вы вошли как <a href="%s">%s</a> <b>(</b> <a href="%s">Выйти</a> <b>)</b>';

Если покупатель выйдет из личного кабинета, то в шапке магазина снова будет видна вкладка «Личный кабинет» с двумя подпунктами, которые будут предлагать либо зарегистрироваться, либо авторизоваться.

 

Но у меня вывод пункта Личный кабинет немного другой.

<div class="btn-group box-account">
				<button data-toggle="dropdown" type="button" class="dropdown-toggle btn btn-link">
				<i class="fa fa-user"></i>
				<span class="hidden-xs hidden-sm"><?php echo $text_account; ?></span> <span class="caret"></span>		
				</button>
			<ul class="dropdown-menu dropdown-menu-right">
				<?php if ($logged) { ?>
				<li><a rel="nofollow" href="<?php echo $account; ?>"><?php echo $text_account; ?></a></li>
				<li><a rel="nofollow" href="<?php echo $order; ?>"><?php echo $text_order; ?></a></li>
				<li><a rel="nofollow" href="<?php echo $transaction; ?>"><?php echo $text_transaction; ?></a></li>
				<li><a rel="nofollow" href="<?php echo $download; ?>"><?php echo $text_download; ?></a></li>
				<li><a rel="nofollow" href="<?php echo $logout; ?>"><?php echo $text_logout; ?></a></li>
				<?php } else { ?>
				<li><a rel="nofollow" href="<?php echo $register; ?>"><?php echo $text_register; ?></a></li>
				<li><a rel="nofollow" href="#login_modal_popup" data-toggle="modal" data-target="#login-form-popup"><?php echo $text_login; ?></a></li>
				<?php } ?>
			</ul>
		</div>

И решение работает не совсем адекватно
Буду благодарен за помощь в адаптации  применительно к моему шаблону.

 

до изменений.jpg

после изменений.jpg

 

Спасибо!

Link to comment
Share on other sites


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

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.