Jump to content


Photo
- - - - -

Подскажите как тут происходит рендеринг?


2 replies to this topic

#1 NeuroZ

NeuroZ
  • JBZoo User (rus)
  • User rate: 0
  • posts: 20
  • topics: 6

Posted 06 November 2015 - 09:29

Здравствуйте!

У вас в системе практически любой вид рендериться похожим образом:

echo $view->shippingRenderer->render('shipping.default', array(
                        'order' => $view->order
                    ));

Разбирая текущий пример:

Тут понятно, что функция запускает default.php в папке shipping. И циклично выполняет код из этого файла. Вопрос - как мне вмешаться в цикл? В данном случае мне нужно для того, чтобы стилизовать и сгруппировать способы доставки.

 

К примеру у меня есть доставка курьером и самовывоз, а я хочу чтобы при клике на самовывоз - у меня открывалось дополнительное поле с адресами магазинов. Для этого я в админке создал 3 способа доставки "самовывоз" и в описании указал разные адреса. Теперь при рендеринге я хочу объеденить эти способы в 1. Как мне это можно сделать?


  • 0

#2 NeuroZ

NeuroZ
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 0
  • posts: 20
  • topics: 6

Posted 06 November 2015 - 13:56

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


  • 0

#3 SmetDenis

SmetDenis
  • Administrators
  • User rate: 139.4
  • posts: 16232
  • topics: 200

Posted 09 November 2015 - 08:27

Цикл запускается рендером и желательно в него не вмешиваться.
Они находятся тут media\zoo\applications\jbuniversal\framework\render\*.php

Вместо этого, лучше посмотрите как работают стили позиции. В шаблон приходит масса переменных, от которых можно сделать зависимости. http://jbzoo.ru/docs/position-stylesrenderPosition()

К примеру у меня есть доставка курьером и самовывоз, а я хочу чтобы при клике на самовывоз - у меня открывалось дополнительное поле с адресами магазинов.

Разве сейчас этих функций нет в виде дополнительных полей доставки?

Теперь при рендеринге я хочу объеденить эти способы в 1. Как мне это можно сделать?

Кажется сделать собственный способ доставки на основе того что есть будет проще, чем менять рендеринг. Он работает изолировано и не смешивает функции между элементами.
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



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





Click to return to top of page in style!