Russian Belarusian English French German Japanese Ukrainian

Боримся с багами VirtueMart

Нужно было быстро и дёшево сделать магазин. Вот и столкнулся я с этой бедой под названием VirtueMart.

В целом впечатления неплохие, учитывая то, что это OpenSource... Но нашёлся один неудобный баг. Заключается он в следующем. В целом в компоненте существует своя система регистрации пользователей (покупателей), и хоть она и строиться на основании исходной системы регистрации Joomla тем не менее по идеи она должна заменять её, что в принципе и происходит.

Но нашёлся косяк... Либо не заметили, либо забыли, либо я первый маньяк кому понадобилось такое делать .... не знаю... да это и не важно... Суть вот в чём... Каждой странице по умолчанию можно присваивать уровень доступа. И если вы выбираете доступ только для "Авторизированных", то неавторизированные пользователи будут видеть перед собой страницу входа... Вот тут то и косяк

При действующей интеграции магазина, если Вы измените уровень доступа пользователи будут видеть перед собой исходную страницу авторизации... Она то работает. Но ! Дополнительные функции не соответствуют нуждам. Если нажать на регистрацию то появиться окно регистрации исходной системы, а не магазина!

Рабочий файл этой фишки находиться здесь components/com_user/views/login/tmpl и называется он default.php

исходный его код выглядит так:

  1. <?php defined('_JEXEC') or die('Restricted access'); ?>
  2. <?php if ($this->params->get( 'show_page_title', 1)) : ?>
  3. <div class="componentheading<?php echo $this->escape($this->params->get('pageclass_sfx')); ?>">
  4. 	<?php echo $this->escape($this->params->get('page_title')); ?>
  5. </div>
  6. <?php endif; ?>
  7. <?php echo $this->loadTemplate($this->type); ?>

 

Вариантов несколько:

- вручную перенаправлять на блок авторизации магазина;

- калечить код

Я Выбрал второе... и написал следуюющее:

  1. <?php defined('_JEXEC') or die('Restricted access'); ?>
  2. <?php if ($this->params->get( 'show_page_title', 1)) : ?>
  3. <div class="componentheading<?php echo $this->escape($this->params->get('pageclass_sfx')); ?>">
  4. 	<?php echo '<div class="er-log">ДЛЯ ПРОСМОТРА НЕОБХОДИМО ВОЙТИ ИЛИ ЗАРЕГЕСТРИРОВАТЬСЯ !</div>'; 
  5.               echo '<div class="er-log"><ul><li>- для входа воспользуйтесь блоком ВХОД, расположенным слева;</li><li>- <a href="http://nowstroy.ru/index.php?option=com_virtuemart&page=shop.registration&Itemid=1">раздел регистрации</a></li></ul></div>';
  6.               ?>
  7. </div>
  8. <?php endif; ?>

 

Как результат получилось довольно симпотично:

Ленты новостей Ленты новостей