Zum Inhalt springen

pixe_feediting - Fehlende Texte im Admin-Menü

Erstellt am 19. August 2009 · 5 Antworten · letzte Antwort am 20. August 2009

Tags: Frage

Praggle ·

Nach der Umstellung auf PHP 5.3 hab ich Typo3 auch auf 4.28 aktualisiert und auch pixe_feediting ist inzwischen auf Version 2.1.19 umgestellt. Bei der ganzen Updaterei ist dann irgendwo das Admin-Menü beim Frontend-Editing auf der Strecke geblieben.
Das Merkwürdige ist. Das Menü an sich wird mitsamt den Links erzeugt, aber der deutsch-sprachige Text wird nicht mit gerendert. Die Menü-Punkte sind also wie früher vorhanden und wenn man draufklickt, öffnet sich auch das richtige Fenster, aber es fehlt halt der Text:

Bild: img269.imageshack.us/…/adminmenu.jpg

<td class="id"><span class="strong">Benutzername: <span class="menuItem">admin</span> | : id=153</span> | </td>
<td class="strong"><a href="#" style="text-decoration:none;" onclick="document.TSFE_ADMIN_PANEL_FORM['TSFE_ADMIN_PANEL[display_top]'].value=0; document.TSFE_ADMIN_PANEL_FORM.submit(); return false;"><span class="menuItem"></span></a></td>

Ich habe in den vergangenen Tagen mehrfach neu installiert und fast alle Konfigurations-Optionen durchgespielt. Auch das Ändern der Menü-Sprache hat nichts verändert. Auf der PHP-Ebene komme ich ziemlich schnell an meine Grenzen. Ich hab noch nicht einmal die genaue Stelle gefunden, wo die Texte eingefügt werden.

Wie würdet ihr an meiner Stelle vorgehen, um das wieder zum Laufen zu bringen? Für meine Redakteure ist das Menü von dringender Wichtigkeit. Ein Zurück auf die alte Version ist auch nicht mehr möglich.

Praggle

dfluess ·

Hallo,

ich habe diesen Thread gefunden, nachdem ich mein identisches Problem geschildert habe:
#922571

Gibt es inzwischen schon eine Lösung?

Danke 🙂

Praggle ·

Dann haben sich unsere Beiträge gerade überschnitten.

Also, dann scheint das ja doch ein genereller Fehler zu sein.

Gibt es denn überhaupt jemand, bei dem die Erweiterung in der neuesten Version einwandfrei läuft?
Taucht der Fehler nur bei uns im deutschen Sprachbereich auf? In den englischsprachigen Foren habe ich nämlich nichts darüber gefunden.

Praggle ·

Es scheint wohl irgendwie mit der Sprachlokalisierung zusammenzuhängen.

Ab Zeile 455 wird in der 'class.ux_t3lib_tsfebeuserauth.php' das Admin-Menü erzeugt.

z.B. sollte wohl in Zeile 483 der Text "Bearbeitungsmodus öffnen" aus der de.locallang.xml via locallang.xml ausgelesen werden:

<td class="strong">'.$this->extItemLink('top',$this->extFwCSS($this->extGetLL('adminOptions_EnterEditMode'))).'</td>

Das scheint aber nicht zu funktionieren.

Vielleicht kennt sich einer von Euch besser mit PHP und Plugin-Programmierung aus. Ich versteh nämlich noch nicht, wo die Extension überhaupt die Sprachdateien einbindet(ext_localconf.php?). Vielleicht gibt es da einen grundsätzlichen Fehler.

Praggle ·

Ich bin auf diesen Thread gestoßen:

#90353

und glaube auch, dass das Problem in Typo3 4.28 begraben liegt. Da ist wohl versehentlich zu viel rausgeschmissen worden.

Ich hab also in der t3lib/class.t3lib_tsfebeuserauth.php einfach die alte Funktion extGetLL($key) rausgenommen und durch die neueste Version aus der Development Version 4.3.0-alpha3 reinkopiert.

So siehts dort jetzt aus:

	/*****************************************************
	 *
	 * Localization handling
	 *
	 ****************************************************/

	/**
	 * Returns the label for key, $key. If a translation for the language set in $this->uc['lang'] is found that is returned, otherwise the default value.
	 * IF the global variable $LOCAL_LANG is NOT an array (yet) then this function loads the global $LOCAL_LANG array with the content of "sysext/lang/locallang_tsfe.php" so that the values therein can be used for labels in the Admin Panel
	 *
	 * @param	string		Key for a label in the $LOCAL_LANG array of "sysext/lang/locallang_tsfe.php"
	 * @return	string		The value for the $key
	 */
/*	function extGetLL($key)	{
		$labelStr = htmlspecialchars($GLOBALS['LANG']->getLL($key));	// Label string in the default backend output charset.

			// Convert to utf-8, then to entities:
		if ($GLOBALS['LANG']->charSet!='utf-8') {
			$labelStr = $GLOBALS['LANG']->csConvObj->utf8_encode($labelStr,$GLOBALS['LANG']->charSet);
		}
		$labelStr = $GLOBALS['LANG']->csConvObj->utf8_to_entities($labelStr);

			// Return the result:
		return $labelStr;
	}
*/

	public function extGetLL($key) {
		global $LOCAL_LANG;
		if (!is_array($LOCAL_LANG)) {
			$GLOBALS['LANG']->includeLLFile('EXT:lang/locallang_tsfe.php');
			#include('./'.TYPO3_mainDir.'sysext/lang/locallang_tsfe.php');
			if (!is_array($LOCAL_LANG)) {
				$LOCAL_LANG = array();
			}
		}

		$labelStr = htmlspecialchars($GLOBALS['LANG']->getLL($key));	// Label string in the default backend output charset.

			// Convert to utf-8, then to entities:
		if ($GLOBALS['LANG']->charSet != 'utf-8') {
			$labelStr = $GLOBALS['LANG']->csConvObj->utf8_encode($labelStr, $GLOBALS['LANG']->charSet);
		}
		$labelStr = $GLOBALS['LANG']->csConvObj->utf8_to_entities($labelStr);

			// Return the result:
		return $labelStr;
	}

Und damit läufts wieder.

Oder wer da nicht dran rumpfuschen will, wartet einfach aufs nächste Typo3-Update.