Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”

0 Пользователей и 1 Гость просматривают эту тему.

*

muralex

  • *
  • 23
  • +0/-0
    • Просмотр профиля
    • Muralex - создание сайтов
Приветствую!
Задача следующая:
Есть каталог товаров. Нужно реализовать следующее:
заходим в товар -> жмем кнопку купить -> попадаем на страницу с формой обратной связи (на ней поля для ввода незарегистрированным пользователем + данные о товаре (название, цена)) -> жмем отправить (форма с информацией отправляется администратору) -> открывается нужна нам страница

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

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

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

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


*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Покупка товара без корзины и оплаты
« Ответ #1 : 15 Июня 2012, 21:01:24 »
Цитировать
используем %emarket basketAddLink(%id%, 'buy')%

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

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

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

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

На xslt или на tpl делаешь? с php дружишь?

*

muralex

  • *
  • 23
  • +0/-0
    • Просмотр профиля
    • Muralex - создание сайтов
Re:Покупка товара без корзины и оплаты
« Ответ #2 : 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 поместить...

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Покупка товара без корзины и оплаты
« Ответ #3 : 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')%

*

muralex

  • *
  • 23
  • +0/-0
    • Просмотр профиля
    • Muralex - создание сайтов
Re:Покупка товара без корзины и оплаты
« Ответ #4 : 17 Июня 2012, 00:45:02 »
Спасибо! То что надо (:

сейчас буду ковырять форму, чтобы запихнуть эти параметры при отправке админу =)

*

muralex

  • *
  • 23
  • +0/-0
    • Просмотр профиля
    • Muralex - создание сайтов

*

muralex

  • *
  • 23
  • +0/-0
    • Просмотр профиля
    • Muralex - создание сайтов
Re:Покупка товара без корзины и оплаты
« Ответ #6 : 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"];
}
« Последнее редактирование: 09 Июля 2012, 18:27:52 от muralex »

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Покупка товара без корзины и оплаты
« Ответ #7 : 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')%