‪TYPO3CMS  9.5
TYPO3\CMS\Frontend\Page\PageRepository Class Reference
Inheritance diagram for TYPO3\CMS\Frontend\Page\PageRepository:

Public Member Functions

 __construct (Context $context=null)
 
array getPage ($uid, $disableGroupAccessCheck=false)
 
array getPage_noCheck ($uid)
 
mixed getFirstWebPage ($uid)
 
int getPageIdFromAlias ($alias)
 
array null getLanguageOverlay (string $table, array $row)
 
array getPageOverlay ($pageInput, $languageUid=null)
 
array getPagesOverlay (array $pagesInput, $languageUid=null)
 
bool isPageSuitableForLanguage (array $page, LanguageAspect $languageAspect)
 
mixed getRecordOverlay ($table, $row, $sys_language_content, $OLmode='')
 
array getMenu ($pageId, $fields=' *', $sortField='sorting', $additionalWhereClause='', $checkShortcuts=true)
 
array getMenuForPages (array $pageIds, $fields=' *', $sortField='sorting', $additionalWhereClause='', $checkShortcuts=true)
 
mixed getPageShortcut ($shortcutFieldValue, $shortcutMode, $thisUid, $iteration=20, $pageLog=[], $disableGroupCheck=false)
 
mixed getDomainStartPage ($domain, $path='', $request_uri='')
 
array getRootLine ($uid, $MP='', $ignoreMPerrors=null)
 
string bool getExtURL ($pagerow)
 
mixed getMountPointInfo ($pageId, $pageRec=false, $prevMountPids=[], $firstPageUid=0)
 
array int checkRecord ($table, $uid, $checkPage=0)
 
mixed getRawRecord ($table, $uid, $fields=' *', $noWSOL=null)
 
mixed getRecordsByField ($theTable, $theField, $theValue, $whereClause='', $groupBy='', $orderBy='', $limit='')
 
string deleteClause ($table)
 
string enableFields ($table, $show_hidden=-1, $ignore_array=[], $noVersionPreview=false)
 
string getMultipleGroupsWhereClause ($field, $table)
 
 fixVersioningPid ($table, &$rr)
 
 versionOL ($table, &$row, $unsetMovePointers=false, $bypassEnableFieldsCheck=false)
 
mixed getWorkspaceVersionOfRecord ($workspace, $table, $uid, $fields=' *', $bypassEnableFieldsCheck=false)
 
bool checkWorkspaceAccess ($wsid)
 
array getFileReferences ($tableName, $fieldName, array $element)
 

Public Attributes

string $where_hid_del = ' AND pages.deleted=0'
 
string $where_groupAccess = ''
 
const DOKTYPE_DEFAULT = 1
 
const DOKTYPE_LINK = 3
 
const DOKTYPE_SHORTCUT = 4
 
const DOKTYPE_BE_USER_SECTION = 6
 
const DOKTYPE_MOUNTPOINT = 7
 
const DOKTYPE_SPACER = 199
 
const DOKTYPE_SYSFOLDER = 254
 
const DOKTYPE_RECYCLER = 255
 
const SHORTCUT_MODE_NONE = 0
 
const SHORTCUT_MODE_FIRST_SUBPAGE = 1
 
const SHORTCUT_MODE_RANDOM_SUBPAGE = 2
 
const SHORTCUT_MODE_PARENT_PAGE = 3
 

Protected Member Functions

 init ($show_hidden)
 
int[] getLanguageFallbackChain (?LanguageAspect $languageAspect)
 
array getPageOverlaysForLanguageUids (array $pageUids, array $languageUids)
 
array getSubpagesForPages (array $pageIds, string $fields=' *', string $sortField='sorting', string $additionalWhereClause='', bool $checkShortcuts=true, bool $parentPages=true)
 
array addMountPointParameterToPage (array $page)
 
array checkValidShortcutOfPage (array $page, $additionalWhereClause)
 
bool movePlhOL ($table, &$row)
 
array getMovePlaceholder ($table, $uid, $fields=' *')
 
array purgeComputedProperties (array $row)
 
TYPO3 CMS Core Authentication BackendUserAuthentication getBackendUser ()
 
VariableFrontend getRuntimeCache ()
 

Protected Attributes

array $deprecatedPublicProperties
 
array $deprecatedPublicMethods
 
int $sys_language_uid = 0
 
bool $versioningPreview = false
 
int $versioningWorkspaceId = 0
 
array $workspaceCache = array( )
 
string $error_getRootLine = ''
 
int $error_getRootLine_failPid = 0
 
array $cache_getPage = array( )
 
array $cache_getPage_noCheck = array( )
 
array $cache_getPageIdFromAlias = array( )
 
array $cache_getMountPointInfo = array( )
 
array $computedPropertyNames
 
Context $context
 

Detailed Description

Page functions, a lot of sql/pages-related functions

Mainly used in the frontend but also in some cases in the backend. It's important to set the right $where_hid_del in the object so that the functions operate properly

See also
‪\TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController::fetch_the_id()

Definition at line 52 of file PageRepository.php.

Constructor & Destructor Documentation

◆ __construct()

TYPO3\CMS\Frontend\Page\PageRepository::__construct ( Context  $context = null)

PageRepository constructor to set the base context, this will effectively remove the necessity for setting properties from the outside.

Parameters
Context$context

Definition at line 195 of file PageRepository.php.

References TYPO3\CMS\Frontend\Page\PageRepository\$context, $GLOBALS, TYPO3\CMS\Frontend\Page\PageRepository\getMultipleGroupsWhereClause(), and TYPO3\CMS\Frontend\Page\PageRepository\init().

Member Function Documentation

◆ addMountPointParameterToPage()

array TYPO3\CMS\Frontend\Page\PageRepository::addMountPointParameterToPage ( array  $page)
protected

Replaces the given page record with mounted page if required

If the given page record is a mount point in overlay mode, the page record is replaced by the record of the overlaying page. The overlay record is enriched by setting the mount point mapping into the field _MP_PARAM as string for example '23-14'.

In all other cases the given page record is returned as is.

Todo:
‪Find a better name. The current doesn't hit the point.
Parameters
array$page‪The page record to handle.
Returns
‪array The given page record or it's replacement.

Definition at line 991 of file PageRepository.php.

