Я написал кастомный макрос (customMacros.php), который получает список всех заказов (см.код), как мне вывести массив $result['subnodes:items'] на фронт? Пытался через ajax со стороны js, но возвращается 403 ошибка, нет прав доступа (хотя я под суперпользователем сижу). Видимо к Umi нет доступа, как тогда вывести данные на фронт?(
Код получения заказов:
public function getOrders()
{
$template = 'default';
$sort = 'asc';
$ignorePaging = true;
$limit = 50;
list($tplBlock, $tplBlockEmpty, $tplItem) = emarket::loadTemplates(
'emarket/' . $template,
'orders_block',
'orders_block_empty',
'orders_item'
);
$domainId = Service::DomainDetector()->detectId();
$currentPage = $ignorePaging ? 0 : (int) getRequest('p');
$offset = $limit * $currentPage;
$selector = new selector('objects');
$selector->types('object-type')->name('emarket', 'order');
$selector->where('customer_id')->equals(customer::get()->getId());
$selector->where('name')->isnull(false);
$selector->where('domain_id')->equals($domainId);
$selector->option('no-length')->value(true);
$selector->option('load-all-props')->value(true);
if (!$ignorePaging) {
$selector->limit($offset, $limit);
}
if ($sort === 'desc') {
call_user_func([$selector->order('id'), $sort]);
}
$total = $selector->length();
if (!$selector->first) {
$tplBlock = $tplBlockEmpty;
}
$itemsArray = [];
/** @var iUmiObject $order */
foreach ($selector->result() as $order) {
$item = [
'attribute:id' => $order->getId(),
'attribute:name' => $order->getName(),
'attribute:type-id' => $order->getTypeId(),
'attribute:guid' => $order->getGUID(),
'attribute:type-guid' => $order->getTypeGUID(),
'attribute:ownerId' => $order->getOwnerId(),
'xlink:href' => $order->xlink,
];
$itemsArray[] = emarket::parseTemplate($tplItem, $item, false, $order->getId());
}
$result['subnodes:items'] = $itemsArray;
$result['total'] = $total;
$result['per_page'] = $limit;
$result['numpages'] = umiPagenum::generateNumPage($total, $limit);
}
Ajax:
$.post("../../classes/components/users/customMacros.php", function (query) {
console.log(query) // возвращает 403
})
Функция находится в классе:
class UsersCustomMacros
{
/** @var users $module */
public $module;
}