Zum Inhalt springen

RECORDS & max

Erstellt am 28. Juli 2008 · 1 Antwort · letzte Antwort am 30. Juli 2008

Tags: Frage

kurtzman ·

Ich hab ein Problem, weil es bei RECORDS nicht die max-Option gibt:

Folgendes kann ich nicht schreiben weil sich tx_templavoila_ds ändern kann.

10= CONTENT
10.table = tt_content
10.select {
	pidInList = this
	max = 1
	where = tx_templavoila_ds = 30
	andWhere = deleted=0
	andWhere = hidden=0
	orderBy = sorting
}

also hab ich es im moment wieder so:

	10= RECORDS
	10.source.current = 1
	10.tables = tt_content
	}

Problem ist, dass er hier wieder alle Elemente anzeigt. Ich will nur das erste haben. Gibt es die Möglichkeit mit RECORDS trotzdem nur das erste Element ausgeben zu lassen?

sollte das gehen müsste ich es hier einbauen:

10= RECORDS
10.source.data = GPVar:rid
10.tables = tt_content
10.stdWrap.override.cObject = RECORDS
10.stdWrap.override.cObject {
	required = 1
	source.current = 1
	tables = tt_content
	select.max = 1
}
kurtzman ·

Hab es nun mit einer PHP-Funktion gelöst. Man kann nun auch direkt Inhalte über einen Get-Parameter laden.

Ich versuche es hier mal stark vereinfacht dazustellen:

Datastructure (<TypoScript>10=RECORDS...</TypoScript> entfernen)

<eType>TypoScriptObject</eType>
<TypoScriptObjPath>lib.fce_rendering.list</TypoScriptObjPath>

Seitentemplate (durch Parameter flexibel auf andere Bereiche anwendbar)

includeLibs.fce_utils = path/to/contentElementTransform.php

lib.fce_rendering = COA
lib.fce_rendering {
	list = USER
	list {
		userFunc = user_contentElementTransform->content
		renderObject < tt_content
		column = field_list_bottom
		param = id
	}
}
<?php

class user_contentElementTransform extends tslib_pibase {
	var $cObj;
	var $conf;
	var $elements;
	// id from get-param
	var $id;
	// id that will be displayed
	var $id2display = null;

	function content($content, $conf) {
		$this->conf = $conf;
		
		$this->elements = explode(',', $this->cObj->data[$conf['column']]);
		$this->id = t3lib_div::_GET($conf['param']);
		
		// check for elements and optinal get-param
		$this->id2display = is_numeric($this->id) && is_numeric(array_search($this->id, $this->elements)) ? $this->id : (isset($this->elements[0]) ? $this->elements[0] : null);

		// no elements
		if (!isset($this->id2display)) return;

		// fetch element
		$data = $this->pi_getRecord('tt_content', $this->id2display);

		// render element
		$this->cObj->start($data, 'tt_content');
		return $this->cObj->cObjGetSingle($conf['renderObject'], $conf['renderObject.']);
	}
}

?>