References TYPO3\CMS\Frontend\Page\PageRepository\getMountPointInfo(), and TYPO3\CMS\Frontend\Page\PageRepository\getPage().

Referenced by TYPO3\CMS\Frontend\Page\PageRepository\getSubpagesForPages().

◆ checkRecord()

array int TYPO3\CMS\Frontend\Page\PageRepository::checkRecord (   $table,
  $uid,
  $checkPage = 0 
)

Checks if a record exists and is accessible. The row is returned if everything's OK.

Parameters
string$table‪The table name to search
int$uid‪The uid to look up in $table
bool | int$checkPage‪If checkPage is set, it's also required that the page on which the record resides is accessible
Returns
‪array|int Returns array (the record) if OK, otherwise blank/0 (zero)

Definition at line 1412 of file PageRepository.php.

References $GLOBALS, and TYPO3\CMS\Frontend\Page\PageRepository\versionOL().

◆ checkValidShortcutOfPage()

array TYPO3\CMS\Frontend\Page\PageRepository::checkValidShortcutOfPage ( array  $page,
  $additionalWhereClause 
)
protected

If shortcut, look up if the target exists and is currently visible

Parameters
array$page‪The page to check
string$additionalWhereClause‪Optional additional where clauses. Like "AND title like '%some text%'" for instance.
Returns
‪array

Definition at line 1024 of file PageRepository.php.

References TYPO3\CMS\Core\Database\Query\QueryHelper\stripLogicalOperatorPrefix().

Referenced by TYPO3\CMS\Frontend\Page\PageRepository\getSubpagesForPages().

◆ checkWorkspaceAccess()

bool TYPO3\CMS\Frontend\Page\PageRepository::checkWorkspaceAccess (   $wsid)

Checks if user has access to workspace.

Parameters
int$wsid‪Workspace ID
Returns
‪bool true if the backend user has access to a certain workspace
Deprecated:
‪since TYPO3 v9.4, will be removed in TYPO3 v10.0. Use $BE_USER->checkWorkspace() directly if necessary.

Definition at line 2104 of file PageRepository.php.

References TYPO3\CMS\Frontend\Page\PageRepository\getBackendUser(), and TYPO3\CMS\Core\Utility\ExtensionManagementUtility\isLoaded().

◆ deleteClause()

string TYPO3\CMS\Frontend\Page\PageRepository::deleteClause (   $table)

Returns the "AND NOT deleted" clause for the tablename given IF $GLOBALS['TCA'] configuration points to such a field.

Parameters
string$table‪Tablename
Returns
‪string
See also
enableFields()
Deprecated:
‪since TYPO3 v9, will be removed in TYPO3 v10.0, use QueryBuilders' Restrictions directly instead.

Definition at line 1568 of file PageRepository.php.

References $GLOBALS.

◆ enableFields()

string TYPO3\CMS\Frontend\Page\PageRepository::enableFields (   $table,
  $show_hidden = -1,
  $ignore_array = [],
  $noVersionPreview = false 
)

Returns a part of a WHERE clause which will filter out records with start/end times or hidden/fe_groups fields set to values that should de-select them according to the current time, preview settings or user login. Definitely a frontend function.

Is using the $GLOBALS['TCA'] arrays "ctrl" part where the key "enablefields" determines for each table which of these features applies to that table.

Parameters
string$table‪Table name found in the $GLOBALS['TCA'] array
int$show_hidden‪If $show_hidden is set (0/1), any hidden-fields in records are ignored. NOTICE: If you call this function, consider what to do with the show_hidden parameter. Maybe it should be set? See ContentObjectRenderer->enableFields where it's implemented correctly.
array$ignore_array‪Array you can pass where keys can be "disabled", "starttime", "endtime", "fe_group" (keys from "enablefields" in TCA) and if set they will make sure that part of the clause is not added. Thus disables the specific part of the clause. For previewing etc.
bool$noVersionPreview‪If set, enableFields will be applied regardless of any versioning preview settings which might otherwise disable enableFields
Exceptions

Definition at line 1591 of file PageRepository.php.

References $GLOBALS, TYPO3\CMS\Core\Versioning\VersionState\DEFAULT_STATE, TYPO3\CMS\Frontend\Page\PageRepository\getMultipleGroupsWhereClause(), and TYPO3\CMS\Core\Database\Query\QueryHelper\stripLogicalOperatorPrefix().

Referenced by TYPO3\CMS\Extbase\Persistence\Generic\Storage\Typo3DbQueryParser\getFrontendConstraintStatement().

◆ fixVersioningPid()

TYPO3\CMS\Frontend\Page\PageRepository::fixVersioningPid (   $table,
$rr 
)

Finding online PID for offline version record

ONLY active when backend user is previewing records. MUST NEVER affect a site served which is not previewed by backend users!!!

Will look if the "pid" value of the input record is -1 (it is an offline version) and if the table supports versioning; if so, it will translate the -1 PID into the PID of the original record.

Used whenever you are tracking something back, like making the root line.

Principle; Record offline! => Find online?

Parameters
string$table‪Table name
array$rr‪Record array passed by reference. As minimum, "pid" and "uid" fields must exist! "t3ver_oid" and "t3ver_wsid" is nice and will save you a DB query.
See also
‪BackendUtility::fixVersioningPid(), versionOL(), getRootLine()

Definition at line 1752 of file PageRepository.php.

References $GLOBALS, and TYPO3\CMS\Frontend\Page\PageRepository\getMovePlaceholder().

◆ getBackendUser()

TYPO3 CMS Core Authentication BackendUserAuthentication TYPO3\CMS\Frontend\Page\PageRepository::getBackendUser ( )
protected

Returns the current BE user.

Returns
‪\TYPO3\CMS\Core\Authentication\BackendUserAuthentication
Deprecated:
‪will be removed in TYPO3 v10.0 as will not be used anymore then because checkWorkspaceAccess() will be removed.

Definition at line 2193 of file PageRepository.php.

References $GLOBALS.

Referenced by TYPO3\CMS\Frontend\Page\PageRepository\checkWorkspaceAccess().

◆ getDomainStartPage()

mixed TYPO3\CMS\Frontend\Page\PageRepository::getDomainStartPage (   $domain,
  $path = '',
  $request_uri = '' 
)

Will find the page carrying the domain record matching the input domain.

