- Модуль: 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);
});
}