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 = $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)));
77 public function decode($typoLink)
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;