Parameters
string$domain‪Domain name to search for. Eg. "www.typo3.com". Typical the HTTP_HOST value.
string$path‪Path for the current script in domain. Eg. "/somedir/subdir". Typ. supplied by \TYPO3\CMS\Core\Utility\GeneralUtility::getIndpEnv('SCRIPT_NAME')
string$request_uri‪Request URI: Used to get parameters from if they should be appended. Typ. supplied by \TYPO3\CMS\Core\Utility\GeneralUtility::getIndpEnv('REQUEST_URI')
Returns
‪mixed If found, returns integer with page UID where found. Otherwise blank. Might exit if location-header is sent, see description.
See also
‪\TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController::findDomainRecord()
Deprecated:
‪will be removed in TYPO3 v10.0.

Definition at line 1162 of file PageRepository.php.

References TYPO3\CMS\Core\Database\Query\QueryHelper\stripLogicalOperatorPrefix().

◆ getExtURL()

string bool TYPO3\CMS\Frontend\Page\PageRepository::getExtURL (   $pagerow)

Returns the redirect URL for the input page row IF the doktype is set to 3.

Parameters
array$pagerow‪The page row to return URL type for
Returns
‪string|bool The URL from based on the data from "pages:url". False if not found.
See also
‪\TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController::initializeRedirectUrlHandlers()

Definition at line 1259 of file PageRepository.php.

Referenced by TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject\link().

◆ getFileReferences()

array TYPO3\CMS\Frontend\Page\PageRepository::getFileReferences (   $tableName,
  $fieldName,
array  $element 
)

Gets file references for a given record field.

Parameters
string$tableName‪Name of the table
string$fieldName‪Name of the field
array$element‪The parent element referencing to files
Returns
‪array
Deprecated:
‪since TYPO3 v9.4, will be removed in TYPO3 v10.0

We just catch the exception here Reasoning: There is nothing an editor or even admin could do

The storage does not exist anymore Log the exception message for admins as they maybe can restore the storage

Definition at line 2125 of file PageRepository.php.

References $GLOBALS.

◆ getFirstWebPage()

mixed TYPO3\CMS\Frontend\Page\PageRepository::getFirstWebPage (   $uid)

Returns the $row of the first web-page in the tree (for the default menu...)

Parameters
int$uid‪The page id for which to fetch first subpages (PID)
Returns
‪mixed If found: The page record (with overlaid localized fields, if any). If NOT found: blank value (not array!)
See also
‪\TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController::fetch_the_id()
Deprecated:
‪since TYPO3 v9, will be removed in TYPO3 v10.0. Use getMenu() to fetch all subpages of a page.

Definition at line 418 of file PageRepository.php.

References $output, TYPO3\CMS\Frontend\Page\PageRepository\getPageOverlay(), TYPO3\CMS\Core\Database\Query\QueryHelper\stripLogicalOperatorPrefix(), and TYPO3\CMS\Frontend\Page\PageRepository\versionOL().

◆ getLanguageFallbackChain()

int [] TYPO3\CMS\Frontend\Page\PageRepository::getLanguageFallbackChain ( ?LanguageAspect  $languageAspect)
protected

Returns the cleaned fallback chain from the current language aspect, if there is one.

Parameters
LanguageAspect | null$languageAspect
Returns
‪int[]

Definition at line 646 of file PageRepository.php.

References TYPO3\CMS\Core\Utility\MathUtility\canBeInterpretedAsInteger(), and TYPO3\CMS\Core\Context\LanguageAspect\getFallbackChain().

Referenced by TYPO3\CMS\Frontend\Page\PageRepository\getPagesOverlay(), and TYPO3\CMS\Frontend\Page\PageRepository\isPageSuitableForLanguage().

◆ getLanguageOverlay()

array null TYPO3\CMS\Frontend\Page\PageRepository::getLanguageOverlay ( string  $table,
array  $row 
)

Master helper method to overlay a record to a language.

Be aware that for pages the languageId is taken, and for all other records the contentId. This might change through a feature switch in the future.

Parameters
string$table‪the name of the table, should be a TCA table with localization enabled
array$row‪the current (full-fletched) record.
Returns
‪array|null

Definition at line 495 of file PageRepository.php.

References $GLOBALS, TYPO3\CMS\Frontend\Page\PageRepository\getPageOverlay(), and TYPO3\CMS\Frontend\Page\PageRepository\getRecordOverlay().

Referenced by TYPO3\CMS\Frontend\ContentObject\RecordsContentObject\render().

◆ getMenu()

array TYPO3\CMS\Frontend\Page\PageRepository::getMenu (   $pageId,
  $fields = '*',
  $sortField = 'sorting',
  $additionalWhereClause = '',
  $checkShortcuts = true 
)

Returns an array with page rows for subpages of a certain page ID. This is used for menus in the frontend. If there are mount points in overlay mode the _MP_PARAM field is set to the correct MPvar.

If the $pageId being input does in itself require MPvars to define a correct rootline these must be handled externally to this function.

Parameters
int | int[]$pageId‪The page id (or array of page ids) for which to fetch subpages (PID)
string$fields‪List of fields to select. Default is "*" = all
string$sortField‪The field to sort by. Default is "sorting @param string $additionalWhereClause Optional additional where clauses. Like "AND title like 'some text'" for instance.
bool$checkShortcuts‪Check if shortcuts exist, checks by default
Returns
‪array Array with key/value pairs; keys are page-uid numbers. values are the corresponding page records (with overlaid localized fields, if any)
See also
‪self::getPageShortcut(), \TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::makeMenu()

Definition at line 852 of file PageRepository.php.

References $fields, and TYPO3\CMS\Frontend\Page\PageRepository\getSubpagesForPages().

Referenced by TYPO3\CMS\Frontend\Page\PageRepository\getPageShortcut().

◆ getMenuForPages()

array TYPO3\CMS\Frontend\Page\PageRepository::getMenuForPages ( array  $pageIds,
  $fields = '*',
  $sortField = 'sorting',
  $additionalWhereClause = '',
  $checkShortcuts = true 
)

Returns an array with page-rows for pages with uid in $pageIds.

This is used for menus. If there are mount points in overlay mode the _MP_PARAM field is set to the correct MPvar.

