tt_address per Datensatz einfügen

Im TYPO3 besteht die Möglichkeit das man einzelne Adressen per Daten Datensatz einfügen auf einer Seite darstellen kann. Damit dies auch bei Adressen Records funktioniert, muss man kleine Anpassungen vornehmen.

Content Element erstellen

Als erstes muss man ein Element mit dem Typ Datensatz einfügen (Bild 1) erstellen. Danach wählt man einen oder mehrere Datensätze aus (Bild 2).

Setup Code

Damit eine Ausgabe erscheint, muss man noch etwas Typoscript Code einfügen. Wie man im TypoScript-Objekt-Browser (Bild 3) sehen kann, ergolgt die Ausgabe über folgenden Code:

tt_content.shortcut.20.0.conf.tt_address = < tt_address

Den Setup Code von tt_address findent man im statischen Template von content.tt_address [DEPRECATED], was jedoch veraltet und besten selbst erstellt werden sollte. Man kann aber zum Testen im Template einfügen (Bild 4).

Eigener TS Code für tt_address shortcut erstellen

Weil die Variante über das statische Template content.tt_address [DEPRECATED] nicht verwendet werden sollte, hier eine mögliche Lösung.

setup.txt

lib.tt_address.shortcut = COA
lib.tt_address.shortcut {
	1 = LOAD_REGISTER
	1 {
		lll_grender_f = TEXT
		lll_grender_f.data = LLL:{$FILE.locallang}:tt_address.grender_f
		lll_grender_m = TEXT
		lll_grender_m.data = LLL:{$FILE.locallang}:tt_address.grender_m
		lll_phone = TEXT
		lll_phone.data = LLL:{$FILE.locallang}:tt_address.phone
		lll_mobile = TEXT
		lll_mobile.data = LLL:{$FILE.locallang}:tt_address.mobile
		lll_fax = TEXT
		lll_fax.data = LLL:{$FILE.locallang}:tt_address.fax
		lll_email = TEXT
		lll_email.data = LLL:{$FILE.locallang}:tt_address.email
		lll_www = TEXT
		lll_www.data = LLL:{$FILE.locallang}:tt_address.www
	}

	5 = LOAD_REGISTER
	5 {
		gender.cObject = CASE
		gender.cObject {
			key = {field:gender}
			key.insertData = 1
			m = TEXT
			m.value = {register:lll_grender_m}
			m.insertData = 1
			f = TEXT
			f.value = {register:lll_grender_f}
			f.insertData = 1
			default = TEXT
			default.value =
		}
	}

	10 = TEXT
	10 {
		data = field:country
		noTrimWrap = |<span class="country">|</span><br />|
	}

	15 = TEXT
	15 {
		data = field:company
		required = 1
		noTrimWrap = |<span class="company">|</span><br />|
	}

	20 = TEXT
	20 {
		value = {register:gender} {field:first_name} {field:last_name}
		insertData = 1
		noTrimWrap = |<span class="person">|</span><br />|
		if.isTrue.field = last_name
	}

	25 = TEXT
	25 {
		data = field:address
		required = 1
		br = 1
		wrap = <div class="street-address">|</div>
	}

	30 = TEXT
	30 {
		data = field:zip
		required = 1
		noTrimWrap = |<span class="postal-code">|</span> |
	}

	35 = TEXT
	35 {
		data = field:region
		required = 1
		noTrimWrap = |<span class="region">|</span> |
		outerWrap = |<br />
		outerWrap.if.isFalse.field = zip
	}

	40 = TEXT
	40 {
		data = field:city
		required = 1
		noTrimWrap = |<span class="city">|</span><br />|
	}

	45 = TEXT
	45 {
		data = field:phone
		required = 1
		dataWrap = <br /><div class="phone"><span class="label">{register:lll_phone}: </span>|</div>
	}

	50 = TEXT
	50 {
		data = field:mobile
		required = 1
		dataWrap = <div class="mobile"><span class="label">{register:lll_mobile}: </span>|</div>
	}

	55 = TEXT
	55 {
		data = field:fax
		required = 1
		dataWrap = <div class="fax"><span class="label">{register:lll_fax}: </span>|</div>
	}

	60 = TEXT
	60 {
		data = field:email
		typolink.parameter.field = email
		required = 1
		dataWrap = <div class="email"><span class="label">{register:lll_email}: </span>|</div>
	}

	65 = TEXT
	65 {
		data = field:www
		typolink.parameter.field = www
		required = 1
		dataWrap = <div class="www"><span class="label">{register:lll_www}: </span>|</div>
	}

	wrap = <div class="tt_address-adritem">|</div>
}

tt_content.shortcut.20.0.conf.tt_address >
tt_content.shortcut.20.0.conf.tt_address =< lib.tt_address.shortcut
setup.txt
constants.txt

FILE {
	locallang = fileadmin/pfad-zur-datei/locallang.xml
}
constants.txt
locallang.xml

<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<T3locallang>
	<meta type="array">
		<type>module</type>
		<description>Languages labels template</description>
	</meta>
	<data type="array">
		<languageKey index="default" type="array">
			<label index="tt_address.grender_f">Mrs.</label>
			<label index="tt_address.grender_m">Mr.</label>
			<label index="tt_address.phone">Phone</label>
			<label index="tt_address.mobile">Mobile</label>
			<label index="tt_address.fax">Fax</label>
			<label index="tt_address.email">Email</label>
			<label index="tt_address.www">Internet</label>
		</languageKey>
		<languageKey index="de" type="array">
			<label index="tt_address.grender_f">Frau</label>
			<label index="tt_address.grender_m">Herr</label>
			<label index="tt_address.phone">Tel.</label>
			<label index="tt_address.mobile">Mobile</label>
			<label index="tt_address.fax">Fax</label>
			<label index="tt_address.email">Email</label>
			<label index="tt_address.www">Internet</label>
		</languageKey>
	</data>
</T3locallang>
locallang.xml
Ausgabe des Records - setup demo

Demo der Ausgabe mit oben stehendem Code

Land
Organisation
Frau Vorname 1 ANachname 1
Adresse 1
Adresse 2
PLZ Region/Bundesland Stadt

Tel.: Telefon
Mobile: Mobil
Fax: Fax
Internet: www.thefox.ch

tt_address bei shortcuts entfernen

Wenn man möchte, das bei Datensatz einfügen keine tt_address Record ausgewählt werden kann, ist dies durch eine PHP Code Anpassung direkt in der Extensions von tt_address möchglich, oder durch PHP Code in der eigenen Extension.

Bei der Anpassung direkt in der tt_address Extension muss in der Datei ext_tables.php folgende Zeile ( bei 2.2.1 Version auf Zeile 60) entfernt oder auskommentiert werden:

t3lib_extMgm::addToInsertRecords('tt_address');

Wenn man eine eigene Extension schreibt, könnte man dies zum Beispiel auch mit folgendem Code in der Datei ext_tables.php lösen.


// tca laden
t3lib_div::loadTCA('tt_content');
// tt_address entfernen 
$TCA['tt_content']['columns']['records']['config']['allowed'] = str_replace(array(',tt_address', 'tt_address,', 'tt_address'),array('', '', ''),$TCA['tt_content']['columns']['records']['config']['allowed']);

PHP Code in ext_tables.php