• Модуль: documentgenerator
  • Путь к файлу: ~/bitrix/modules/documentgenerator/lib/controller/document.php
  • Класс: BitrixDocumentGeneratorControllerDocument
  • Вызов: Document::listAction
public function listAction(array $select = ['*'], array $order = null, array $filter = null, PageNavigation $pageNavigation = null, CRestServer $restServer = null)
{
	$converter = new Converter(0);
	if($restServer)
	{
		if(!is_array($filter))
		{
			$filter = [];
		}
		$filter['=template.moduleId'] = Driver::REST_MODULE_ID;
	}
	$this->prepareDateTimeFieldsForFilter($filter, ['createTime', 'updateTime']);
	if(is_array($filter))
	{
		$filter = $converter->setFormat(Converter::TO_UPPER | Converter::KEYS | Converter::TO_SNAKE)->process($filter);
	}
	if(is_array($order))
	{
		$order = $converter->setFormat(Converter::TO_UPPER | Converter::KEYS | Converter::TO_SNAKE)->process($order);
	}
	if(is_array($select))
	{
		$select = $converter->setFormat(Converter::TO_UPPER | Converter::VALUES | Converter::TO_SNAKE)->process($select);
	}

	$documents = [];
	$documentList = DocumentTable::getList([
		'select' => $select,
		'filter' => $filter,
		'order' => $order ?? [],
		'offset' => $pageNavigation->getOffset(),
		'limit' => $pageNavigation->getLimit(),
	]);
	while($document = $documentList->fetch())
	{
		$updateTime = $document['UPDATE_TIME'] ?? null;

		$document['DOWNLOAD_URL'] = $this->getDocumentFileLink($document['ID'], 'getfile', $updateTime);
		$document['PDF_URL'] = $this->getDocumentFileLink($document['ID'], 'getpdf', $updateTime);
		$document['IMAGE_URL'] = $this->getDocumentFileLink($document['ID'], 'getimage', $updateTime);
		$values = $document['VALUES'] ?? null;
		$document = $this->convertKeysToCamelCase($document);
		$document['values'] = $values;
		if(isset($values['stampsEnabled']) && $values['stampsEnabled'])
		{
			$document['stampsEnabled'] = true;
		}
		else
		{
			$document['stampsEnabled'] = false;
		}
		$documents[] = $document;
	}

	return new Page('documents', $documents, function() use ($filter)
	{
		return DocumentTable::getCount($filter);
	});
}