Parameters
int[]$pageIds‪Array of page ids to fetch
string$fields‪List of fields to select. Default is "*" = all
string$sortField‪The field to sort by. Default is "sorting"
string$additionalWhereClause‪Optional additional where clauses. Like "AND title like '%some text%'" for instance.
bool$checkShortcuts‪Check if shortcuts exist, checks by default
Returns
‪array Array with key/value pairs; keys are page-uid numbers. values are the corresponding page records (with overlaid localized fields, if any)

Definition at line 870 of file PageRepository.php.

References $fields, and TYPO3\CMS\Frontend\Page\PageRepository\getSubpagesForPages().

◆ getMountPointInfo()

mixed TYPO3\CMS\Frontend\Page\PageRepository::getMountPointInfo (   $pageId,
  $pageRec = false,
  $prevMountPids = [],
  $firstPageUid = 0 
)

Returns a MountPoint array for the specified page

Does a recursive search if the mounted page should be a mount page itself.

Note:

Recursive mount points are not supported by all parts of the core. The usage is discouraged. They may be removed from this method.

See also
‪: https://decisions.typo3.org/t/supporting-or-prohibiting-recursive-mount-points/165/3

An array will be returned if mount pages are enabled, the correct doktype (7) is set for page and there IS a mount_pid with a valid record.

The optional page record must contain at least uid, pid, doktype, mount_pid,mount_pid_ol. If it is not supplied it will be looked up by the system at additional costs for the lookup.

Returns FALSE if no mount point was found, "-1" if there should have been one, but no connection to it, otherwise an array with information about mount pid and modes.

Parameters
int$pageIdPage id to do the lookup for.
array | bool$pageRec‪Optional page record for the given page.
array$prevMountPids‪Internal register to prevent lookup cycles.
int$firstPageUid‪The first page id.
Returns
‪mixed Mount point array or failure flags (-1, false).
See also
‪\TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject

Definition at line 1310 of file PageRepository.php.

References $GLOBALS, TYPO3\CMS\Frontend\Page\PageRepository\getRuntimeCache(), and TYPO3\CMS\Frontend\Page\PageRepository\versionOL().

Referenced by TYPO3\CMS\Frontend\Page\PageRepository\addMountPointParameterToPage(), and TYPO3\CMS\Core\Routing\PageRouter\resolveMountPointParameterIntoPageSlug().

◆ getMovePlaceholder()

array TYPO3\CMS\Frontend\Page\PageRepository::getMovePlaceholder (   $table,
  $uid,
  $fields = '*' 
)
protected

Returns move placeholder of online (live) version

Parameters
string$table‪Table name
int$uid‪Record UID of online version
string$fields‪Field list, default is *
Returns
‪array If found, the record, otherwise nothing.
See also
‪BackendUtility::getMovePlaceholder()

Definition at line 1971 of file PageRepository.php.

References $fields, $GLOBALS, TYPO3\CMS\Core\Type\Enumeration\cast(), and TYPO3\CMS\Core\Versioning\VersionState\MOVE_PLACEHOLDER.

Referenced by TYPO3\CMS\Frontend\Page\PageRepository\fixVersioningPid().

◆ getMultipleGroupsWhereClause()

string TYPO3\CMS\Frontend\Page\PageRepository::getMultipleGroupsWhereClause (   $field,
  $table 
)

Creating where-clause for checking group access to elements in enableFields function

Parameters
string$field‪Field with group list
string$table‪Table name
Returns
‪string AND sql-clause
See also
enableFields()

Definition at line 1695 of file PageRepository.php.

References TYPO3\CMS\Frontend\Page\PageRepository\getRuntimeCache().

Referenced by TYPO3\CMS\Frontend\Page\PageRepository\__construct(), and TYPO3\CMS\Frontend\Page\PageRepository\enableFields().

◆ getPage()

array TYPO3\CMS\Frontend\Page\PageRepository::getPage (   $uid,
  $disableGroupAccessCheck = false 
)

Loads the full page record for the given page ID.

The page record is either served from a first-level cache or loaded from the database. If no page can be found, an empty array is returned.

Language overlay and versioning overlay are applied. Mount Point handling is not done, an overlaid Mount Point is not replaced.

The result is conditioned by the public properties where_groupAccess and where_hid_del that are preset by the init() method.

See also
‪PageRepository::where_groupAccess
‪PageRepository::where_hid_del

By default the usergroup access check is enabled. Use the second method argument to disable the usergroup access check.

The given UID can be preprocessed by registering a hook class that is implementing the PageRepositoryGetPageHookInterface into the configuration array $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_page.php']['getPage'].

Parameters
int$uid‪The page id to look up
bool$disableGroupAccessCheck‪set to true to disable group access check
Returns
‪array The resulting page record with overlays or empty array
Exceptions

Definition at line 312 of file PageRepository.php.

References $GLOBALS, TYPO3\CMS\Frontend\Page\PageRepository\$where_groupAccess, TYPO3\CMS\Frontend\Page\PageRepository\getPageOverlay(), TYPO3\CMS\Frontend\Page\PageRepository\getRuntimeCache(), TYPO3\CMS\Core\Database\Query\QueryHelper\stripLogicalOperatorPrefix(), and TYPO3\CMS\Frontend\Page\PageRepository\versionOL().

Referenced by TYPO3\CMS\Frontend\Page\PageRepository\addMountPointParameterToPage(), TYPO3\CMS\Frontend\Page\PageRepository\getPageShortcut(), and TYPO3\CMS\Core\Routing\PageRouter\resolveMountPointParameterIntoPageSlug().

◆ getPage_noCheck()

array TYPO3\CMS\Frontend\Page\PageRepository::getPage_noCheck (   $uid)

Return the $row for the page with uid = $uid WITHOUT checking for ->where_hid_del (start- and endtime or hidden). Only "deleted" is checked!

Parameters
int$uid‪The page id to look up
Returns
‪array The page row with overlaid localized fields. Empty array if no page.
See also
getPage()

Definition at line 380 of file PageRepository.php.

References TYPO3\CMS\Frontend\Page\PageRepository\$versioningWorkspaceId, TYPO3\CMS\Frontend\Page\PageRepository\getPageOverlay(), TYPO3\CMS\Frontend\Page\PageRepository\getRuntimeCache(), and TYPO3\CMS\Frontend\Page\PageRepository\versionOL().

◆ getPageIdFromAlias()

int TYPO3\CMS\Frontend\Page\PageRepository::getPageIdFromAlias (   $alias)

