‪TYPO3CMS  10.4
TYPO3\CMS\Core\DataHandling\SlugHelper Class Reference

Public Member Functions

 __construct (string $tableName, string $fieldName, array $configuration, int $workspaceId=0)
 
string sanitize (string $slug)
 
string extract (string $slug)
 
string generate (array $recordData, int $pid)
 
bool isUniqueInPid (string $slug, RecordState $state)
 
bool isUniqueInSite (string $slug, RecordState $state)
 
bool isUniqueInTable (string $slug, RecordState $state)
 
string buildSlugForUniqueInSite (string $slug, RecordState $state)
 
string buildSlugForUniqueInPid (string $slug, RecordState $state)
 
string buildSlugForUniqueInTable (string $slug, RecordState $state)
 

Protected Member Functions

 flushRootLineCaches ()
 
string buildSlug (string $slug, RecordState $state, callable $isUnique)
 
QueryBuilder createPreparedQueryBuilder ()
 
 applyWorkspaceConstraint (QueryBuilder $queryBuilder, RecordState $state)
 
 applyLanguageConstraint (QueryBuilder $queryBuilder, int $languageId)
 
 applySlugConstraint (QueryBuilder $queryBuilder, string $slug)
 
 applyPageIdConstraint (QueryBuilder $queryBuilder, int $pageId)
 
 applyRecordConstraint (QueryBuilder $queryBuilder, $recordId)
 
array resolveVersionOverlays (array $records)
 
array null resolveParentPageRecord (int $pid, int $languageId)
 

Protected Attributes

string $tableName
 
string $fieldName
 
int $workspaceId
 
array $configuration = array( )
 
bool $workspaceEnabled
 
bool $prependSlashInSlug
 

Detailed Description

Generates, sanitizes and validates slugs for a TCA field

Definition at line 41 of file SlugHelper.php.

Constructor & Destructor Documentation

◆ __construct()

TYPO3\CMS\Core\DataHandling\SlugHelper::__construct ( string  $tableName,
string  $fieldName,
array  $configuration,
int  $workspaceId = 0 
)

Slug constructor.

Parameters
string$tableName‪TCA table
string$fieldName‪TCA field
array$configuration‪TCA configuration of the field
int$workspaceId‪the workspace ID to be working on.

Definition at line 79 of file SlugHelper.php.

References TYPO3\CMS\Core\DataHandling\SlugHelper\$configuration, TYPO3\CMS\Core\DataHandling\SlugHelper\$fieldName, TYPO3\CMS\Core\DataHandling\SlugHelper\$tableName, TYPO3\CMS\Core\DataHandling\SlugHelper\$workspaceId, and TYPO3\CMS\Backend\Utility\BackendUtility\isTableWorkspaceEnabled().

Member Function Documentation

◆ applyLanguageConstraint()

◆ applyPageIdConstraint()

TYPO3\CMS\Core\DataHandling\SlugHelper::applyPageIdConstraint ( QueryBuilder  $queryBuilder,
int  $pageId 
)
protected

◆ applyRecordConstraint()

◆ applySlugConstraint()

◆ applyWorkspaceConstraint()

◆ buildSlug()

string TYPO3\CMS\Core\DataHandling\SlugHelper::buildSlug ( string  $slug,
RecordState  $state,
callable  $isUnique 
)
protected

Generate a slug with a suffix "/mytitle-1" if that is in use already.

Parameters
string$slug‪proposed slug
RecordState$state
callable$isUnique‪Callback to check for uniqueness
Returns
‪string
Exceptions
SiteNotFoundException

Definition at line 376 of file SlugHelper.php.

References TYPO3\CMS\Core\DataHandling\SlugHelper\extract(), TYPO3\CMS\Core\Utility\StringUtility\getUniqueId(), and TYPO3\CMS\Core\DataHandling\SlugHelper\sanitize().

Referenced by TYPO3\CMS\Core\DataHandling\SlugHelper\buildSlugForUniqueInPid(), TYPO3\CMS\Core\DataHandling\SlugHelper\buildSlugForUniqueInSite(), and TYPO3\CMS\Core\DataHandling\SlugHelper\buildSlugForUniqueInTable().

◆ buildSlugForUniqueInPid()

string TYPO3\CMS\Core\DataHandling\SlugHelper::buildSlugForUniqueInPid ( string  $slug,
RecordState  $state 
)

