Zum Inhalt springen

Marker werden nicht aus der locallang.xml ersetzt

Erstellt am 30. August 2010 · 2 Antworten · letzte Antwort am 31. August 2010

Tags: PHP, Frage

amyjazz ·

Ich programmiere zur Zeit eine Extension mit Frontend-Plugin.

Im Frontend soll unter anderem eine mit Datenbankwerten gefüllte Tabelle angezeigt werden. Die Kopfdaten dieser Tabelle sollen allerdings aus der locallang.xml stammen, die im Verzeichnis der Extension im Ordner pi1/ liegt.

Quellcode:

class tx_extkey_pi1 extends tslib_pibase {
       var $prefixId      = 'tx_extkey_pi1';		// Same as class name
       var $scriptRelPath = 'pi1/class.tx_extkey_pi1.php';	// Path to this script relative to the extension dir.
       var $extKey        = 'extkey';	// The extension key.
       var $pi_checkCHash = true;

			/**
			 * The main method of the PlugIn
			 *
			 * @param	string		$content: The PlugIn content
			 * @param	array		$conf: The PlugIn configuration
			 * @return	The content that is displayed on the website
			 */
			function main($content, $conf) {
						$this->conf = $conf;
						$this->pi_setPiVarDefaults();
						$this->pi_loadLL();
						$this->pi_initPIflexForm(); //enable FlexForms

...
sowie an entsprechender Stelle

$markerArray["###HEAD_BEZEICHNUNG###"] = htmlspecialchars($this->pi_getLL("head_bezeichnung"));

Wobei mit $markerArray dann die Marker in der Template ersetzt werden, was an sich auch funktioniert (z.B. mit Datenbankdaten). Nur die locallang.xml scheint Probleme zu machen. Dort steht:

<T3locallang>
	<meta type="array">
		<type>module</type>
		<description>Language labels for plugin &quot;tx_extkey_pi1&quot;</description>
	</meta>
	<data type="array">
		<languageKey index="default" type="array">
			<label index="head_bezeichnung">Sport</label>
			[...]
		</languageKey>
	</data>
	<data type="array">
		<languageKey index="de" type="array">
			<label index="head_bezeichnung">Sportart</label>
			[...]
		</languageKey>
	</data>
</T3locallang>

Ich hatte dieses Problem schon an anderer Stelle und konnte es auch dort nicht lösen. Kann mir jemand helfen?

amyjazz ·

Kann mir wirklich niemand helfen? Ich habe meiner Meinung nach alles so gemacht, wie in zahlreichen Büchern, Online-Manuals etc. beschrieben. Dennoch funktioniert es einfach nicht. Warum?

amyjazz ·

So, schlussendlich habe ich durch erneutes Anlegen der Extension den Fehler gefunden.
Darf natürlich nur ein Block mit data type="array" sein, also so:

<data type="array">
		<languageKey index="default" type="array">
			<label index="head_bezeichnung">Sportart</label>
			[...]
		</languageKey>
<languageKey index="de" type="array">
			<label index="head_bezeichnung">Sportart</label>
			[...]
		</languageKey>
	</data>