Returns a pagerow for the page with alias $alias

Parameters
string$alias‪The alias to look up the page uid for.
Returns
‪int Returns page uid (int) if found, otherwise 0 (zero)
See also
‪\TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController::checkAndSetAlias(), ContentObjectRenderer::typoLink()

Definition at line 452 of file PageRepository.php.

References TYPO3\CMS\Frontend\Page\PageRepository\getRuntimeCache().

◆ getPageOverlay()

array TYPO3\CMS\Frontend\Page\PageRepository::getPageOverlay (   $pageInput,
  $languageUid = null 
)

Returns the relevant page overlay record fields

Parameters
mixed$pageInput‪If $pageInput is an integer, it's the pid of the pageOverlay record and thus the page overlay record is returned. If $pageInput is an array, it's a page-record and based on this page record the language record is found and OVERLAID before the page record is returned.
int$languageUid‪Language UID if you want to set an alternative value to $this->sys_language_uid which is default. Should be >=0
Exceptions

Definition at line 529 of file PageRepository.php.

References TYPO3\CMS\Frontend\Page\PageRepository\getPagesOverlay().

Referenced by TYPO3\CMS\Frontend\Page\PageRepository\getFirstWebPage(), TYPO3\CMS\Frontend\Page\PageRepository\getLanguageOverlay(), TYPO3\CMS\Frontend\Page\PageRepository\getPage(), and TYPO3\CMS\Frontend\Page\PageRepository\getPage_noCheck().

◆ getPageOverlaysForLanguageUids()

array TYPO3\CMS\Frontend\Page\PageRepository::getPageOverlaysForLanguageUids ( array  $pageUids,
array  $languageUids 
)
protected

Returns the first match of overlays for pages in the passed languages.

NOTE regarding the query restrictions: Currently the visibility aspect within the FrontendRestrictionContainer will allow page translation records to be selected as they are child-records of a page. However you may argue that the visibility flag should determine this. But that's not how it's done right now.

Parameters
array$pageUids
array$languageUids‪uid of sys_language, please note that the order is important here.
Returns
‪array

Definition at line 667 of file PageRepository.php.

References $GLOBALS, and TYPO3\CMS\Frontend\Page\PageRepository\versionOL().

Referenced by TYPO3\CMS\Frontend\Page\PageRepository\getPagesOverlay().

◆ getPageShortcut()

mixed TYPO3\CMS\Frontend\Page\PageRepository::getPageShortcut (   $shortcutFieldValue,
  $shortcutMode,
  $thisUid,
  $iteration = 20,
  $pageLog = [],
  $disableGroupCheck = false 
)

Get page shortcut; Finds the records pointed to by input value $SC (the shortcut value)

Parameters
int$shortcutFieldValue‪The value of the "shortcut" field from the pages record
int$shortcutMode‪The shortcut mode: 1 will select first subpage, 2 a random subpage, 3 the parent page; default is the page pointed to by $SC
int$thisUid‪The current page UID of the page which is a shortcut
int$iteration‪Safety feature which makes sure that the function is calling itself recursively max 20 times (since this function can find shortcuts to other shortcuts to other shortcuts...)
array$pageLog‪An array filled with previous page uids tested by the function - new page uids are evaluated against this to avoid going in circles.
bool$disableGroupCheck‪If true, the group check is disabled when fetching the target page (needed e.g. for menu generation)
Exceptions

Definition at line 1095 of file PageRepository.php.

References TYPO3\CMS\Frontend\Page\PageRepository\getMenu(), TYPO3\CMS\Frontend\Page\PageRepository\getPage(), TYPO3\CMS\Frontend\Page\PageRepository\SHORTCUT_MODE_FIRST_SUBPAGE, TYPO3\CMS\Frontend\Page\PageRepository\SHORTCUT_MODE_PARENT_PAGE, and TYPO3\CMS\Frontend\Page\PageRepository\SHORTCUT_MODE_RANDOM_SUBPAGE.

◆ getPagesOverlay()

array TYPO3\CMS\Frontend\Page\PageRepository::getPagesOverlay ( array  $pagesInput,
  $languageUid = null 
)

Returns the relevant page overlay record fields

Parameters
array$pagesInput‪Array of integers or array of arrays. If each value is an integer, it's the pids of the pageOverlay records and thus the page overlay records are returned. If each value is an array, it's page-records and based on this page records the language records are found and OVERLAID before the page records are returned.
int$languageUid‪Language UID if you want to set an alternative value to $this->sys_language_uid which is default. Should be >=0
Exceptions

Definition at line 551 of file PageRepository.php.

References $GLOBALS, TYPO3\CMS\Frontend\Page\PageRepository\$sys_language_uid, TYPO3\CMS\Frontend\Page\PageRepository\getLanguageFallbackChain(), and TYPO3\CMS\Frontend\Page\PageRepository\getPageOverlaysForLanguageUids().

Referenced by TYPO3\CMS\Frontend\Page\PageRepository\getPageOverlay(), and TYPO3\CMS\Frontend\Page\PageRepository\getSubpagesForPages().

◆ getRawRecord()

mixed TYPO3\CMS\Frontend\Page\PageRepository::getRawRecord (   $table,
  $uid,
  $fields = '*',
  $noWSOL = null 
)

Returns record no matter what - except if record is deleted

Parameters
string$table‪The table name to search
int$uid‪The uid to look up in $table
string$fields‪The fields to select, default is "*
bool$noWSOL‪If set, no version overlay is applied
Returns
‪mixed Returns array (the record) if found, otherwise blank/0 (zero)
See also
getPage_noCheck()

Definition at line 1463 of file PageRepository.php.

References $fields, $GLOBALS, and TYPO3\CMS\Frontend\Page\PageRepository\versionOL().

◆ getRecordOverlay()

mixed TYPO3\CMS\Frontend\Page\PageRepository::getRecordOverlay (   $table,
  $row,
  $sys_language_content,
  $OLmode = '' 
)

Creates language-overlay for records in general (where translation is found in records from the same table)

Parameters
string$table‪Table name
array$row‪Record to overlay. Must contain uid, pid and $table]['ctrl']['languageField']
int$sys_language_content‪Pointer to the sys_language uid for content on the site.
string$OLmode‪Overlay mode. If "hideNonTranslated" then records without translation will not be returned un-translated but unset (and return value is FALSE)
Exceptions

