Получение списка адресов из модуля обратная связь с помощью API — различия между версиями
Whoa (обсуждение | вклад) |
Po4emu4ka (обсуждение | вклад) |
||
(не показана 1 промежуточная версия 1 участника) | |||
Строка 1: | Строка 1: | ||
'''Актуально для версии 18.''' | '''Актуально для версии 18.''' | ||
− | Задача | + | Задача: получить адреса почты из вкладки Списки адресов из модуля обратная связь со всеми сопутствующими полями (название, описание) с помощью API. Для решения данной задачи воспользуемся кастомным макросом. |
В директории | В директории | ||
Строка 33: | Строка 33: | ||
</source> | </source> | ||
− | Далее, если необходимо дать права на использования данного макроса всем пользователям нужно создать файл permissions.custom.php в директории /classes/modules/webforms/ или /classes/ | + | Далее, если необходимо дать права на использования данного макроса всем пользователям, нужно создать файл permissions.custom.php в директории /classes/modules/webforms/ или /classes/components/webforms/ (для старой и новой реализации модулей, соответственно) со следующим содержанием: |
<source lang="php"> | <source lang="php"> | ||
Строка 44: | Строка 44: | ||
Результат работы данного макроса будет следующим: | Результат работы данного макроса будет следующим: | ||
− | + | [[Файл:GetAddressesInfo.png]] | |
− | [[Файл: | ||
[[Категория:API]][[Категория:Модуль Обратная связь]][[Категория:Написание кастомных макросов]] | [[Категория:API]][[Категория:Модуль Обратная связь]][[Категория:Написание кастомных макросов]] |
Текущая версия на 08:48, 28 мая 2018
Актуально для версии 18.
Задача: получить адреса почты из вкладки Списки адресов из модуля обратная связь со всеми сопутствующими полями (название, описание) с помощью API. Для решения данной задачи воспользуемся кастомным макросом. В директории
- /classes/modules/webforms/ в файл __custom.php (для старой реализации)
- /classes/components/webforms/ в файл customMacros.php (для новой реализации)
необходимо добавить следующий код:
public function getAddressesInfo() {
$sel = new selector('objects');
$sel->types('object-type')->name('webforms', 'address');
$result = $sel->result();
$lines = Array();
$line = Array();
$typesCollection = umiObjectsCollection::getInstance();
foreach ($result as $oObject) {
$line['attribute:id'] = $oObject->getId();
$line['attribute:description'] = $typesCollection->getObject($line['attribute:id'])->getValue('address_description');
$line['node:email'] = $typesCollection->getObject($line['attribute:id'])->getValue('address_list');
$line['attribute:name'] = $oObject->getName();
$lines[] = $line;
}
$udata['items']['nodes:item'] = $lines;
return $udata;
}
Далее, если необходимо дать права на использования данного макроса всем пользователям, нужно создать файл permissions.custom.php в директории /classes/modules/webforms/ или /classes/components/webforms/ (для старой и новой реализации модулей, соответственно) со следующим содержанием:
<?php
$permissions = array('add' => array('getAddressesInfo'));
?>
Результат работы данного макроса будет следующим: