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
Organisation
Frau Vorname 1 ANachname 1
Adresse 2
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