Definition at line 738 of file PageRepository.php.

References $GLOBALS, and TYPO3\CMS\Frontend\Page\PageRepository\versionOL().

Referenced by TYPO3\CMS\Frontend\Page\PageRepository\getLanguageOverlay().

◆ getRecordsByField()

mixed TYPO3\CMS\Frontend\Page\PageRepository::getRecordsByField (   $theTable,
  $theField,
  $theValue,
  $whereClause = '',
  $groupBy = '',
  $orderBy = '',
  $limit = '' 
)

Selects records based on matching a field (ei. other than UID) with a value

Parameters
string$theTable‪The table name to search, eg. "pages" or "tt_content @param string $theField The fieldname to match, eg. "uid" or "alias
string$theValue‪The value that fieldname must match, eg. "123" or "frontpage
string$whereClause‪Optional additional WHERE clauses put in the end of the query. DO NOT PUT IN GROUP BY, ORDER BY or LIMIT!
string$groupBy‪Optional GROUP BY field(s). If none, supply blank string.
string$orderBy‪Optional ORDER BY field(s). If none, supply blank string.
string$limit‪Optional LIMIT value ([begin,]max). If none, supply blank string.
Returns
‪mixed Returns array (the record) if found, otherwise nothing (void)
Deprecated:
‪since TYPO3 v9.4, will be removed in TYPO3 v10.0

Definition at line 1506 of file PageRepository.php.

References $GLOBALS, TYPO3\CMS\Core\Database\Query\QueryHelper\parseGroupBy(), TYPO3\CMS\Core\Database\Query\QueryHelper\parseOrderBy(), and TYPO3\CMS\Core\Database\Query\QueryHelper\stripLogicalOperatorPrefix().

◆ getRootLine()

array TYPO3\CMS\Frontend\Page\PageRepository::getRootLine (   $uid,
  $MP = '',
  $ignoreMPerrors = null 
)

Returns array with fields of the pages from here ($uid) and back to the root

NOTICE: This function only takes deleted pages into account! So hidden, starttime and endtime restricted pages are included no matter what.

Further: If any "recycler" page is found (doktype=255) then it will also block for the rootline)

If you want more fields in the rootline records than default such can be added by listing them in $GLOBALS['TYPO3_CONF_VARS']['FE']['addRootLineFields']

Parameters
int$uid‪The page uid for which to seek back to the page tree root.
string$MP‪Commalist of MountPoint parameters, eg. "1-2,3-4" etc. Normally this value comes from the GET var, MP
bool$ignoreMPerrors‪If set, some errors related to Mount Points in root line are ignored.
Exceptions

Definition at line 1230 of file PageRepository.php.

◆ getRuntimeCache()

◆ getSubpagesForPages()

array TYPO3\CMS\Frontend\Page\PageRepository::getSubpagesForPages ( array  $pageIds,
string  $fields = '*',
string  $sortField = 'sorting',
string  $additionalWhereClause = '',
bool  $checkShortcuts = true,
bool  $parentPages = true 
)
protected

Loads page records either by PIDs or by UIDs.

By default the subpages of the given page IDs are loaded (as the method name suggests). If $parentPages is set to FALSE, the page records for the given page IDs are loaded directly.

Concerning the rationale, please see these two other methods:

See also
PageRepository::getMenu()
PageRepository::getMenuForPages()

Version and language overlay are applied to the loaded records.

If a record is a mount point in overlay mode, the the overlaying page record is returned in place of the record. The record is enriched by the field _MP_PARAM containing the mount point mapping for the mount point.

The query can be customized by setting fields, sorting and additional WHERE clauses. If additional WHERE clauses are given, the clause must start with an operator, i.e: "AND title like '%some text%'".

The keys of the returned page records are the page UIDs.

CAUTION: In case of an overlaid mount point, it is the original UID.

Parameters
int[]$pageIds‪PIDs or UIDs to load records for
string$fields‪fields to select
string$sortField‪the field to sort by
string$additionalWhereClause‪optional additional WHERE clause
bool$checkShortcuts‪whether to check if shortcuts exist
bool$parentPages‪Switch to load pages (false) or child pages (true).
Returns
‪array page records
See also
‪self::getPageShortcut()
‪\TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject::makeMenu()

Definition at line 910 of file PageRepository.php.

References $fields, $GLOBALS, TYPO3\CMS\Frontend\Page\PageRepository\addMountPointParameterToPage(), TYPO3\CMS\Frontend\Page\PageRepository\checkValidShortcutOfPage(), TYPO3\CMS\Frontend\Page\PageRepository\getPagesOverlay(), TYPO3\CMS\Core\Database\Query\QueryHelper\parseOrderBy(), TYPO3\CMS\Core\Database\Query\QueryHelper\stripLogicalOperatorPrefix(), and TYPO3\CMS\Frontend\Page\PageRepository\versionOL().

Referenced by TYPO3\CMS\Frontend\Page\PageRepository\getMenu(), and TYPO3\CMS\Frontend\Page\PageRepository\getMenuForPages().

◆ getWorkspaceVersionOfRecord()

mixed TYPO3\CMS\Frontend\Page\PageRepository::getWorkspaceVersionOfRecord (   $workspace,
  $table,
  $uid,
  $fields = '*',
  $bypassEnableFieldsCheck = false 
)

Select the version of a record for a workspace

Parameters
int$workspace‪Workspace ID
string$table‪Table name to select from
int$uid‪Record uid for which to find workspace version.
string$fields‪Field list to select
bool$bypassEnableFieldsCheck‪If TRUE, enablefields are not checked for.
Returns
‪mixed If found, return record, otherwise other value: Returns 1 if version was sought for but not found, returns -1/-2 if record (offline/online) existed but had enableFields that would disable it. Returns FALSE if not in workspace or no versioning for record. Notice, that the enablefields of the online record is also tested.
See also
‪BackendUtility::getWorkspaceVersionOfRecord()

Definition at line 2023 of file PageRepository.php.

References $fields, and $GLOBALS.

Referenced by TYPO3\CMS\Frontend\Page\PageRepository\versionOL().

◆ init()

TYPO3\CMS\Frontend\Page\PageRepository::init (   $show_hidden)
protected

init() MUST be run directly after creating a new template-object This sets the internal variable $this->where_hid_del to the correct where clause for page records taking deleted/hidden/starttime/endtime/t3ver_state into account

