Zum Inhalt springen

Problem mit dem RTE

Erstellt am 11. April 2007 · 1 Antwort · letzte Antwort am 17. April 2007

Tags: Frage

thedon ·

Hallo,

ihr habt das Problem ja schon x-mal gehört. Links werden im <link />-tag ausgegeben. Also ich benutzt Version 3.8.

Alle Versuche das Problem zulösen schlugen fehl. Egal, ich suchte weiter nach einer Lösung. Nun habe ich die Datei "class.t3lib_parsehtml_proc.php" im Ordner t3lib gefunden. Hier wird der <a>-tag zum <link />-tag umgewandelt. In Zeile 615 steht die Anweisung:

					// Check options:
				$attribArray_copy = $attribArray;
				unset($attribArray_copy['href']);
				unset($attribArray_copy['target']);
				unset($attribArray_copy['class']);
				if ($attribArray_copy['rteerror'])	{	// Unset "rteerror" and "style" attributes if "rteerror" is set!
					unset($attribArray_copy['style']);
					unset($attribArray_copy['rteerror']);
				}
				if (!count($attribArray_copy))	{	// Only if href, target and class are the only attributes, we can alter the link!
						// Creating the TYPO3 pseudo-tag "<link />" for the link (includes href/url, target and class attributes):
					$bTag='<link info="" urlattribarraytarget="" attribarray="" target:attribarrayclass="" -:attribarrayclass="" class:="" />';
					$eTag='</link>';
					$blockSplit[$k] = $bTag.$this->TS_links_db($this->removeFirstAndLastTag($blockSplit[$k])).$eTag;
				} else {	// ... otherwise store the link as a-tag.
						// Unsetting 'rtekeep' attribute if that had been set.
					unset($attribArray['rtekeep']);
						// If the url is local, remove url-prefix
					$siteURL = $this->siteUrl();
					if ($siteURL && substr($attribArray['href'],0,strlen($siteURL))==$siteURL)	{
						$attribArray['href']=$this->relBackPath.substr($attribArray['href'],strlen($siteURL));
					}
					$bTag='<a t3lib_div::implodeattributesattribarray1="">';
					$eTag='</a>';
					$blockSplit[$k] = $bTag.$this->TS_links_db($this->removeFirstAndLastTag($blockSplit[$k])).$eTag;
				}
			}
		}
		return implode('',$blockSplit);
	}

Nach meinem Verständniss müsste man doch nur "unset($attribArray_copy['target']);" und "unset($attribArray_copy['class']);" ausklammern, da er dann doch nur noch überprüft ob der href-Befehl vorhanden ist. Klammere ich diesen Befehl aus, passiert nichts bzw. er setzt weiter links im <link />-tag.

Habt ihr eine Ahnung was man noch tun kann?

thedon ·

Moin moin,

ich hab eine Lösung gefunden. Hier für alle die das gleiche Problem haben:

Man muss im Verzeichnis "t3lib" und in "typo3/t3lib" die Datei "class.t3lib_parsehtml_proc.php" bearbeiten. In dieser Datei steht in ca. Zeile 615:

	// Check options:
				$attribArray_copy = $attribArray;
				unset($attribArray_copy['href']);
				unset($attribArray_copy['target']);
				unset($attribArray_copy['class']);

ändert das in:

					// Check options:
				$attribArray_copy = $attribArray;
				unset($attribArray_copy['href']);

Dann wird nicht mehr überprüft, ob mindestens drei Attribute im A-Tag gesetzt sind.

Hoffe jemand kann das gebrauchen.

Gruß thedon