Drupal → Как в Ubercart добавить товар в корзину с помощью AJAX
Пример добавления в корзину товара с nid 123
.
Javascript:
// Посылаем AJAX запрос $.post(Drupal.settings.basePath + 'ajax-add-to-cart', {nid:123}, function(response) { response = Drupal.parseJson(response); // Показываем сообщение если что-то пошло не так if (!response.status) { return alert(response.data); } // Обновляем блок с корзиной $('#block-uc_cart-0 .content').html(response.data); });
PHP:
/** * Реализация hook_menu() */ function mymodule_menu() { $items['ajax-add-to-cart'] = array( 'page callback' => 'mymodule_ajax_add_to_cart', 'access arguments' => array('access content'), 'type' => MENU_CALLBACK, ); return $items; } /** * Menu callback */ function mymodule_ajax_add_to_cart() { if (!isset($_POST['nid'])) { return; } // Добавляем товар в корзину uc_cart_add_item((int)$_POST['nid'], 1, NULL, NULL, FALSE); // Получаем содержимое блока корзины $block = module_invoke('uc_cart', 'block', 'view', 0); // Возвращаем содержимое блока корзины drupal_json(array('status' => TRUE, 'data' => $block['content'])); }
Комментарии
Есть же ж готовый модуль http://drupal.org/project/uc_ajax_cart
я в курсе
Скажите а при кешировании блоков этот модуль будет работать ?
это не модуль, а кусок кода ;) при кэшировании работать будет
Вот так правильные добавлять:
Я не силен в програмирывании, я так и не понял куда конкретно вставлять этот код?
для не сильных в "програмирывании" есть готовые модули
Новая аджакс корзина для уберкарт:
Acar - ajax cart for ubercart
http://www.drupal.ru/node/80901
http://u6167.moko.vps-private.net
Оставить комментарий