О проекте

Данный сайт попытка повысить коммуникацию самых активных разработчиков на CMS Drupal - блоггеров. Если Вы ведете свой блог о Друпале, значит Вы готовы делиться вашими знаниями, помочь другим. Не всегда ваши знания доходят до потребителя. Задача данного сайта агрегировать знания различных блогов в единую ленту и привести на Ваши блоги активных пользователей.

Активность пользователей на Вашем сайте будет дополнительным стимулом к дальнейшей работе.

Удачи во всех Ваших начинаниях!

Упрощенная корзина для Drupal Commerce

-8 votes
+
-

Некоторых по вполне логичным причинам не устраивает стандартный блок корзины в Drupal Commerce. Хочется не выводить все понапиханные в нее товары, а вывести только, скажем, одну строку. В которой должно быть только число товаров в корзине и сумма, на которую набрано. Ну и ссылки на саму корзину и оформление товара.
Вот php-код с реализацией такой укороченной корзины. Его надо вставить в блок.
<?php
  global $user;
  $order = commerce_cart_order_load($user->uid);
  if (empty($order) || empty($order->commerce_line_items)) {
      print t('Your shopping cart is empty.');
      return;
  }
  $wrapper = entity_metadata_wrapper('commerce_order', $order);
  $line_items = $wrapper->commerce_line_items;
  $total = commerce_line_items_total($line_items);
  $quantity = commerce_line_items_quantity($line_items, commerce_product_line_item_types());
?>
<p>
<?php
  print t('Your shopping cart contains <span class="shopping-cart-items-count">!items</span> on <span class="shopping-cart-money-total">!money</span> total', array('!items' => format_plural($quantity, '1 product', '@count products'), '!money' => commerce_currency_format($total['amount'], $total['currency_code'])));
?>
</p>
<p>
<?php
  print l(t('Cart'), 'cart') . ' ' . l(t('Checkout'), 'checkout');
?>
</p>
Обращаю внимание — число товаров в корзине переведено правильным, годным образом, через format_plural(). HTML-разметку блока можно менять как нравится.
А о том, как обновлять этот новый блок по AJAX-у — напишу позже.

Полный оригинальный материал:

Graker