2 namespace TYPO3\CMS\Frontend\Service;
42 public function encode(array $typoLinkParts)
44 if (empty($typoLinkParts) || !isset($typoLinkParts[
'url'])) {
49 $reverseSortedParameters = array_reverse($this->
decode(
''),
true);
50 $aValueWasSet =
false;
51 foreach ($reverseSortedParameters as $key => &$value) {
52 $value = isset($typoLinkParts[$key]) ? $typoLinkParts[$key] :
'';
54 $value = str_replace([
'\\',
'"' ], [
'\\\\',
'\\"' ], $value);
56 if (strpos($value, static::$partDelimiter) !==
false) {
57 $value =
'"' . $value .
'"';
60 if ($value ===
'' && $aValueWasSet) {
61 $value = static::$emptyValueSymbol;
68 return trim(implode(static::$partDelimiter, array_reverse($reverseSortedParameters,
true)));
79 $typoLink = trim($typoLink);
80 if ($typoLink !==
'') {
81 $parts = str_replace([
'\\\\',
'\\"' ], [
'\\',
'"' ], str_getcsv($typoLink, static::$partDelimiter));
88 'url' => isset($parts[0]) ? trim($parts[0]) :
'',
89 'target' => isset($parts[1]) && $parts[1] !== static::$emptyValueSymbol ? trim($parts[1]) :
'',
90 'class' => isset($parts[2]) && $parts[2] !== static::$emptyValueSymbol ? trim($parts[2]) :
'',
91 'title' => isset($parts[3]) && $parts[3] !== static::$emptyValueSymbol ? trim($parts[3]) :
'',
92 'additionalParams' => isset($parts[4]) && $parts[4] !== static::$emptyValueSymbol ? trim($parts[4]) :
''
95 return $typoLinkParts;