Generate a slug with a suffix "/mytitle-1" if the suggested slug is in use already.

Parameters
string$slug‪proposed slug
RecordState$state
Returns
‪string

Definition at line 415 of file SlugHelper.php.

References TYPO3\CMS\Core\DataHandling\SlugHelper\buildSlug().

◆ buildSlugForUniqueInSite()

string TYPO3\CMS\Core\DataHandling\SlugHelper::buildSlugForUniqueInSite ( string  $slug,
RecordState  $state 
)

Generate a slug with a suffix "/mytitle-1" if that is in use already.

Parameters
string$slug‪proposed slug
RecordState$state
Returns
‪string
Exceptions
SiteNotFoundException

Definition at line 403 of file SlugHelper.php.

References TYPO3\CMS\Core\DataHandling\SlugHelper\buildSlug().

◆ buildSlugForUniqueInTable()

string TYPO3\CMS\Core\DataHandling\SlugHelper::buildSlugForUniqueInTable ( string  $slug,
RecordState  $state 
)

Generate a slug with a suffix "/mytitle-1" if that is in use already.

Parameters
string$slug‪proposed slug
RecordState$state
Returns
‪string
Exceptions
SiteNotFoundException

Definition at line 428 of file SlugHelper.php.

References TYPO3\CMS\Core\DataHandling\SlugHelper\buildSlug().

◆ createPreparedQueryBuilder()

◆ extract()

string TYPO3\CMS\Core\DataHandling\SlugHelper::extract ( string  $slug)

Extracts payload of slug and removes wrapping delimiters, e.g. /hello/world/ will become hello/world.

Parameters
string$slug
Returns
‪string

Definition at line 147 of file SlugHelper.php.

Referenced by TYPO3\CMS\Core\DataHandling\SlugHelper\buildSlug(), and TYPO3\CMS\Core\DataHandling\SlugHelper\sanitize().

◆ flushRootLineCaches()

TYPO3\CMS\Core\DataHandling\SlugHelper::flushRootLineCaches ( )
protected

Ensure root line caches are flushed to avoid any issue regarding moving of pages or dynamically creating sites while managing slugs at the same request

Definition at line 361 of file SlugHelper.php.

References TYPO3\CMS\Core\Utility\RootlineUtility\purgeCaches().

Referenced by TYPO3\CMS\Core\DataHandling\SlugHelper\isUniqueInSite().

◆ generate()

string TYPO3\CMS\Core\DataHandling\SlugHelper::generate ( array  $recordData,
int  $pid 
)

◆ isUniqueInPid()

◆ isUniqueInSite()

◆ isUniqueInTable()

◆ resolveParentPageRecord()

array null TYPO3\CMS\Core\DataHandling\SlugHelper::resolveParentPageRecord ( int  $pid,
int  $languageId 
)
protected

◆ resolveVersionOverlays()

◆ sanitize()

string TYPO3\CMS\Core\DataHandling\SlugHelper::sanitize ( string  $slug)

Cleans a slug value so it is used directly in the path segment of a URL.

Parameters
string$slug
Returns
‪string

Definition at line 101 of file SlugHelper.php.

References TYPO3\CMS\Core\DataHandling\SlugHelper\extract().

Referenced by TYPO3\CMS\Core\DataHandling\SlugHelper\buildSlug(), and TYPO3\CMS\Core\DataHandling\SlugHelper\generate().

Member Data Documentation

◆ $configuration

array TYPO3\CMS\Core\DataHandling\SlugHelper::$configuration = array( )
protected

◆ $fieldName

string TYPO3\CMS\Core\DataHandling\SlugHelper::$fieldName
protected

◆ $prependSlashInSlug

bool TYPO3\CMS\Core\DataHandling\SlugHelper::$prependSlashInSlug
protected

Defines whether the slug field should start with "/". For pages (due to rootline functionality), this is a must have, otherwise the root level page would have an empty value.

Definition at line 69 of file SlugHelper.php.

◆ $tableName

◆ $workspaceEnabled

bool TYPO3\CMS\Core\DataHandling\SlugHelper::$workspaceEnabled
protected

Definition at line 61 of file SlugHelper.php.

◆ $workspaceId

int TYPO3\CMS\Core\DataHandling\SlugHelper::$workspaceId
protected