UMIhelp

Разработка сайта на UMI.CMS => Шаблоны XSLT => Тема начата: Axiomateria от 01 Марта 2013, 19:01:16

Название: Перенаправление на страницу регистрации покупателя перед оформлением заказа
Отправлено: Axiomateria от 01 Марта 2013, 19:01:16
В файле cart.xsl  папка templates\название_шаблона\xslt\modules\emarket\

<xsl:if test="$user-type != 'guest'">
         <p style="margin-top:30px;">
            <a href="{$lang-prefix}/emarket/ordersList/" >
               <xsl:text>&view-orders-list;</xsl:text>
            </a>
         </p>
      </xsl:if>

С которым рядом как мне думается можно подставив в строчку <xsl:if test="$user-type != 'guest'"> значение user вместо  guest  <xsl:if test="$user-type != 'user'"> скопировать ещё такой вариант и вставить ниже это:

<xsl:if test="$user-type != 'user'">
         <p style="margin-top:30px;">
            <a href="{$lang-prefix}/emarket/ordersList/" >
               <xsl:text>&view-orders-list;</xsl:text>
            </a>
         </p>
      </xsl:if>

Цель показывать корзину товаров по разному разным пользователям, то есть незарегистрированный покупатель должен вместо кнопки под корзиной "Оформить"  видеть "Зарегистрироваться и оформить" с ссылкой на страницу с регистрацией.
Как это сделать? Подскажите пожалуйста?

Для TPL-шаблонизатора такая вещь имеется:
http://wiki.umisoft.ru/%D0%9A%D0%B0%D0%BA_%D0%B7%D0%B0%D0%BF%D1%80%D0%B5%D1%82%D0%B8%D1%82%D1%8C_%D0%B3%D0%BE%D1%81%D1%82%D1%8F%D0%BC_%D0%BE%D1%84%D0%BE%D1%80%D0%BC%D0%BB%D1%8F%D1%82%D1%8C_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D1%8B_%28TPL%29
Название: Re:Перенаправление на страницу регистрации покупателя перед оформлением заказа
Отправлено: Rodogor от 01 Марта 2013, 19:06:21
Нужно именно guest использовать, т.к. есть ещё "sv" - типо суперпользователь, админ.
<xsl:choose>
<xsl:when test="$user-type='guest'">
 <a href="/users/registrate/">Зарегистрироваться и оформить</a>
</xsl:when >
<xsl:otherwise>
<p style="margin-top:30px;">
            <a href="{$lang-prefix}/emarket/ordersList/" >
               <xsl:text>&view-orders-list;</xsl:text>
            </a>
         </p>
</xsl:otherwise>
</xsl:choose>

Ссылка, ведущая на страницу регистрации.

Предугадываю следующие вопросы:
- как вернуть пользователя после регистрации на предыдущую страницу;
- что стало с корзиной после авторизации;

Если они вдруг возникнут - пишите..
Название: Re:Перенаправление на страницу регистрации покупателя перед оформлением заказа
Отправлено: Axiomateria от 01 Марта 2013, 19:39:54
Предугадываю следующие вопросы:
- как вернуть пользователя после регистрации на предыдущую страницу;
- что стало с корзиной после авторизации;

Вселенское спасибо! Будем работать над этим!
Название: Re:Перенаправление на страницу регистрации покупателя перед оформлением заказа
Отправлено: Axiomateria от 01 Марта 2013, 20:13:28
Осмелюсь уточнить, что в итоге получилось вот такое :
<xsl:choose>
                 <xsl:when test="$user-type='guest'">
                    <a href="{$lang-prefix}/users/registrate/" class="button big basket_purchase">&reg-n-place;</a>
                 </xsl:when>
                 <xsl:when test="$user-type='user'">      
                    <a href="{$lang-prefix}/emarket/purchase/" class="button big basket_purchase">
                <xsl:text>&begin-purchase;</xsl:text>
               </a>
                </xsl:when>
                 <xsl:otherwise>
                  <p style="margin-top:20px;">
                   <a href="{$lang-prefix}/emarket/ordersList/" class="button big basket_purchase"><xsl:text>&view-orders-list;</xsl:text></a>
                  </p>
                 </xsl:otherwise>
               </xsl:choose>
