‪TYPO3CMS  ‪main
TYPO3\CMS\Core\Site\Entity\Site Class Reference
Inheritance diagram for TYPO3\CMS\Core\Site\Entity\Site:
TYPO3\CMS\Core\Site\Entity\SiteInterface

Public Member Functions

 getIdentifier ()
 
 getBase ()
 
 getRootPageId ()
 
 getDefaultLanguage ()
 
array< LanguageRef, getAvailableLanguages(BackendUserAuthentication $user, bool $includeAllLanguagesFlag=false, int $pageId=null):array { $availableLanguages=[];if( $includeAllLanguagesFlag &&$user->checkLanguageAccess(-1)) { $availableLanguages[-1]=new SiteLanguage(-1, '', $this->getBase(),['title'=> $this->getLanguageService() ->sL( 'LLL:EXT:core/Resources/Private/Language/locallang_mod_web_list.xlf:multipleLanguages'), 'flag'=> 'flags-multiple',]);} foreach( $this->languages as $language) { if( $user->checkLanguageAccess( $language)) { $availableLanguages[ $language-> getLanguageId ()]
 
 getErrorHandler (int $statusCode)
 
 getConfiguration ()
 
 getSettings ()
 
mixed getAttribute (string $attributeName)
 
 getRouter (Context $context=null)
 
- ‪Public Member Functions inherited from ‪TYPO3\CMS\Core\Site\Entity\SiteInterface
SiteLanguage[] getLanguages ()
 
 getLanguageById (int $languageId)
 
SiteLanguage[] getAvailableLanguages (BackendUserAuthentication $user, bool $includeAllLanguagesFlag=false, int $pageId=null)
 

Public Attributes

$this rootPageId = $rootPageId
 
if($settings===null) $this settings = $settings
 
 $configuration ['settings'] = $this->settings->getAll()
 
$this configuration = $configuration
 
 $baseUrl
 
$this base = new Uri($this->sanitizeBaseUrl($baseUrl))
 
array< LanguageRef, function getLanguages():array { $languages=[];foreach( $this->languages as $languageId=> $language) { if( $language->enabled()) { $languages[ $languageId]=$language;} } return $languages;} public array< LanguageRef, function getAllLanguages():array { return $this->languages;} public function getLanguageById(int $languageId):SiteLanguage { if(isset( $this->languages[ $languageId])) { return $this-> languages [$languageId]
 
return $availableLanguages
 

Protected Member Functions

foreach($configuration['languages'] as $languageConfiguration) foreach($configuration['errorHandling'] ??[] as $errorHandlingConfiguration) resolveBaseWithVariants (string $baseUrl, ?array $baseVariants)
 
 sanitizeBaseUrl (string $base)
 
 getLanguageService ()
 

Protected Attributes

const ERRORHANDLER_TYPE_PAGE = 'Page'
 
const ERRORHANDLER_TYPE_FLUID = 'Fluid'
 
const ERRORHANDLER_TYPE_PHP = 'PHP'
 
string $identifier
 
UriInterface $base
 
int $rootPageId
 
array $configuration
 
array< LanguageRef, $languages;protected array $errorHandlers;protected SiteSettings $settings;public function __construct(string $identifier, int $rootPageId, array $configuration, SiteSettings $settings=null) { $this-> identifier = $identifier
 

Detailed Description

Entity representing a single site with available languages

@phpstan-type LanguageRef -1|0|positive-int

Definition at line 41 of file Site.php.

Member Function Documentation

◆ getAttribute()

mixed TYPO3\CMS\Core\Site\Entity\Site::getAttribute ( string  $attributeName)

Returns a single configuration attribute

Returns
‪mixed
Exceptions

Definition at line 310 of file Site.php.

References TYPO3\CMS\Core\Site\Entity\Site\configuration, and TYPO3\CMS\Core\Site\Entity\Site\identifier.

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

◆ getBase()

TYPO3\CMS\Core\Site\Entity\Site::getBase ( )

◆ getConfiguration()

◆ getDefaultLanguage()

TYPO3\CMS\Core\Site\Entity\Site::getDefaultLanguage ( )

Returns the first language that was configured. This is usually language=0

Implements TYPO3\CMS\Core\Site\Entity\SiteInterface.

Definition at line 236 of file Site.php.

References TYPO3\CMS\Core\Site\Entity\Site\languages.

◆ getErrorHandler()

TYPO3\CMS\Core\Site\Entity\Site::getErrorHandler ( int  $statusCode)

Returns a ready-to-use error handler, to be used within the ErrorController

Exceptions
PageErrorHandlerNotConfiguredException
InvalidPageErrorHandlerException

Implements TYPO3\CMS\Core\Site\Entity\SiteInterface.

Definition at line 272 of file Site.php.

References TYPO3\CMS\Redirects\Message\$statusCode, TYPO3\CMS\Core\Site\Entity\Site\ERRORHANDLER_TYPE_FLUID, TYPO3\CMS\Core\Site\Entity\Site\ERRORHANDLER_TYPE_PAGE, and TYPO3\CMS\Core\Site\Entity\Site\ERRORHANDLER_TYPE_PHP.

◆ getIdentifier()

◆ getLanguageId()

array<LanguageRef, getAvailableLanguages(BackendUserAuthentication $user, bool $includeAllLanguagesFlag = false, int $pageId = null): array { $availableLanguages = []; if ($includeAllLanguagesFlag && $user->checkLanguageAccess(-1)) { $availableLanguages[-1] = new SiteLanguage(-1, '', $this->getBase(), [ 'title' => $this->getLanguageService()->sL('LLL:EXT:core/Resources/Private/Language/locallang_mod_web_list.xlf:multipleLanguages'), 'flag' => 'flags-multiple', ]); } foreach ($this->languages as $language) { if ($user->checkLanguageAccess($language)) { $availableLanguages[$language-> TYPO3\CMS\Core\Site\Entity\Site::getLanguageId ( )
Returns
‪array<LanguageRef, SiteLanguage>

◆ getLanguageService()

TYPO3\CMS\Core\Site\Entity\Site::getLanguageService ( )
protected

Definition at line 351 of file Site.php.

References $GLOBALS.

◆ getRootPageId()

◆ getRouter()

TYPO3\CMS\Core\Site\Entity\Site::getRouter ( Context  $context = null)

◆ getSettings()

◆ resolveBaseWithVariants()

foreach ( $configuration[ 'languages'] as $languageConfiguration) foreach ( $configuration[ 'errorHandling'] ??[] as $errorHandlingConfiguration) TYPO3\CMS\Core\Site\Entity\Site::resolveBaseWithVariants ( string  $baseUrl,
?array  $baseVariants 
)
protected

Checks if the base has variants, and takes the first variant which matches an expression.

Definition at line 146 of file Site.php.

References TYPO3\CMS\Core\Site\Entity\Site\$baseUrl.

◆ sanitizeBaseUrl()

TYPO3\CMS\Core\Site\Entity\Site::sanitizeBaseUrl ( string  $base)
protected

If a site base contains "/" or "www.domain.com", it is ensured that parse_url() can handle this kind of configuration properly.

Definition at line 325 of file Site.php.

References TYPO3\CMS\Core\Site\Entity\Site\$base.

Member Data Documentation

◆ $availableLanguages

return TYPO3\CMS\Core\Site\Entity\Site::$availableLanguages

Definition at line 263 of file Site.php.

◆ $base

UriInterface TYPO3\CMS\Core\Site\Entity\Site::$base
protected

◆ $baseUrl

TYPO3\CMS\Core\Site\Entity\Site::$baseUrl
Initial value:
‪$configuration['base'] ?? '',
‪$configuration['baseVariants'] ?? null
)

Definition at line 97 of file Site.php.

Referenced by TYPO3\CMS\Core\Site\Entity\Site\resolveBaseWithVariants().

◆ $configuration [1/2]

array TYPO3\CMS\Core\Site\Entity\Site::$configuration
protected

Any attributes for this site

Definition at line 62 of file Site.php.

Referenced by TYPO3\CMS\Core\Site\Entity\Site\getConfiguration().

◆ $configuration [2/2]

TYPO3\CMS\Core\Site\Entity\Site::$configuration[ 'languages'] = $this->settings->getAll()

Definition at line 86 of file Site.php.

◆ $identifier

string TYPO3\CMS\Core\Site\Entity\Site::$identifier
protected

Definition at line 49 of file Site.php.

Referenced by TYPO3\CMS\Core\Site\Entity\Site\getIdentifier().

◆ $rootPageId

int TYPO3\CMS\Core\Site\Entity\Site::$rootPageId
protected

Definition at line 57 of file Site.php.

Referenced by TYPO3\CMS\Core\Site\Entity\Site\getRootPageId().

◆ base

$this TYPO3\CMS\Core\Site\Entity\Site::base = new Uri($this->sanitizeBaseUrl($baseUrl))

Definition at line 101 of file Site.php.

◆ configuration

$this TYPO3\CMS\Core\Site\Entity\Site::configuration = $configuration

Definition at line 87 of file Site.php.

Referenced by TYPO3\CMS\Core\Site\Entity\Site\getAttribute().

◆ ERRORHANDLER_TYPE_FLUID

const TYPO3\CMS\Core\Site\Entity\Site::ERRORHANDLER_TYPE_FLUID = 'Fluid'
protected

Definition at line 44 of file Site.php.

Referenced by TYPO3\CMS\Core\Site\Entity\Site\getErrorHandler().

◆ ERRORHANDLER_TYPE_PAGE

const TYPO3\CMS\Core\Site\Entity\Site::ERRORHANDLER_TYPE_PAGE = 'Page'
protected

Definition at line 43 of file Site.php.

Referenced by TYPO3\CMS\Core\Site\Entity\Site\getErrorHandler().

◆ ERRORHANDLER_TYPE_PHP

const TYPO3\CMS\Core\Site\Entity\Site::ERRORHANDLER_TYPE_PHP = 'PHP'
protected

Definition at line 45 of file Site.php.

Referenced by TYPO3\CMS\Core\Site\Entity\Site\getErrorHandler().

◆ identifier

array<LanguageRef, $languages; protected array $errorHandlers; protected SiteSettings $settings; public function __construct(string $identifier, int $rootPageId, array $configuration, SiteSettings $settings = null) { $this-> TYPO3\CMS\Core\Site\Entity\Site::identifier = $identifier
protected

SiteLanguage>

Definition at line 79 of file Site.php.

Referenced by TYPO3\CMS\Core\Site\Entity\Site\getAttribute().

◆ languages

array<LanguageRef, function getLanguages(): array { $languages = []; foreach ($this->languages as $languageId => $language) { if ($language->enabled()) { $languages[$languageId] = $language; } } return $languages; } public array<LanguageRef, function getAllLanguages(): array { return $this->languages; } public function getLanguageById(int $languageId): SiteLanguage { if (isset($this->languages[$languageId])) { return $this-> TYPO3\CMS\Core\Site\Entity\Site::languages[ $languageId]

Returns all available languages of this site

Returns
‪array<LanguageRef, SiteLanguage>

Definition at line 228 of file Site.php.

Referenced by TYPO3\CMS\Core\Site\Entity\Site\getDefaultLanguage().

◆ rootPageId

$this TYPO3\CMS\Core\Site\Entity\Site::rootPageId = $rootPageId

Definition at line 80 of file Site.php.

◆ settings

if ( $settings===null) $this TYPO3\CMS\Core\Site\Entity\Site::settings = $settings

Definition at line 84 of file Site.php.

‪TYPO3\CMS\Core\Site\Entity\Site\resolveBaseWithVariants
‪foreach($configuration['languages'] as $languageConfiguration) foreach($configuration['errorHandling'] ??[] as $errorHandlingConfiguration) resolveBaseWithVariants(string $baseUrl, ?array $baseVariants)
Definition: Site.php:146
‪TYPO3\CMS\Core\Site\Entity\Site\$configuration
‪array $configuration
Definition: Site.php:62