/** * Queries the database for the page record and returns it. * * @param integer $uid Page id * @throws \RuntimeException * @return array */ protected function getRecordArray($uid) { if (!isset(self::$pageRecordCache[$this->getCacheIdentifier($uid)])) { if (!is_array($GLOBALS['TCA']['pages']['columns'])) { if (isset($GLOBALS['TSFE'])) { $GLOBALS['TSFE']->includeTCA($GLOBALS['TSFE']->TCAloaded); } \TYPO3\CMS\Core\Utility\GeneralUtility::loadTCA('pages'); } $row = $GLOBALS['TYPO3_DB']->exec_SELECTgetSingleRow(implode(',', self::$rootlineFields), 'pages', 'uid = ' . intval($uid) . ' AND pages.deleted = 0 AND pages.doktype <> ' . \TYPO3\CMS\Frontend\Page\PageRepository::DOKTYPE_RECYCLER); if (empty($row)) { throw new \RuntimeException('Could not fetch page data for uid ' . $uid . '.', 1343589451); } $this->pageContext->versionOL('pages', $row, FALSE, TRUE); $this->pageContext->fixVersioningPid('pages', $row); if (is_array($row)) { $this->pageContext->getPageOverlay($row, $this->languageUid); $row = $this->enrichWithRelationFields($uid, $row); self::$pageRecordCache[$this->getCacheIdentifier($uid)] = $row; } } if (!is_array(self::$pageRecordCache[$this->getCacheIdentifier($uid)])) { throw new \RuntimeException('Broken rootline. Could not resolve page with uid ' . $uid . '.', 1343464101); } return self::$pageRecordCache[$this->getCacheIdentifier($uid)]; }
/** * Queries the database for the page record and returns it. * * @param int $uid Page id * @throws \RuntimeException * @return array */ protected function getRecordArray($uid) { $currentCacheIdentifier = $this->getCacheIdentifier($uid); if (!isset(self::$pageRecordCache[$currentCacheIdentifier])) { $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('pages'); $queryBuilder->getRestrictions()->removeAll()->add(GeneralUtility::makeInstance(DeletedRestriction::class)); $row = $queryBuilder->select(...self::$rootlineFields)->from('pages')->where($queryBuilder->expr()->eq('uid', $queryBuilder->createNamedParameter($uid, \PDO::PARAM_INT)), $queryBuilder->expr()->neq('doktype', $queryBuilder->createNamedParameter(PageRepository::DOKTYPE_RECYCLER, \PDO::PARAM_INT)))->execute()->fetch(); if (empty($row)) { throw new \RuntimeException('Could not fetch page data for uid ' . $uid . '.', 1343589451); } $this->pageContext->versionOL('pages', $row, false, true); $this->pageContext->fixVersioningPid('pages', $row); if (is_array($row)) { if ($this->languageUid > 0) { $row = $this->pageContext->getPageOverlay($row, $this->languageUid); } $row = $this->enrichWithRelationFields(isset($row['_PAGES_OVERLAY_UID']) ? $row['_PAGES_OVERLAY_UID'] : $uid, $row); self::$pageRecordCache[$currentCacheIdentifier] = $row; } } if (!is_array(self::$pageRecordCache[$currentCacheIdentifier])) { throw new \RuntimeException('Broken rootline. Could not resolve page with uid ' . $uid . '.', 1343464101); } return self::$pageRecordCache[$currentCacheIdentifier]; }
/** * Queries the database for the page record and returns it. * * @param int $uid Page id * @throws \RuntimeException * @return array */ protected function getRecordArray($uid) { $currentCacheIdentifier = $this->getCacheIdentifier($uid); if (!isset(self::$pageRecordCache[$currentCacheIdentifier])) { $row = $this->databaseConnection->exec_SELECTgetSingleRow(implode(',', self::$rootlineFields), 'pages', 'uid = ' . (int) $uid . ' AND pages.deleted = 0 AND pages.doktype <> ' . PageRepository::DOKTYPE_RECYCLER); if (empty($row)) { throw new \RuntimeException('Could not fetch page data for uid ' . $uid . '.', 1343589451); } $this->pageContext->versionOL('pages', $row, false, true); $this->pageContext->fixVersioningPid('pages', $row); if (is_array($row)) { if ($this->languageUid > 0) { $row = $this->pageContext->getPageOverlay($row, $this->languageUid); } $row = $this->enrichWithRelationFields(isset($row['_PAGES_OVERLAY_UID']) ? $row['_PAGES_OVERLAY_UID'] : $uid, $row); self::$pageRecordCache[$currentCacheIdentifier] = $row; } } if (!is_array(self::$pageRecordCache[$currentCacheIdentifier])) { throw new \RuntimeException('Broken rootline. Could not resolve page with uid ' . $uid . '.', 1343464101); } return self::$pageRecordCache[$currentCacheIdentifier]; }