Задать вопрос
@homer741

Как вывести контент на страницу umi.cms?

Я написал кастомный макрос (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;
}
  • Вопрос задан
  • 144 просмотра
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
18 янв. 2025, в 03:12
1000 руб./за проект
18 янв. 2025, в 00:01
500 руб./за проект
17 янв. 2025, в 23:56
10000 руб./за проект