Zum Inhalt springen

verständnisproblem: vorhandene marker in extension verarbeiten

Erstellt am 5. März 2008 · 6 Antworten · letzte Antwort am 6. März 2008

Tags: Frage

typoDAU ·

morgen allerseits,

in einer extension (zur tabellarischen ausgabe von technischen daten aus einer non-typo3-db) schreibe ich die ergebnisse einer query in ein marker-array; die damit gefüllten marker werden in einem html-template ausgegeben. soweit alles roger - das klappt.

die values der "spaltenüberschriften" für die tabelle kommen nicht aus einer db, sondern sind im ts-setup in mehreren sprachen hinterlegt und werden über eine sprachvariable zugeordnet. die marker hierfür habe ich in der ext_typoscript_setup.txt definiert und will diese nun mit in mein marker-array schreiben.

das habe ich mittels

$markerArray['###MARKER###'] = $this->cObj->cObjGetSingle($conf['MARKERVALUE'],$conf['MARKERVALUE.']);

versucht; es erfolgt keine ausgabe.

ersetze ich den aufruf testweise durch einen string, funktioniert es; schreibe ich anstatt in ein marker-array-element in eine content-variable, funktioniert es auch. #angry#

könnte mir jemand nettes sagen, wo ich daneben liegen könnte??? :o

typoDAU ·

stimmt 🙂

da aber die ausgabe im content funktioniert, wusste ich, dass das hier o.k. ist:

ext_typoscript_setup.txt

	plugin.tx_meineExtension_pi1 {
		MARKERVALUE = TEXT
		MARKERVALUE.value < temp.MARKERVALUE.value
		}

setup

[globalVar = GP:L = 1] 
	temp.MARKERVALUE.value = Überschrift
[global]
steffenk ·

nö, nix ist ok ...

plugin.tx_meineExtension_pi1 {
   MARKERVALUE = TEXT
   MARKERVALUE.value = blubb
} 

[globalVar = GP:L = 1]
plugin.tx_meineExtension_pi1.MARKERVALUE.value = Überschrift
[global]
typoDAU ·

ich würd's ja gerne verstehen... 😢

in meiner "sprachdatei" habe ich

[globalVar...]
temp.MARKERVALUE.value = ...
[/global]

durch

[globalVar...]
plugin.tx_meineExtension_pi1.MARKERVALUE.value = ...
[/global]

ersetzt. das kann ich nachvollziehen. aber das hier nicht:

plugin.tx_meineExtension_pi1 {
   MARKERVALUE = TEXT
   MARKERVALUE.value = blubb
}

also kann ich hier die wertzuweisung weglassen? funktionieren tut es leider auch dann nicht...

typoDAU ·

so, vielleicht ist es am besten, wenn ich den code mal im zusammenhang poste, um missverständnisse zu vermeiden. hier die funktion, die die marker für die "spaltenüberschriften" erzeugen *soll*:

function tableHeader()	{
	$this->conf = $conf;
	$this->pi_setPiVarDefaults();
	$this->pi_loadLL();

	$subpart = $this->cObj->getSubpart($this->template,'###HEADER###');

	$markerArray = array();
	$markerArray['###NAME###'] = $this->cObj->cObjGetSingle($conf['NAME'],$conf['NAME.']);
	$markerArray['###LANGUAGE###'] = $this->cObj->cObjGetSingle($conf['LANGUAGE'],$conf['LANGUAGE.']);
	$markerArray['###DATE###'] = $this->cObj->cObjGetSingle($conf['DATE'],$conf['DATE.']);
	$markerArray['###SIZE###'] = $this->cObj->cObjGetSingle($conf['SIZE'],$conf['SIZE.']);

	return $this->cObj->substituteMarkerArrayCached($subpart,$markerArray,$subpartArray,array());
	}

das template brauche ich nicht wiedergeben, die marker darin lassen sich ansprechen - funzt also.

hier die function main(), in der die function tableHeader() aufgerufen wird

function main($content,$conf)	{
	$this->conf = $conf;
	$this->pi_setPiVarDefaults();
	$this->pi_loadLL();

	$this->template = $this->cObj->fileResource('EXT:meineExtension/template.html');

	$content .= $this->tableHeader();		
	$content .= $this->tableBody();		

	return $this->pi_wrapInBaseClass($content);
	}

wäre echt super, wenn jemand durchblicken würde... 😢

typoDAU ·

oh mann. wieder ein zuvielarbeitundzuwenigschlaf-problem. das nur mit dem geltungsbereich meiner variablen zu tun hatte...

gute nacht :o