Вариант корзины для модуля commerce (drupal)
Модуль commerce для создания интернет магазина на drupal по умолчанию предоставляет расширенный вариант корзины, который можно редактировать через views, а можно воспользоваться старым способом и сделать все через php код в шаблонах.
Ниже представлен пример корзины для русскоязычного варианта магазина, в коде жестко заданы значения слов. Вариант данного сниппета учитывает склонение в зависимости от количества в корзине (1 товар, 2 товара, 10 товаров)
В файл template.php нужной темы добавляем
function simple_commerce_cart() {
global $user;
$order = commerce_cart_order_load($user->uid);
if(!empty($order)) {
$wrapper = entity_metadata_wrapper('commerce_order', $order);
$line_items = $wrapper->commerce_line_items;
$total = commerce_line_items_total($line_items);
$currency = commerce_currency_load($total['currency_code']);
$quantity = commerce_line_items_quantity($line_items, commerce_product_line_item_types());
$summ = commerce_currency_format($total['amount'], $total['currency_code']);
static $prods=array(' товар на ', ' товара на ', ' товаров на ');
$numberLast=intval(substr(strval($quantity),-1,1));
$numberPreLast=intval(substr(strval($quantity),-2,2));
if(($numberLast==1) and ($numberPreLast!=11)){
$type=0;
}elseif((2<=$numberLast) and ($numberLast<=4)){
$type=1;
}elseif(($numberLast==0) or ((5<=$numberLast) and ($numberLast<=9)) or((11<=$numberPreLast) and ($numberPreLast<=19))){
$type=2;
}
print l(t('В вашей корзине '),'cart', array('attributes' => array('class' => array('cart-link')))) . '<span class="total-prods">' . $quantity . $prods[$type] . '<span class="user-total-price">' . $summ . '</span></span>';
}
else {
print l(t('Корзина пуста '),'cart', array('attributes' => array('class' => array('cart-link'))));
}
}
После того как код добавлен, в файл page.tpl.php в то место где хотим вывести корзину, либо блок с включенным фильтром php
добавляем следующий код
<!-- корзина -->
<?php print simple_commerce_cart(); ?>
не забываем очищать кеш после изменения шаблона, если нет изменений, даже если кеширование не включено.