Zum Inhalt springen

Integration tp3_openhours in tt_address

Erstellt am 6. November 2019 · 2 Antworten · letzte Antwort am 6. November 2019

Tags: Fluid, tt_address, TYPO3 8, Frage

CBuesse ·

Hallo beisammen,

das ist meine erste Aktion in diesem Forum - deshalb hoffe ich, dass ich das Ganze richtig angehe und mich überdies einigermaßen verständlich ausdrücke.

Nun, ich habe da eine Frage zur EXT tp3_openhours (erweitert tt_address um Öffnungszeiten) bzw. wie hier die Werte im FE ausgegeben werden (können / müssen / sollen).

Die Installation (tp3 0.0.3) hat soweit reibungslos geklappt, tt_address (4.3.0) läuft auch ganz wunderbar, und ich kann die Öffnungszeiten im BE auch problemlos anlegen. Die Werte werden auch ganz brav in die DB (Felder in tt_address) eingelesen.

So, und nun versuche ich, die Werte im FE über das tt_address-Partial "Address.html" auszugeben. Jede Adresse mit den dazugehörigen Öffnungszeiten. Allerdings geschieht da mittels meiner Ansätze nicht wirklich das, was gewünscht ist.

Über einen typoscriptObjectPath kann ich zwar SÄMTLICHE Werte auslesen und habe mittels select.join und renderObj herumexperimentiert, um die richtigen Öffnungszeiten den dazugehörigen Adress-Einträgen zuzuordnen, komme aber nicht wirklich zum Ziel (s. Anhang, bin aber auch kein Typoscript-Guru).

Auch meine (eigentlich bevorzugten) Lösungsansätze via Fluid fruchten nicht. Da kommt erst gar keine Ausgabe von irgendetwas zustande (s. Anhang, mein letzter Versuch von unzähligen).

Hat jemand schon einmal mit tp3_openhours zu tun gehabt bzw. weiß jemand, wo und wie ich da ansetzen muss? Oder bin ich mit meinen Ansätzen aus anderen Gründen völlig auf dem Holzweg?

Vielen Dank im Voraus für jede Hilfe.

CBuesse ·

Edit:

Sorry, "Die Werte werden auch ganz brav in die DB (Felder in tt_address) eingelesen" muss heißen:

"Die Werte werden auch ganz brav in die DB (über das neue Feld "open_hours" in tt_address mit der Tabelle "tx_tp3openhours_domain_model_openhour" verknüpft, wo die jeweiligen Wochentagseinträge etc. eingetragen sind) eingelesen."

CBuesse ·

Edit 2:

Irgendwie scheint das mit dem Anhang nicht zu klappen. Deshalb hier mein Code auf diesem Wege:

TYPOSCRIPT-Version

Im Template: <f:cObject typoscriptObjectPath="lib.openhours" />

lib.openhours = CONTENT
lib.openhours {
wrap = <div class="openingHours">|</div>
table = tx_tp3openhours_domain_model_openhour
select {
selectFields = *
uidInList.field = uid
pidInList = root,-1
recursive = 99
join = tt_address ON tx_tp3openhours_domain_model_openhour.ttaddress = tt_address.uid
#where = tx_tp3openhours_domain_model_openhour.ttaddress != 0 AND tt_address.open_hours != 0
orderBy = tx_tp3openhours_domain_model_openhour.day
#groupBy = tx_tp3openhours_domain_model_openhour.day
languageField = tt_address.sys_language_uid
}
renderObj = COA
renderObj {
5 = TEXT
5 {
field = ttaddress
wrap = <div class="hourItem flexRow jBetween aStart aID-|">
}
10 = CASE
10 {
key.field = day
stdWrap.wrap = <span class="day">|:&nbsp;</span>
1 = TEXT
1.value = Montag
2 = TEXT
2.value = Dienstag
3 = TEXT
3.value = Mittwoch
4 = TEXT
4.value = Donnerstag
5 = TEXT
5.value = Freitag
6 = TEXT
6.value = Samstag
7 = TEXT
7.value = Sonntag
8 = TEXT
8.value = Montag-Freitag
9 = TEXT
9.value = Samstag-Sonntag
}
15 = TEXT
15 {
field = open_time
required = 1
wrap = <span class="time"><span class="open">|&nbsp;Uhr</span>
strftime = %k.%M
strftime.GMT = 1
}
20 = TEXT
20 {
field = close_time
wrap = <span class="close">&nbsp;-&nbsp;|&nbsp;Uhr</span></span></div>
strftime = %k.%M
strftime.GMT = 1
}
}
}

FLUID-VERSION

<div class="openingHours">
<f:for each="{address.open_hours}" as="hours">
<div class="hourItem flexRow jBetween aStart aID-{hours.uid}">
<span class="day">{hours.day}:&nbsp;</span>
<span class="time">
<span class="open">{hours.open_time -> f:format.date(format:'%k.%M')}&nbsp;Uhr</span>
<span class="close">&nbsp;-&nbsp;{hours.close_time -> f:format.date(format:'%k.%M')}&nbsp;Uhr</span>
</span>
</div>
</f:for>
</div>