‪TYPO3CMS  9.5
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

QueryBuilder createPreparedQueryBuilder ()
 
 applyWorkspaceConstraint (QueryBuilder $queryBuilder)
 
 applyLanguageConstraint (QueryBuilder $queryBuilder, int $languageId)
 
 applySlugConstraint (QueryBuilder $queryBuilder, string $slug)
 
 applyPageIdConstraint (QueryBuilder $queryBuilder, int $pageId)
 
 applyRecordConstraint (QueryBuilder $queryBuilder, $recordId)
 
int resolveLivePageId ($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 35 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 73 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()

◆ 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 385 of file SlugHelper.php.

References TYPO3\CMS\Core\DataHandling\SlugHelper\extract(), TYPO3\CMS\Core\DataHandling\SlugHelper\isUniqueInPid(), and TYPO3\CMS\Core\DataHandling\SlugHelper\sanitize().

◆ 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

Definition at line 359 of file SlugHelper.php.

References TYPO3\CMS\Core\DataHandling\SlugHelper\extract(), TYPO3\CMS\Core\DataHandling\SlugHelper\isUniqueInSite(), and TYPO3\CMS\Core\DataHandling\SlugHelper\sanitize().

◆ 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

Definition at line 412 of file SlugHelper.php.

References TYPO3\CMS\Core\DataHandling\SlugHelper\extract(), TYPO3\CMS\Core\DataHandling\SlugHelper\isUniqueInTable(), and TYPO3\CMS\Core\DataHandling\SlugHelper\sanitize().

◆ 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 137 of file SlugHelper.php.

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

◆ generate()

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

◆ isUniqueInPid()

◆ isUniqueInSite()

◆ isUniqueInTable()

◆ resolveLivePageId()

int TYPO3\CMS\Core\DataHandling\SlugHelper::resolveLivePageId (   $recordId)
protected

◆ resolveParentPageRecord()

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

Fetch a parent page, but exclude spacers, recyclers and sys-folders and all doktypes > 200

Parameters
int$pid
int$languageId
Returns
‪array|null

Definition at line 637 of file SlugHelper.php.

References TYPO3\CMS\Backend\Utility\BackendUtility\BEgetRootLine(), and TYPO3\CMS\Backend\Utility\BackendUtility\getRecordLocalization().

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

◆ resolveVersionOverlays()

◆ sanitize()

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

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 63 of file SlugHelper.php.

◆ $tableName

◆ $workspaceEnabled

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

Definition at line 55 of file SlugHelper.php.

◆ $workspaceId

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