UMIhelp

Разработка дополнительного функционала => Разработка модулей => Тема начата: muralex от 15 Июня 2012, 15:18:56

Название: Покупка товара без корзины и оплаты
Отправлено: muralex от 15 Июня 2012, 15:18:56
Приветствую!
Задача следующая:
Есть каталог товаров. Нужно реализовать следующее:
заходим в товар -> жмем кнопку купить -> попадаем на страницу с формой обратной связи (на ней поля для ввода незарегистрированным пользователем + данные о товаре (название, цена)) -> жмем отправить (форма с информацией отправляется администратору) -> открывается нужна нам страница

Подскажите с чего начать? Идеи, ссылки все принимается =)

Моя идея такая:
в шаблоне товара:
используем %emarket basketAddLink(%id%, 'buy')%

шаблон buy:
<a href="%link%#%id%" class="cbutton">Купить работу</a>

в href добавляем hash #%id% и переправляем на страницу с формой и извлекаем данные...

Название: Re:Покупка товара без корзины и оплаты
Отправлено: admin от 15 Июня 2012, 21:01:24
Цитировать
используем %emarket basketAddLink(%id%, 'buy')%

если ты хочешь сделать покупку без модуля интернет магазин, то методы данного модуля (%emarket basketAddLink()%) тебе будут недоступны.

Направлении идеи хорошее.

делаешь ссылку под товаром на страницу с формой
<a href="/send_form_page/?id=%id%" class="cbutton">Купить работу</a>

а на странице с формой подхватываешь параметр с адресной строки и выводишь его там где тебе надо.

На xslt или на tpl делаешь? с php дружишь?
Название: Re:Покупка товара без корзины и оплаты
Отправлено: muralex от 16 Июня 2012, 00:38:50
На tpl.
С php знаком немного.

Нашел пока такое:
<script type="text/javascript">
var parts=document.location.search.substr(1).split("&");
var GET={}, gettex="", curr;
for (i=0; i<parts.length; i++) {
 curr = parts[i].split('=');
 GET[curr[0]] = curr[1];
}
for (var el in GET) {
 if (el && GET[el])
  gettex=GET[el];
}
document.write("<pre>"+gettex+"</pre>");
</script>
           
            Цена: %data getProperty(%id%, 'price', 'catalog_preview')%

Но, с JS вообще мало знаком, и не знаю как переменную в макрос UMI поместить...
Название: Re:Покупка товара без корзины и оплаты
Отправлено: admin от 16 Июня 2012, 01:14:12
тебе не нужен js

пишешь в файл /classes/modules/custom.php функцию вида:
public function custom_request($field_name=NULL) {
if(!$field_name) return;
return getRequest($field_name);
}

и на странице с формой в нужном месте подхватываешь параметр с адресной строки (пусть параметр будет вида ?id=123) таки вызовом %custom custom_request('id')%
Название: Re:Покупка товара без корзины и оплаты
Отправлено: muralex от 17 Июня 2012, 00:45:02
Спасибо! То что надо (:

сейчас буду ковырять форму, чтобы запихнуть эти параметры при отправке админу =)
Название: Re:Покупка товара без корзины и оплаты
Отправлено: muralex от 18 Июня 2012, 12:21:17
Вот статья как добавить параметры:
http://wiki.umisoft.ru/%D0%9A%D0%B0%D0%BA_%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C_%D1%81%D0%BA%D1%80%D1%8B%D1%82%D0%BE%D0%B5_%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BA_%D0%BE%D1%82%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D1%8F%D0%B5%D0%BC%D0%BE%D0%BC%D1%83_%D0%BF%D0%B8%D1%81%D1%8C%D0%BC%D1%83

Название: Re:Покупка товара без корзины и оплаты
Отправлено: muralex от 09 Июля 2012, 17:42:07
тебе не нужен js

пишешь в файл /classes/modules/custom.php функцию вида:
public function custom_request($field_name=NULL) {
if(!$field_name) return;
return getRequest($field_name);
}

и на странице с формой в нужном месте подхватываешь параметр с адресной строки (пусть параметр будет вида ?id=123) таки вызовом %custom custom_request('id')%

а можно как-то покрасивей реализовать для нескольких значений ?id=123&param=abc ?

public function custom_request_id($field_name=NULL) {
if(!$field_name) return;
return $_GET["id"];
}
public function custom_request_param($field_name=NULL) {
if(!$field_name) return;
return $_GET["param"];
}
Название: Re:Покупка товара без корзины и оплаты
Отправлено: admin от 10 Июля 2012, 02:55:59
оставить ту функцию которую писал я
public function custom_request($field_name=NULL) {
if(!$field_name) return;
return getRequest($field_name);
}

и сделать вывод 2 раза
%custom custom_request('id')%,%custom custom_request('param')%