UMIhelp

Разработка сайта на UMI.CMS => Шаблоны TPL => Тема начата: umidev от 29 Мая 2018, 19:35:50

Название: Вывод работы макроса вместе с версткой
Отправлено: umidev от 29 Мая 2018, 19:35:50
Здравствуйте.

Создаю функцию, которая результат своей работы отдает вместе с версткой в tpl шаблоне, на umi cms.

Вообще сайт работает на .phtml шаблонах, но как понимаю на phtml реализовать невозможно, что мне нуужно.
Поэтому решил сделать на tpl шаблоне, буду рад если кто-нибудь укажет на возможность реализации на xslt шаблоне.

Функция в модуле emarket:

public function getDeliveryAjax($template ='default'){
 
    list(
    $templateBlock,
    $templateLineItem,
    $templateMapItem,
    $templateJavascript
    )= def_module::loadTemplates('emarket/delivery/'.$template,
    'delivery_tab_block',
    'delivery_line_item',
    'delivery_map_item',
    'delivery_javascript'
    );
 
    $block_arr['delivery_line_items']       ='text1';
    $block_arr['delivery_map_items']        ='text2';
    $block_arr['delivery_javascript_items']='text3';
 
    return def_module:: parseTemplate($templateBlock, $block_arr);
}

Шаблон default.tpl, находится по пути tpls/emarket/delivery/default.tpl:

<?php
$FORMS =Array();
 
$FORMS['delivery_tab_block']=<<<END
<div>
 
<table class="b-order_delivery">
    %delivery_line_items%
</table>
 
<table class="b-order_delivery">
    %delivery_map_items%
</table>
 
  <div id="map">
      %delivery_javascript_items%
   </div>
 
</div>
END;

Запускаю по ссылке через браузер: http://site.ru/udata/emarket/getDeliveryAjax
(в ссылке emarket -модуль в котором вызываю функцию, getDeliveryAjax - это сама функция)
На выходе получаю:
	<?xml version="1.0" encoding="utf-8"?>
<udata xmlns:xlink="http://www.w3.org/TR/xlink" module="emarket" method="getDeliveryAjax" generation-time="0.020383">
<delivery_line_items>text1</delivery_line_items>
<delivery_map_items>text2</delivery_map_items>
<delivery_javascript_items>text3</delivery_javascript_items>
</udata>
<!-- This page generated in 0.038453 secs by XSLT, HTTP SCHEME MODE -->

Как вывести данные функции вместе с шаблоном?

Все делаю на примере других функций umi.

Спасибо
Название: Re: Вывод работы макроса вместе с версткой
Отправлено: aghigay от 29 Мая 2018, 23:26:04
Попробуйте явно указать шаблон default
Название: Re: Вывод работы макроса вместе с версткой
Отправлено: umidev от 30 Мая 2018, 02:03:06
Попробуйте явно указать шаблон default
Попробовал.
На экране написано: This XML file does not appear to have any style information associated with it. The document tree is shown below.

Больше ничего нет вообще. В исходном коде страницы теперь пусто
Название: Re: Вывод работы макроса вместе с версткой
Отправлено: aghigay от 30 Мая 2018, 09:47:09
А, понятно. Он пытается использовать более правильную XSLT, так как явно думает, что на tpl уже никто не кодит )))

Это шутка конечно, но с изрядной долей правды. Завязывайте с TPL и не будете знать проблем.
Название: Re: Вывод работы макроса вместе с версткой
Отправлено: umidev от 30 Мая 2018, 11:10:52
А, понятно. Он пытается использовать более правильную XSLT, так как явно думает, что на tpl уже никто не кодит )))

Это шутка конечно, но с изрядной долей правды. Завязывайте с TPL и не будете знать проблем.

Мне как бы не принципиален tpl ,  пойдет и xslt.

Я пробовал передавать данные из макроса quickTest в  xslt.
Вызывал по ссылке http://site.ru/udata/emarket/quickTest?transform=modules/product-info.xsl

Данные из макроса подставляются в xslt шаблон и выводятся вместе с шаблоном. Что я и пытался добиться.

Но задача, то у меня сложнение мне нужно вывести 2 массива через цикл.

Как передать из макроса 2 массива и в xslt вывести их в цикле вместе с версткой, я не понимаю.