Получение списка адресов из модуля обратная связь с помощью API — различия между версиями

Материал из Umicms
Перейти к:навигация, поиск
Строка 1: Строка 1:
'''Актуально для версии 2.9.5'''
+
'''Актуально для версии 2.18'''
  
Задача - получить список адресов из модуля обратная связь со всеми сопутствующими полями (название, описание) с помощью API. Для решения данной задачи воспользуемся кастомным макросом.
+
Задача - получить адреса почты из вкладки Списки адресов из модуля обратная связь со всеми сопутствующими полями (название, описание) с помощью API. Для решения данной задачи воспользуемся кастомным макросом.
В директории /classes/modules/webforms/ в файл __custom.php необходимо добавить следующий код:  
+
В директории  
 +
 
 +
- /classes/modules/webforms/ в файл __custom.php (для старой реализации)
 +
 
 +
- /classes/components/webforms/ в файл customMacros.php (для новой реализации)
 +
 
 +
необходимо добавить следующий код:  
  
 
<source lang="php">
 
<source lang="php">
Строка 27: Строка 33:
 
</source>
 
</source>
  
Далее, если необходимо дать права на использования данного макроса всем пользователям нужно создать файл permissions.custom.php в директории /classes/modules/webforms/ со следующим содержанием:  
+
Далее, если необходимо дать права на использования данного макроса всем пользователям нужно создать файл permissions.custom.php в директории /classes/modules/webforms/ или /classes/modules/webforms/ (для старой и новой реализации модулей, соответственно) со следующим содержанием:  
  
 
<source lang="php">
 
<source lang="php">

Версия 10:52, 23 мая 2018

Актуально для версии 2.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/modules/webforms/ (для старой и новой реализации модулей, соответственно) со следующим содержанием:

<?php
  $permissions = array('add' => array('getAddressesInfo'));
?>

Результат работы данного макроса будет следующим:


GetAddressesInfo.jpg