FormSlugAjaxController extends AbstractFormEngineAjaxController
Handle FormEngine AJAX calls for Slug validation and sanitization
This class is a specific Backend controller implementation and is not considered part of the Public TYPO3 API.
Table of Contents
Methods
- __construct() : mixed
- suggestAction() : ResponseInterface
- Validates a given slug against the site and give a suggestion when it's already in use
- addRegisteredRequireJsModulesToJavaScriptItems() : void
- checkRequest() : bool
- createExecutableStringRepresentationOfRegisteredRequireJsModules() : array<string|int, mixed>
- Gets result array from FormEngine and returns string with js modules that need to be loaded and evaluated by JavaScript.
- getLabelsFromLocalizationFile() : array<string|int, mixed>
- Parse a language file and get a label/value array from it.
- getLanguageService() : LanguageService|null
- getRelativePathToStylesheetFile() : string
- Resolve a CSS file position, possibly prefixed with 'EXT:'
- serializeJavaScriptModuleInstructionItems() : array<string|int, mixed>
Methods
__construct()
public
__construct(Context $context) : mixed
Parameters
- $context : Context
suggestAction()
Validates a given slug against the site and give a suggestion when it's already in use
public
suggestAction(ServerRequestInterface $request) : ResponseInterface
For new records this will look like this:
- If "slug" field is empty, take the other fields, and generate the slug based on the sent fields.
- JS: adapt the "placeholder" value only, as on save the field will be filled with the value via DataHandler
- If "slug" field is not empty (= "unlocked" and manually typed in)
- sanitize the slug
- If 'uniqueInSite' is set check if it's unique for the site
- If not unique propose another slug and return this with the flag hasConflicts = true
- If 'uniqueInPid' is set check if it's unique for the pid
- If not unique propose another slug and return this with the flag hasConflicts = true
- If 'uniqueInSite' is set check if it's unique for the site
For existing records:
- sanitize the slug
- If 'uniqueInSite' is set check if it's unique for the site
- If not unique propose another slug and return this with the flag hasConflicts = true
- If 'uniqueInPid' is set check if it's unique for the pid
- If not unique propose another slug and return this with the flag hasConflicts = true
- If the slug has changed from the existing database record (@todo)
- Show a message that the old URL will stop working (possibly add a redirect via checkbox)
- If the page has subpages, show a warning that the subpages WILL NOT BE MODIFIED and keep the OLD url
- If 'uniqueInSite' is set check if it's unique for the site
Parameters
- $request : ServerRequestInterface
Tags
Return values
ResponseInterfaceaddRegisteredRequireJsModulesToJavaScriptItems()
protected
addRegisteredRequireJsModulesToJavaScriptItems(array<string|int, mixed> $result, JavaScriptItems $items) : void
Parameters
- $result : array<string|int, mixed>
- $items : JavaScriptItems
checkRequest()
protected
checkRequest(ServerRequestInterface $request) : bool
Parameters
- $request : ServerRequestInterface
Tags
Return values
boolcreateExecutableStringRepresentationOfRegisteredRequireJsModules()
Gets result array from FormEngine and returns string with js modules that need to be loaded and evaluated by JavaScript.
protected
createExecutableStringRepresentationOfRegisteredRequireJsModules(array<string|int, mixed> $result[, bool $skipInstructions = false ]) : array<string|int, mixed>
Parameters
- $result : array<string|int, mixed>
- $skipInstructions : bool = false
-
whether to skip
JavaScriptModuleInstruction
Return values
array<string|int, mixed>getLabelsFromLocalizationFile()
Parse a language file and get a label/value array from it.
protected
getLabelsFromLocalizationFile(string $file) : array<string|int, mixed>
Parameters
- $file : string
-
EXT:path/to/file
Return values
array<string|int, mixed> —Label/value array
getLanguageService()
protected
getLanguageService() : LanguageService|null
Return values
LanguageService|nullgetRelativePathToStylesheetFile()
Resolve a CSS file position, possibly prefixed with 'EXT:'
protected
getRelativePathToStylesheetFile(string $stylesheetFile) : string
Parameters
- $stylesheetFile : string
-
Given file, possibly prefixed with EXT:
Return values
string —Web root relative position to file
serializeJavaScriptModuleInstructionItems()
protected
serializeJavaScriptModuleInstructionItems(JavaScriptModuleInstruction $instruction) : array<string|int, mixed>
Parameters
- $instruction : JavaScriptModuleInstruction