Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”

0 Пользователей и 1 Гость просматривают эту тему.

*

umidev

  • *
  • 8
  • +0/-0
    • Просмотр профиля
Здравствуйте.

Создаю функцию, которая результат своей работы отдает вместе с версткой в 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.

Спасибо
« Последнее редактирование: 29 Май 2018, 20:14:02 от umidev »

*

aghigay

  • *****
  • 611
  • +28/-3
  • Просто пытаюсь помочь. Иногда пинком
    • Просмотр профиля
    • umicms.me
Попробуйте явно указать шаблон default
Мой блог http://umicms.me

*

umidev

  • *
  • 8
  • +0/-0
    • Просмотр профиля
Попробуйте явно указать шаблон default
Попробовал.
На экране написано: This XML file does not appear to have any style information associated with it. The document tree is shown below.

Больше ничего нет вообще. В исходном коде страницы теперь пусто

*

aghigay

  • *****
  • 611
  • +28/-3
  • Просто пытаюсь помочь. Иногда пинком
    • Просмотр профиля
    • umicms.me
А, понятно. Он пытается использовать более правильную XSLT, так как явно думает, что на tpl уже никто не кодит )))

Это шутка конечно, но с изрядной долей правды. Завязывайте с TPL и не будете знать проблем.
« Последнее редактирование: 30 Май 2018, 09:48:40 от aghigay »
Мой блог http://umicms.me

*

umidev

  • *
  • 8
  • +0/-0
    • Просмотр профиля
А, понятно. Он пытается использовать более правильную XSLT, так как явно думает, что на tpl уже никто не кодит )))

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

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

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

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

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

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