UMIhelp

Разработка дополнительного функционала => Разработка модулей => Тема начата: atach от 27 Сентября 2013, 14:36:50

Название: Типы полей при разработке собственной выдачи в модуле...
Отправлено: atach от 27 Сентября 2013, 14:36:50
Вопрос такой ... (шаблонизатор TPL).
в API у меня формируется выдача через "umiSelection" ...
и после формируется выдача в шаблон "self::parseTemplate"

вопрос вот в чём ...  когда я добавляю нужные мне результаты полей в массив:
$item_arr['attribute:name'] = $object->getName("h1");
$item_arr['attribute:number'] = $object->getValue("number");
они имеют свои типы полей ...
и потом при вызове %scope% непонятно как они присваиваются автоматом чтоли? Т.к. у меня в итоге все text или int ... ни даты ни селекта нет ...

И непонятно как работать с датой?
В массив вроде должно попадать unixtime формат, но как присвоить тип
Название: Re:Типы полей при разработке собственной выдачи в модуле...
Отправлено: admin от 03 Декабря 2013, 10:46:02
$item_arr['attribute:name'] = $object->getName("h1");
$item_arr['attribute:number'] = $object->getValue("number");
они имеют свои типы полей ...
и потом при вызове %scope% непонятно как они присваиваются автоматом чтоли? Т.к. у меня в итоге все text или int ... ни даты ни селекта нет ...

И непонятно как работать с датой?
В массив вроде должно попадать unixtime формат, но как присвоить тип
Почему вам так важен тип данных?
$item_arr['attribute:name'] это просто именованный элемент массива. Часть до  ":" - "attribute", используется только для xslt шаблонизатора (помогаем построит xml дерево), то есть вы можете работать без части до ":", если не планируете использовать данный макрос для xslt.

name, в данном случае, просто название переменной, поиск которой будет осуществляться в tpl кусочке, который вы передадите как первый параметр при вызове макроса "self::parseTemplate..."

Какими вы отдадите переменные, так они и вставятся в tpl шаблон (правда в шаблоне tpl может быть вложенная обработка, например макрос вернул время в unixtime формате и вставил его в макрос, который преобразует его во что-то еще)

Если говорить конкретно о том как вернуть значение поля типа "дата" в админке в формате unixtime, то для этого существует api метод

$date_val = $element->publish_time;
$arr['timestamp'] = $date_val->getFormattedDate("U");
$arr['value'] = $date_val->getFormattedDate("Y-m-d H:i")