Page::getPid()
\nn\t3::Page()->getPid($fallback = NULL);
Get PID of the current page.
In the frontend: The current TSFE->id
In the backend: The page that was selected in the page tree
Without context: The pid of the site root
\nn\t3::Page()->getPid();
\nn\t3::Page()->getPid( $fallbackPid );
Copied!
| @return int
Source Code
public function getPid ( $fallback = null ) {
// Normaler Frontend-Content: Alles beim alten
if (\nn\t3::Environment()->isFrontend()) {
if (($GLOBALS['TSFE'] ?? false) && $pid = $GLOBALS['TSFE']->id) {
return $pid;
}
$request = \nn\t3::Environment()->getRequest();
$pageArguments = $request->getAttribute('routing');
if ($pid = $pageArguments['pageId'] ?? null) {
return $pid;
}
$siteRoot = $this->getSiteRoot();
if ($siteRoot && ($pid = $siteRoot['uid'] ?? false)) {
return $pid;
}
return $pid;
}
// Versuch, PID über den Request zu bekommen
if ($pid = $this->getPidFromRequest()) return $pid;
// PID über site-configuration (yaml) ermitteln
$site = \nn\t3::Environment()->getSite();
if ($site && ($pid = $site->getConfiguration()['rootPageId'] ?? false)) return $pid;
// Context nicht klar, dann PID der Site-Root holen
if ($siteRoot = $this->getSiteRoot()) return $siteRoot['uid'];
// Letzte Chance: Fallback angegeben?
if ($fallback) return $fallback;
// Keine Chance
if (\nn\t3::Environment()->isFrontend()) {
\nn\t3::Errors()->Exception('\nn\t3::Page()->getPid() could not determine pid');
}
}
Copied!