Jump to content


Photo
* * * * * 1 votes

Склонения товаров в модуле корзины

рецепт jbzoo 2.0+ basket корзина

No replies to this topic

#1 Cheren-dow

Cheren-dow
  • JBZoo User (rus)
  • User rate: 95.7
  • posts: 5060
  • topics: 31

Posted 08 July 2014 - 14:45

Иногда возникает ситуация где нужно считать сколько товаров в корзине и выводить нужное слово в зависимости от количества товаров. Как же это можно сделать? Да достаточно просто))

y8d_200x0.jpg   b22_200x0.jpg  xl0_200x0.jpg

 

1. Открываем хелпер модуля корзины

сайт\modules\mod_jbzoo_basket\helper.php

И в самом низу или любом другом месте класса JBZooBasketHelper добавляем новый метод - например

/**
 * @param int $int
 * @param array $data
 * @return string
 */
public function caseWord($int = 0, $data = array())
{
    $int = (int)$int;
    if (isset($data['one']) && isset($data['one_of_plural']) && isset($data['plural'])) {
        $resString = $int % 10 == 1 && $int % 100 != 11 ? $data['one'] : ($int % 10 >= 2 && $int % 10 <= 4 && ($int % 100 < 10 || $int % 100 >= 20) ? $data['one_of_plural'] : $data['plural']);
        $output    = $int . ' ' . $resString;

        return $output;
    }

    return $int;
} 

Далее после строк, в шаблоне модуля

$summa     = $basketHelper->getSumm($basketItems);
$count     = $basketHelper->getCount($basketItems);
$countSku  = $basketHelper->getCountSku($basketItems);
$currency  = $basketHelper->getCurrency($basketItems);
$basketUrl = $basketHelper->getBasketUrl();
$emptyUrl  = $basketHelper->getBasketEmptyUrl();

добавляем

$getCaseItem = $basketHelper->caseWord($count, array(
    'one'           => 'товар',
    'plural'        => 'товаров',
    'one_of_plural' => 'товара'
));

Теперь в месте где выводится общее число товаров

echo '<p>' . JText::_('JBZOO_CART_TOTAL_COUNT') . ': <span class="total-items">' . $count . ' ' . JText::_('JBZOO_CART_COUNT_ABR') . '</span></p>';

вместо $count вставляем нашу переменную $getCaseItem

echo '<p>' . JText::_('JBZOO_CART_TOTAL_COUNT') . ': <span class="total-items">' . $getCaseItem . ' ' . JText::_('JBZOO_CART_COUNT_ABR') . '</span></p>';

Вот и все, теперь будут добавляться нужные склонения в зависимости от кол-ва товаров в корзине.

 

ВНИМАНИЕ!!!

  • Будьте внимательны при замене файлов.
  • Проверьте с начало на тестовом сайте а уже потом загружайте на рабочий сайт.
  • Это решение(модификация) тестировалось на 
    Joomla: 3.3.1
    JBZoo: 2.1.4 Pro
    Zoo: 3.1.6,
  • Не забывайте - это решение(модификация) и при следующих обновлениях эти изменения могут пострадать.
  • При появлении проблем Тех.Поддержка ответственности не несет. 

Добавлено: 08.07.2014


Edited by Cheren-dow, 08 July 2014 - 14:54.

  • 2
Изображение
 





Also tagged with one or more of these keywords: рецепт, jbzoo 2.0+, basket, корзина

Click to return to top of page in style!