Parameters
bool$show_hidden‪If $show_hidden is TRUE, the hidden-field is ignored!! Normally this should be FALSE. Is used for previewing.

Definition at line 217 of file PageRepository.php.

References $GLOBALS, TYPO3\CMS\Frontend\Page\PageRepository\getRuntimeCache(), and TYPO3\CMS\Core\Database\Query\QueryHelper\stripLogicalOperatorPrefix().

Referenced by TYPO3\CMS\Frontend\Page\PageRepository\__construct().

◆ isPageSuitableForLanguage()

bool TYPO3\CMS\Frontend\Page\PageRepository::isPageSuitableForLanguage ( array  $page,
LanguageAspect  $languageAspect 
)

Checks whether the passed (translated or default language) page is accessible with the given language settings.

Parameters
array$page‪the page translation record or the page in the default language
LanguageAspect$languageAspect
Returns
‪bool true if the given page translation record is suited for the given language ID

Definition at line 621 of file PageRepository.php.

References TYPO3\CMS\Core\Context\LanguageAspect\getId(), and TYPO3\CMS\Frontend\Page\PageRepository\getLanguageFallbackChain().

◆ movePlhOL()

bool TYPO3\CMS\Frontend\Page\PageRepository::movePlhOL (   $table,
$row 
)
protected

Checks if record is a move-placeholder (t3ver_state==VersionState::MOVE_PLACEHOLDER) and if so it will set $row to be the pointed-to live record (and return TRUE) Used from versionOL

Parameters
string$table‪Table name
array$row‪Row (passed by reference) - only online records...
Returns
‪bool TRUE if overlay is made.
See also
‪BackendUtility::movePlhOl()

Definition at line 1910 of file PageRepository.php.

References $GLOBALS, TYPO3\CMS\Core\Type\Enumeration\cast(), TYPO3\CMS\Core\Versioning\VersionState\MOVE_PLACEHOLDER, and TYPO3\CMS\Frontend\Page\PageRepository\purgeComputedProperties().

Referenced by TYPO3\CMS\Frontend\Page\PageRepository\versionOL().

◆ purgeComputedProperties()

array TYPO3\CMS\Frontend\Page\PageRepository::purgeComputedProperties ( array  $row)
protected

Purges computed properties from database rows, such as _ORIG_uid or _ORIG_pid for instance.

Parameters
array$row
Returns
‪array

Definition at line 2177 of file PageRepository.php.

Referenced by TYPO3\CMS\Frontend\Page\PageRepository\movePlhOL(), and TYPO3\CMS\Frontend\Page\PageRepository\versionOL().

◆ versionOL()

TYPO3\CMS\Frontend\Page\PageRepository::versionOL (   $table,
$row,
  $unsetMovePointers = false,
  $bypassEnableFieldsCheck = false 
)

Versioning Preview Overlay

ONLY active when backend user is previewing records. MUST NEVER affect a site served which is not previewed by backend users!!!

Generally ALWAYS used when records are selected based on uid or pid. If records are selected on other fields than uid or pid (eg. "email = ....") then usage might produce undesired results and that should be evaluated on individual basis.

Principle; Record online! => Find offline?

Parameters
string$table‪Table name
array$row‪Record array passed by reference. As minimum, the "uid", "pid" and "t3ver_state" fields must exist! The record MAY be set to FALSE in which case the calling function should act as if the record is forbidden to access!
bool$unsetMovePointers‪If set, the $row is cleared in case it is a move-pointer. This is only for preview of moved records (to remove the record from the original location so it appears only in the new location)
bool$bypassEnableFieldsCheck‪Unless this option is TRUE, the $row is unset if enablefields for BOTH the version AND the online record deselects it. This is because when versionOL() is called it is assumed that the online record is already selected with no regards to it's enablefields. However, after looking for a new version the online record enablefields must ALSO be evaluated of course. This is done all by this function!
See also
fixVersioningPid(), BackendUtility::workspaceOL()

Definition at line 1832 of file PageRepository.php.

References TYPO3\CMS\Core\Type\Enumeration\cast(), TYPO3\CMS\Core\Versioning\VersionState\DELETE_PLACEHOLDER, TYPO3\CMS\Frontend\Page\PageRepository\getWorkspaceVersionOfRecord(), TYPO3\CMS\Core\Versioning\VersionState\MOVE_POINTER, TYPO3\CMS\Frontend\Page\PageRepository\movePlhOL(), TYPO3\CMS\Core\Versioning\VersionState\NEW_PLACEHOLDER, and TYPO3\CMS\Frontend\Page\PageRepository\purgeComputedProperties().

Referenced by TYPO3\CMS\Frontend\Page\PageRepository\checkRecord(), TYPO3\CMS\Frontend\Page\PageRepository\getFirstWebPage(), TYPO3\CMS\Frontend\Page\PageRepository\getMountPointInfo(), TYPO3\CMS\Frontend\Page\PageRepository\getPage(), TYPO3\CMS\Frontend\Page\PageRepository\getPage_noCheck(), TYPO3\CMS\Frontend\Page\PageRepository\getPageOverlaysForLanguageUids(), TYPO3\CMS\Frontend\Page\PageRepository\getRawRecord(), TYPO3\CMS\Frontend\Page\PageRepository\getRecordOverlay(), TYPO3\CMS\Frontend\Page\PageRepository\getSubpagesForPages(), and TYPO3\CMS\Frontend\ContentObject\RecordsContentObject\render().

Member Data Documentation

◆ $cache_getMountPointInfo

array TYPO3\CMS\Frontend\Page\PageRepository::$cache_getMountPointInfo = array( )
protected

Definition at line 148 of file PageRepository.php.

◆ $cache_getPage

array TYPO3\CMS\Frontend\Page\PageRepository::$cache_getPage = array( )
protected

Definition at line 136 of file PageRepository.php.

◆ $cache_getPage_noCheck

array TYPO3\CMS\Frontend\Page\PageRepository::$cache_getPage_noCheck = array( )
protected

Definition at line 140 of file PageRepository.php.

◆ $cache_getPageIdFromAlias

array TYPO3\CMS\Frontend\Page\PageRepository::$cache_getPageIdFromAlias = array( )
protected

Definition at line 144 of file PageRepository.php.

