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


Фотография
- - - - -

Вставить код после N новости


Лучший Ответ CB9TOIIIA , 14 July 2015 - 11:45

Рабочий код  :)

  1. public function columns($layoutName, $objects)
  2. {
  3. static $itemCount = 0;
  4.  
  5. $cols_num = $this->_params->get('template.' . $layoutName . '_cols', 1);
  6. $cols_order = $this->_params->get('template.' . $layoutName . '_order', 1);
  7.  
  8. $vars = array(
  9. 'cols_num' => $cols_num,
  10. 'cols_order' => $cols_order
  11. );
  12.  
  13. // init vars
  14. $i = 0;
  15. $columns = array();
  16. $column = 0;
  17. $row = 0;
  18. $countObjects = count($objects);
  19. $rows = ceil($countObjects / $cols_num);
  20.  
  21. if ($countObjects > 0) {
  22. foreach ($objects as $object) {
  23.  
  24. if ($cols_order) {
  25. // order down
  26. if ($row >= $rows) {
  27. $column++;
  28. $row = 0;
  29. $rows = ceil(($countObjects - $i) / ($cols_num - $column));
  30. }
  31. $row++;
  32. $i++;
  33. } else {
  34. // order across
  35. $column = $i++ % $cols_num;
  36. $column = $i;
  37. }
  38.  
  39. if (!isset($columns[$column])) {
  40. $columns[$column] = '';
  41. }
  42.  
  43. $itemCount++;
  44. if ($itemCount == 2) {
  45. $columns[$column] .= 'Реклама';
  46. }
  47.  
  48. if ($object instanceof Item) {
  49. $columns[$column] .= $this->renderItem($object);
  50. } else {
  51. $columns[$column] .= $this->render($layoutName, $object, $vars);
  52. }
  53. }
  54.  
  55. return $this->render($layoutName . '_columns', $columns, $vars);
  56. }
  57.  
  58. return false;
  59. }
Перейти к сообщению


  • Закрытая тема Тема закрыта
Сообщений в теме: 14

#11 SmetDenis

SmetDenis

Отправлено 13 July 2015 - 20:09

Может так?
  1. static $itemCount = 0;

  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#12 CB9TOIIIA

CB9TOIIIA

Отправлено 14 July 2015 - 11:45   Лучший Ответ

Рабочий код  :)

  1. public function columns($layoutName, $objects)
  2. {
  3. static $itemCount = 0;
  4.  
  5. $cols_num = $this->_params->get('template.' . $layoutName . '_cols', 1);
  6. $cols_order = $this->_params->get('template.' . $layoutName . '_order', 1);
  7.  
  8. $vars = array(
  9. 'cols_num' => $cols_num,
  10. 'cols_order' => $cols_order
  11. );
  12.  
  13. // init vars
  14. $i = 0;
  15. $columns = array();
  16. $column = 0;
  17. $row = 0;
  18. $countObjects = count($objects);
  19. $rows = ceil($countObjects / $cols_num);
  20.  
  21. if ($countObjects > 0) {
  22. foreach ($objects as $object) {
  23.  
  24. if ($cols_order) {
  25. // order down
  26. if ($row >= $rows) {
  27. $column++;
  28. $row = 0;
  29. $rows = ceil(($countObjects - $i) / ($cols_num - $column));
  30. }
  31. $row++;
  32. $i++;
  33. } else {
  34. // order across
  35. $column = $i++ % $cols_num;
  36. $column = $i;
  37. }
  38.  
  39. if (!isset($columns[$column])) {
  40. $columns[$column] = '';
  41. }
  42.  
  43. $itemCount++;
  44. if ($itemCount == 2) {
  45. $columns[$column] .= 'Реклама';
  46. }
  47.  
  48. if ($object instanceof Item) {
  49. $columns[$column] .= $this->renderItem($object);
  50. } else {
  51. $columns[$column] .= $this->render($layoutName, $object, $vars);
  52. }
  53. }
  54.  
  55. return $this->render($layoutName . '_columns', $columns, $vars);
  56. }
  57.  
  58. return false;
  59. }

Сообщение отредактировал CB9TOIIIA: 14 July 2015 - 12:58

  • 0

#13 SmetDenis

SmetDenis

Отправлено 14 July 2015 - 12:03

Е мае... у меня же работает :) Могу я увидеть ваш сайт? думаю у нас настройки не сходятся.

 

PS Статик - был моей опечаткой.


  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#14 CB9TOIIIA

CB9TOIIIA

Отправлено 14 July 2015 - 12:09

Сорри :) проверил еще раз и все отключил лишнее в кеше.

Работает! :) отлично.

 

Вопрос... работает и со static и без него. Как лучше оставить?


  • 0

#15 SmetDenis

SmetDenis

Отправлено 14 July 2015 - 12:41

Отлично!

 

CB9TOIIIA сказал(а) 14 Июл 2015 - 11:09:

Вопрос... работает и со static и без него. Как лучше оставить?
 

Лучше оставить статик, это обеспечит независимость от настроек и внутренних счетчиков.


  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.





Click to return to top of page in style!