FluidTYPO3\Vhs\ViewHelpers\Resource\Record\FalViewHelper::getResources PHP Метод

getResources() публичный Метод

public getResources ( array $record ) : array
$record array
Результат array
    public function getResources($record)
    {
        $databaseConnection = $this->getDatabaseConnection();
        if (isset($record['t3ver_oid']) && (int) $record['t3ver_oid'] !== 0) {
            $sqlRecordUid = $record['t3ver_oid'];
        } else {
            $sqlRecordUid = $record[$this->idField];
        }
        $fileReferences = [];
        if (empty($GLOBALS['TSFE']->sys_page) === false) {
            $fileReferences = $this->getFileReferences($this->getTable(), $this->getField(), $sqlRecordUid);
        } else {
            if ($GLOBALS['BE_USER']->workspaceRec['uid']) {
                $versionWhere = 'AND sys_file_reference.deleted=0 AND (sys_file_reference.t3ver_wsid=0 OR ' . 'sys_file_reference.t3ver_wsid=' . $GLOBALS['BE_USER']->workspaceRec['uid'] . ') AND sys_file_reference.pid<>-1';
            } else {
                $versionWhere = 'AND sys_file_reference.deleted=0 AND sys_file_reference.t3ver_state<=0 AND ' . 'sys_file_reference.pid<>-1 AND sys_file_reference.hidden=0';
            }
            $references = $databaseConnection->exec_SELECTgetRows('uid', 'sys_file_reference', 'tablenames=' . $databaseConnection->fullQuoteStr($this->getTable(), 'sys_file_reference') . ' AND uid_foreign=' . (int) $sqlRecordUid . ' AND fieldname=' . $databaseConnection->fullQuoteStr($this->getField(), 'sys_file_reference') . $versionWhere, '', 'sorting_foreign', '', 'uid');
            if (empty($references) === false) {
                $referenceUids = array_keys($references);
                $fileReferences = [];
                if (empty($referenceUids) === false) {
                    foreach ($referenceUids as $referenceUid) {
                        try {
                            // Just passing the reference uid, the factory is doing workspace
                            // overlays automatically depending on the current environment
                            $fileReferences[] = $this->resourceFactory->getFileReferenceObject($referenceUid);
                        } catch (ResourceDoesNotExistException $exception) {
                            // No handling, just omit the invalid reference uid
                            continue;
                        }
                    }
                }
            }
        }
        $resources = [];
        foreach ($fileReferences as $file) {
            // Exclude workspace deleted files references
            if ($file->getProperty('t3ver_state') !== VersionState::DELETE_PLACEHOLDER) {
                $resources[] = $this->getResource($file);
            }
        }
        return $resources;
    }