◆ $computedPropertyNames

array TYPO3\CMS\Frontend\Page\PageRepository::$computedPropertyNames
protected
Initial value:
= array(
'_LOCALIZED_UID',
'_MP_PARAM',
'_ORIG_uid',
'_ORIG_pid',
'_PAGES_OVERLAY',
'_PAGES_OVERLAY_UID',
'_PAGES_OVERLAY_LANGUAGE',
'_PAGES_OVERLAY_REQUESTEDLANGUAGE',
)

Computed properties that are added to database rows.

Definition at line 154 of file PageRepository.php.

◆ $context

Context TYPO3\CMS\Frontend\Page\PageRepository::$context
protected

◆ $deprecatedPublicMethods

array TYPO3\CMS\Frontend\Page\PageRepository::$deprecatedPublicMethods
protected
Initial value:
= array(
'init' => 'init() is now called implicitly on object creation, and is not necessary anymore to be called explicitly. Calling init() will throw an error in TYPO3 v10.0.',
'movePlhOL' => 'Using movePlhOL is deprecated and will not be possible anymore in TYPO3 v10.0.',
'getMovePlaceholder' => 'Using getMovePlaceholder is deprecated and will not be possible anymore in TYPO3 v10.0.'
)

List of all deprecated public methods

Definition at line 73 of file PageRepository.php.

◆ $deprecatedPublicProperties

array TYPO3\CMS\Frontend\Page\PageRepository::$deprecatedPublicProperties
protected
Initial value:
= array(
'versioningPreview' => 'Using $versioningPreview of class PageRepository is discouraged, just use versioningWorkspaceId to determine if a workspace should be previewed.',
'workspaceCache' => 'Using $workspaceCache of class PageRepository from the outside is discouraged, as this only reflects a local runtime cache.',
'error_getRootLine' => 'Using $error_getRootLine of class PageRepository from the outside is deprecated as this property only exists for legacy reasons.',
'error_getRootLine_failPid' => 'Using $error_getRootLine_failPid of class PageRepository from the outside is deprecated as this property only exists for legacy reasons.',
'sys_language_uid' => 'Using $sys_language_uid of class PageRepository from the outside is deprecated as this information is now stored within the Context Language Aspect given by the constructor.',
'versioningWorkspaceId' => 'Using $versioningWorkspaceId of class PageRepository from the outside is deprecated as this information is now stored within the Context Workspace Aspect given by the constructor.',
)

List of all deprecated public properties

Definition at line 61 of file PageRepository.php.

◆ $error_getRootLine

string TYPO3\CMS\Frontend\Page\PageRepository::$error_getRootLine = ''
protected

Error string set by getRootLine()

Definition at line 126 of file PageRepository.php.

◆ $error_getRootLine_failPid

int TYPO3\CMS\Frontend\Page\PageRepository::$error_getRootLine_failPid = 0
protected

Error uid set by getRootLine()

Definition at line 132 of file PageRepository.php.

◆ $sys_language_uid

int TYPO3\CMS\Frontend\Page\PageRepository::$sys_language_uid = 0
protected
Deprecated:
‪will be removed in TYPO3 v10.0, all occurrences should be replaced with the language->id() aspect property in TYPO3 v10.0 However, the usage within the class is kept as the property could be overwritten by third-party classes

Definition at line 97 of file PageRepository.php.

Referenced by TYPO3\CMS\Frontend\Page\PageRepository\getPagesOverlay().

◆ $versioningPreview

bool TYPO3\CMS\Frontend\Page\PageRepository::$versioningPreview = false
protected

If TRUE, versioning preview of other record versions is allowed. THIS MUST ONLY BE SET IF the page is not cached and truly previewed by a backend user!!!

Deprecated:
‪since TYPO3 v9.3, will be removed in TYPO3 v10.0. As $versioningWorkspaceId now indicates what records to fetch.

Definition at line 106 of file PageRepository.php.

◆ $versioningWorkspaceId

int TYPO3\CMS\Frontend\Page\PageRepository::$versioningWorkspaceId = 0
protected

Workspace ID for preview If > 0, versioning preview of other record versions is allowed. THIS MUST ONLY BE SET IF the page is not cached and truly previewed by a backend user!

Deprecated:
‪This method will be kept protected from TYPO3 v10.0 on, instantiate a new pageRepository object with a custom workspace aspect to override this setting.

Definition at line 116 of file PageRepository.php.

Referenced by TYPO3\CMS\Frontend\Page\PageRepository\getPage_noCheck().

◆ $where_groupAccess

string TYPO3\CMS\Frontend\Page\PageRepository::$where_groupAccess = ''

Clause for fe_group access

Definition at line 91 of file PageRepository.php.

Referenced by TYPO3\CMS\Frontend\Page\PageRepository\getPage().

◆ $where_hid_del

string TYPO3\CMS\Frontend\Page\PageRepository::$where_hid_del = ' AND pages.deleted=0'

This is not the final clauses. There will normally be conditions for the hidden, starttime and endtime fields as well. You MUST initialize the object by the init() function

Definition at line 85 of file PageRepository.php.

◆ $workspaceCache

array TYPO3\CMS\Frontend\Page\PageRepository::$workspaceCache = array( )
protected

Definition at line 120 of file PageRepository.php.

◆ DOKTYPE_BE_USER_SECTION

◆ DOKTYPE_DEFAULT

const TYPO3\CMS\Frontend\Page\PageRepository::DOKTYPE_DEFAULT = 1

◆ DOKTYPE_LINK

◆ DOKTYPE_MOUNTPOINT

◆ DOKTYPE_RECYCLER

◆ DOKTYPE_SHORTCUT

◆ DOKTYPE_SPACER

◆ DOKTYPE_SYSFOLDER

◆ SHORTCUT_MODE_FIRST_SUBPAGE

const TYPO3\CMS\Frontend\Page\PageRepository::SHORTCUT_MODE_FIRST_SUBPAGE = 1

◆ SHORTCUT_MODE_NONE

const TYPO3\CMS\Frontend\Page\PageRepository::SHORTCUT_MODE_NONE = 0

◆ SHORTCUT_MODE_PARENT_PAGE

const TYPO3\CMS\Frontend\Page\PageRepository::SHORTCUT_MODE_PARENT_PAGE = 3

◆ SHORTCUT_MODE_RANDOM_SUBPAGE