Название: Re:Перенаправление на страницу регистрации покупателя перед оформлением заказа
Отправлено: Axiomateria от 04 Марта 2013, 15:11:31
Предугадываю следующие вопросы:
- как вернуть пользователя после регистрации на предыдущую страницу;
- что стало с корзиной после авторизации;

Если они вдруг возникнут - пишите..

Здравствуйте!
Вот и возник один вопрос по теме:
Как в процессе оформления заказа при нажатии на кнопку  "Оформить" (или "Оплатить") вставить дополнительный шаг в виде страницы для позитивного уведомления покупателя "Спасибо! Ваш заказ поступил в обработку. О его оформлении Вы получите уведомления на указанный Вами почтовый ящик при регистрации.... ну или что-то вроде того" ?

Думаю, что надо опять потревожить файл cart.xsl в папке templates/название_шаблона/xslt/modules/emarket\ в котором новый шаблон вписать для вывода уведомления покупателю, да вот в этом-то и вопрос, как ?

Или уже файл payment.xsl в папке templates\название_шаблона/xslt/modules/emarket/purchase/ за подобные выводе отвечает ?
Название: Re:Перенаправление на страницу регистрации покупателя перед оформлением заказа
Отправлено: Rodogor от 04 Марта 2013, 15:43:33
Для того, что бы сделать дополнительный промежуточный шаг, нужно править именно api, что бы система понимала какой шаг предыдущий, какой следующий и т.п...
Название: Re:Перенаправление на страницу регистрации покупателя перед оформлением заказа
Отправлено: Axiomateria от 04 Марта 2013, 16:38:02
нужно править именно api,

То есть дело тут в программировании на PHP в системных файлах UMI ?
Название: Re:Перенаправление на страницу регистрации покупателя перед оформлением заказа
Отправлено: Rodogor от 04 Марта 2013, 16:49:33
Я под системными файлами имею в виду сам движок, который осуществляет взаимодействие модулей, их инициализацию и т.п.. Эти файлы править не нужно.
Файлы модуля emarket править нужно
Название: Re:Перенаправление на страницу регистрации покупателя перед оформлением заказа
Отправлено: Axiomateria от 04 Марта 2013, 16:58:08
Файлы модуля emarket править нужно

- то есть те, которые лежат в папке /templates/название_шаблона/xslt/modules/emarket/
?
Название: Re:Перенаправление на страницу регистрации покупателя перед оформлением заказа
Отправлено: Axiomateria от 04 Марта 2013, 17:05:42
   В папке /templates/название_шаблона/xslt/modules/emarket/ есть файл purchase.xsl в котором есть следующий в код:
<xsl:template match="purchasing[@stage = 'result']">
      <p>
         <xsl:text>&emarket-order-failed;</xsl:text>
      </p>
   </xsl:template>
   
   <xsl:template match="purchasing[@stage = 'result' and @step = 'successful']">
      <p>
         <xsl:text>&emarket-order-successful;</xsl:text>
      </p>
   </xsl:template>

