Реализация корзины в конструкторе контента Seblod посредством jQuery.
Конечно, никакой интернет-магазин не обойдётся без корзины. Конечно можно это сделать имитацию — заказ в один клик. С всплывающей формой для ввода контактов.
Предлагаю Вам реализацию корзины для seblod посредством jQuery. Для начала скачиваем/прикручиваем скрипты и инициализируем корзину:
в head добавляем:
<script src="templates/jblank/js/wicart.js" type="text/javascript"></script> <script src="templates/jblank/js/wicart.num.js" type="text/javascript"></script> <script language="javascript" type="text/javascript"> function sendkorz() { if(jQuery("input[name=soglasen]").prop("checked")){ //если отмечен cart.sendOrder('formToSend,overflw,bsum'); return false; }else{alert('Отметьте пожалуйста согласие на обработку данных, в соответствии с законом №152-ФЗ «О персональных данных» от 27.07.2006 ')}; }; var cart; var config; var wiNumInputPrefID; /* WI-GLOBAL-VARS */ jQuery(document).ready(function(){ cart = new WICard("cart"); config = {'clearAfterSend':true, 'showAfterAdd':false}; cart.init("basketwidjet", config); WICartNum('cart', 'wicartnum', 'winum_'); /* WI-MODULES */ }); document.addEventListener('visibilitychange', function(e) { cart.init("basketwidjet", config); }, false); </script> |
Далее в типе контента, который является товаром (я это делаю при закрытом замочке), создаем поле «цена» с хранилищем standart и названием cena.
То есть у нас получается цена товара будет хранится в таблице/поле #__cck_store_form_tovar.cena
Далее идём во вкладку content и создаем поле с типом «42», куда вставляем код (в поле PrepareContent):
$artid=JRequest::getInt('id'); //получаем id товара $db =& JFactory::getDbo(); //подключаемся к таблице $db->setQuery (" SELECT #__cck_store_form_tovar.cena, #__cck_store_form_tovar.code, #__content.title FROM #__cck_store_form_tovar, #__content WHERE #__cck_store_form_tovar.id = '$artid' AND #__content.id = '$artid' ");//получаем из неё цену, код товара (если нужно), название и пр. $result = $db->loadObjectList(); //полученный результат получаем в массиве с названиями полей совпадающими с именами столбцов в таблице foreach($result as $ff) { $value = '<script> var priceList = { "'.$artid.'" : {"id" : "'.$artid.'", "subid" : "'.$ff->code.'", "name" : "'.$ff->code.'-'.str_replace(array("'",'"'), '', $ff->title).'", "subname" : {}, "price" : "'.ceil($ff->cena).'"}, }; //данные товара для кнопки купить </script>'; $value .= ' |
‘; //вывод цены в карточке товара либо можно вывести стандартно полем во вкладке content $value .= ‘
//выбор количества товара — можно и не делать, тогда и скрипт num не нужно подключать в шапке ‘; //кнопка добавления в корзину }
Теперь осталось вывести корзину и настроить отправку заказа на почту.
Вывод корзины и формы на сайте делается либо вставкой кода в шаблон либо можно вывести модулем:
Ваш заказ:
Далее для отправки содержимого корзины в корень сайта кидаем файл sendmail.php с соответствующими его настройками.
Возможно в htaccess нужно будет добавить
RewriteRule ^sendmail.php?(.+)$ sendmail.php?$1 [L]
Кстати в корзине реализовано необходимое согласие посетителя на обработку его данных, без которого владельцу сайта грозит штраф.
Вроде всё, все вопросы в комментариях.