Перейти к содержимому


Фотография
* * * * * 1 Голосов

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

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

В этой теме нет ответов

#1 Cheren-dow

Cheren-dow

Отправлено 08 July 2014 - 14:45

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

y8d_200x0.jpg   b22_200x0.jpg  xl0_200x0.jpg

 

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

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

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

  1. /**
  2. * @param int $int
  3. * @param array $data
  4. * @return string
  5. */
  6. public function caseWord($int = 0, $data = array())
  7. {
  8. $int = (int)$int;
  9. if (isset($data['one']) && isset($data['one_of_plural']) && isset($data['plural'])) {
  10. $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']);
  11. $output = $int . ' ' . $resString;
  12.  
  13. return $output;
  14. }
  15.  
  16. return $int;
  17. } 

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

  1. $summa = $basketHelper->getSumm($basketItems);
  2. $count = $basketHelper->getCount($basketItems);
  3. $countSku = $basketHelper->getCountSku($basketItems);
  4. $currency = $basketHelper->getCurrency($basketItems);
  5. $basketUrl = $basketHelper->getBasketUrl();
  6. $emptyUrl = $basketHelper->getBasketEmptyUrl();

добавляем

  1. $getCaseItem = $basketHelper->caseWord($count, array(
  2. 'one' => 'товар',
  3. 'plural' => 'товаров',
  4. 'one_of_plural' => 'товара'
  5. ));

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

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

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

  1. 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


Сообщение отредактировал Cheren-dow: 08 July 2014 - 14:54

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





Темы с аналогичным тегами рецепт, jbzoo 2.0+, basket, корзина

Click to return to top of page in style!