- где интуитивно как мне кажется именно и осуществляется процесс перехода с одного этапа к другому  
 purchasing[@stage = 'result' and @step = 'successful
Название: Re:Перенаправление на страницу регистрации покупателя перед оформлением заказа
Отправлено: BaceH от 05 Марта 2013, 02:08:59
Если на этом "шаге" от пользователя ничего не требуется, реализуйте на JavaScript и не морочайте себе голову.  перехватить нажатие на кнопку, показать сообщение, и отправить форму дальше.
Название: Re:Перенаправление на страницу регистрации покупателя перед оформлением заказа
Отправлено: Rodogor от 05 Марта 2013, 09:23:44
Верное решение. Если не знаете api - то долго будете решать. В umi действительно часто неудобно что-то сдеать, хотя кажется, что тут нефиг делать, поэтому приходится делать через всякие костыли, пускай и не логичные, но....
Название: Re:Перенаправление на страницу регистрации покупателя перед оформлением заказа
Отправлено: Axiomateria от 05 Марта 2013, 11:28:59
Если на этом "шаге" от пользователя ничего не требуется, реализуйте на JavaScript и не морочайте себе голову.  перехватить нажатие на кнопку, показать сообщение, и отправить форму дальше.

"и отправить форму дальше" - это значит можно в файле purchase.xsl /templates/название_шаблона/xslt/modules/emarket/ вставить всплывающее окно с уведомлением и предложением перейти по кнопке в личный кабинет, что бы отслеживать дальнейший ход обработки своего заказа ?
Я просто хочу уточнить для себя какой файл конкретно требует редакции для этого?
Название: Re:Перенаправление на страницу регистрации покупателя перед оформлением заказа
Отправлено: Axiomateria от 05 Марта 2013, 11:32:06
Верное решение. Если не знаете api - то долго будете решать...

API - это системные файлы CMS или файлы шаблонизатора ?
Название: Re:Перенаправление на страницу регистрации покупателя перед оформлением заказа
Отправлено: Rodogor от 05 Марта 2013, 11:51:22
Я даже не знаю как ответить. Напоминает демотиватор "Я молоко пила 20 минут назад - я топор ракета 40 минут вперёд".

API - это интерфейс прикладного программирования, через который можно взаимодействовать с какой-нибудь системой. К примеру, вы написали что-то, что выводит "hello world". Появляется новая задача - теперь надо выводить ещё "hello fucking world".. И для её реализации делается механизм взаимодействия с вашим кодом, в который параметром передаётся необходимый текст. Это как бы и будет api

Системные файлы - на мой взгляд это набор файлов, которые реализуют возможность api, реализуют модули и т.п... Реализация модуля - это одно, а реализация механизма, поддерживающего модули - это другое и скорее всего это и является СИСТЕМными файлами, формирующими систему.
Грубо говоря - api может быть не системной частью, но механизм реализации api будет системным

Если есть движок (системные файлы), если есть api, реализованы модули и т.п., то для удобства вывода данных используются различные шаблонизаторы. Вот многие cms сделаны так - тупо перемешка php и html, причём непоследовательная и непонятная. В случае использование шаблонизаторов это немного проще (хотя порой тоже нефига не понятно).
Название: Re:Перенаправление на страницу регистрации покупателя перед оформлением заказа
Отправлено: admin от 09 Марта 2013, 10:51:12
Axiomateria:
Цитировать
Здравствуйте!
Вот и возник один вопрос по теме:
Как в процессе оформления заказа при нажатии на кнопку  "Оформить" (или "Оплатить") вставить дополнительный шаг в виде страницы для позитивного уведомления покупателя "Спасибо! Ваш заказ поступил в обработку. О его оформлении Вы получите уведомления на указанный Вами почтовый ящик при регистрации.... ну или что-то вроде того" ?

Много обсуждений, но мне так ине понятно что вам конкретно надо?

Если разговор идет о том, чтобы при успешном оформлении заказа, вывести свое сообщение, то вам надо редактировать шаблон в файле /xslt/modules/emarket/purchase.xsl, в котором есть шаблон
<xsl:template match="purchasing[@stage = 'result' and @step = 'successful']">
<p>
<xsl:text>&emarket-order-successful;</xsl:text>
</p>
</xsl:template>

А вот если вам, надо добавить какой-дополнительный шаг при оформлении оплаты, например подставить после всех стандартных шагов, шаг подтверждения заказа, и только после него завершить процесс оформления заказа, то тогда вопрос сложнее. Вам надо понимать как работает система в процессе оформления заказа и используя кастомы и скорее всего шаблоны написанные для них добиваться необходимого результата. Но зачастую, такие вопросы решаются только при понимании что и как там работает.
Название: Re:Перенаправление на страницу регистрации покупателя перед оформлением заказа
Отправлено: Axiomateria от 11 Марта 2013, 11:54:29
...если вам, надо добавить какой-дополнительный шаг при оформлении оплаты, например подставить после всех стандартных шагов, шаг подтверждения заказа, и только после него завершить процесс оформления заказа, то тогда вопрос сложнее. Вам надо понимать как работает система в процессе оформления заказа и используя кастомы и скорее всего шаблоны написанные для них добиваться необходимого результата. Но зачастую, такие вопросы решаются только при понимании что и как там работает.
Вот в том-то всё и дело, что разбираться придётся самому, ибо вопрос с дополнительным шагом глубоко в PHP уходит... Но и это уже кое-что, по крайней мере с "областью лечения" в диагнозе определились. Спасибо за помощь!