Wrap works, but need the spaces for better presentation, unfortunately it doesn't work with "noTrimWrap" :-(
I use Typo3 9.5.10
I hope someone can help me :-)
myTicker = CONTENT
myTicker {
wrap = |
table = tx_myPlugin_domain_model_tick
select {
pidInList = 31
max = 4
selectFields = dbfield_1, dbfield_2
}
renderObj = COA
renderObj {
10 = TEXT
10.field = dbfield_1
20 < .10
20.field = dbfield_2
noTrimWrap = |<div>+++ Neuer Eintrag: | +++</div>|
}
}
COA does not have a direct stdWrap on the root level. This should work though:
myTicker = CONTENT
myTicker {
wrap = |
table = tx_myPlugin_domain_model_tick
select {
pidInList = 31
max = 4
selectFields = dbfield_1, dbfield_2
}
renderObj = COA
renderObj {
10 = TEXT
10.field = dbfield_1
20 < .10
20.field = dbfield_2
stdWrap.noTrimWrap = |<div>+++ Neuer Eintrag: | +++</div>|
}
}
Related
I am generating this list of feusers and trying to get the names of the associated usergroups. This code worked before the update to TYPO3 8.x (it's just the relevant part of the whole thing):
40 = TEXT
40.field = usergroup
40.split {
token = ,
cObjNum = 1 || 2
1 {
10 = CONTENT
10.table = fe_groups
10.select.pidInList = 22
10.select.andWhere.current = 1
10.select.andWhere.wrap = uid=|
10.select.where = (title NOT LIKE 'Netzwerk')
10.renderObj = TEXT
10.renderObj.field = title
10.renderObj.wrap = |, <br />
}
2 < .1
2.10.renderObj.wrap >
}
With TYPO3 8 the 'andWhere' is depreciated and so I tried like this, but failed:
40 = TEXT
40.field = usergroup
40.split {
token = ,
cObjNum = 1 || 2
1{
10 = CONTENT
10 {
table = fe_groups
select {
pidInList = 22
where.current = 1
where.wrap = uid= |
}
10.renderObj = TEXT
10.renderObj.field = title
10.renderObj.wrap = |,
}
2 < .1
2.10.renderObj.wrap
}
}
Thanks for pointing me in the right direction.
You should not split up the comma separated values, but go for uidInList instead. This way you get rid of the surrounding split and fetch the elements within just one go.
40 = CONTENT
40 {
table = fe_groups
select {
uidInList.field = usergroup
pidInList = 22
}
renderObj = TEXT
renderObj.field = title
renderObj.wrap = |,
}
I am selecting categories on an English page. The categories have the language ID 0. English is ID 1.
But I need the same categories on both languages.
cheese = CONTENT
cheese {
wrap = <cheese_legend>|</cheese_legend>
table = sys_category
select {
pidInList = {$categories}
selectFields = *
where = deleted = 0
andWhere = sys_language_uid = 0
andWhere = hidden = 0
}
renderObj = COA
renderObj {
wrap = <cat>|</cat>
10 = TEXT
10 {
stdWrap.field = uid
stdWrap.wrap = <div>|</div>
}
20 = TEXT
20 {
stdWrap.field = title
stdWrap.wrap = <div>|</div>
}
30 = TEXT
30 {
stdWrap.field = sys_language_uid
stdWrap.wrap = <div>|</div>
}
}
}
So I'm explicitly selecting the sys_language_uid = 0!!
But nevertheless the script only gives me results with the ID = 1.
Any idea to make this baby work?
You have doubled the andWhere = statement, so the one below overwrites the one above.
Use andWhere = sys_language_uid = 0 AND hidden = 0 in one line.
For getting the english ones you use andWhere = sys_language_uid = 1 AND hidden = 0.
i want to write a Copyright-Entry on images which are created with GifBuilder:
lib.imageWithWatermark = IMG_RESOURCE
lib.imageWithWatermark {
file = GIFBUILDER
file {
XY = [10.w],[10.h]
format = jpg
quality = 100
10 = IMAGE
10.file {
import.data = current
treatIdAsReference = 1
maxW = 1600
maxH = 1000
}
20 = IMAGE
20.offset = [10.w]-[20.w]-20,[10.h]-[20.h]-20
20.file = fileadmin/theme/lib/v1/img/watermark.png
30 = TEXT
30 {
text = Copyright
fontColor= #dddddd
fontSize = 12
offset = 20,[10.h]-20
fontFile = fileadmin/theme/lib/v1/fonts/verdana.ttf
align = left
antiAlias = 1
}
}
}
in 30.text I need the entry from the meta data of the image (image.resources.properties.creator in fluid) but i dont have any clue how to achieve this in typoscript ...
Any help?
Thanks!
OK, after a few hours I found the solution. Perhaps it is useful for some other people ... :-)
lib.imageWithWatermark = COA
lib.imageWithWatermark {
# get meta data here - in GIFBUILDER it seems not possible
10 = FILES
10 {
# current derives from a fluid template: it contains the uid of a sys_file_reference entry (!) - not sys_file
# so we cannot use files but must use references which links sys_file_reference with sys_file.
references.data = current
renderObj = COA
renderObj {
# we have to use register
10 = LOAD_REGISTER
10 {
param = TEXT
# Attention: current is now the current file in renderObj - it contains now the uid of the sys_file entry.
param.data = file:current:creator
}
}
}
# OK the more tradional rest
20 = IMG_RESOURCE
20 {
file = GIFBUILDER
file {
XY = [10.w],[10.h]
format = jpg
quality = 100
10 = IMAGE
10.file {
import.data = current
treatIdAsReference = 1
maxW = 1600
maxH = 1000
}
20 = IMAGE
20.offset = [10.w]-[20.w]-20,[10.h]-[20.h]-20
20.file = fileadmin/theme/lib/v1/img/watermark.png
30 = TEXT
30 {
# get text from register.
text.data = register:param
fontColor= #dddddd
fontSize = 12
offset = 20,[10.h]-20
fontFile = fileadmin/theme/lib/v1/fonts/verdana.ttf
align = left
antiAlias = 1
}
}
}
}
I have an HMENU in Typo3, in the Pageproperties i have stored an image. How can i show the Image from the Pageproperties in ne Menu? I have no Idea, why the image is not displayed.
Typo3 6.2
lib.produkt_start = HMENU
lib.produkt_start {
special = directory
special.value = 3
wrap = |
1 = TMENU
1 {
expAll = 1
NO = 1
NO {
allWrap = <div class="patterns col4" id="page_{field:uid}">|</div>
allWrap.insertData = 1
ATagParams = id="uid{field:uid}"
ATagParams.insertData = 1
stdWrap.cObject >
stdWrap.cObject = COA
stdWrap.wrap = |
stdWrap.cObject {
10 = TEXT
10.field = title
10.wrap = <br /><h2>|</h2>
10.insertData = 1
20 = TEXT
20.wrap = <p><span>|</span></p>
20.field = subtitle
30 = IMAGE
30.file.import.data = levelmedia-1, slide
30.treatIdAsReference = 1
30.import.listNum = 0
30.wrap = <h5>|</h5>
}
}
ACT = 1
ACT < .NO
}
}
I tested your problem with TYPO3 6.1.7
First of all you have to correct you code a little:
[...]
stdWrap.cObject {
10 = TEXT
10.field = title
10.wrap = <br /><h2>|</h2>
10.insertData = 1
20 = TEXT
20.wrap = <p><span>|</span></p>
20.field = subtitle
30 = IMAGE
30.file.import.data = levelmedia:-1, slide
30.file.treatIdAsReference = 1
30.file.import.listNum = 0
30.wrap = <h5>|</h5>
}
[...]
Now it will be "working" but only if you actually set an image in media field of the parent page, then it will be renderd in all child pages, ignoring the fact that the child pages have an own image set - I would consider this as sort of a bug of TMENU or TMENUITEM, but I haven't realy testet it fully.
You will get a problem with entity encoding of the title as well so I would try this option:
stdWrap.wrap.cObject = COA
stdWrap.wrap.cObject {
10 = TEXT
10.value = <br><h2>|</h2>
20 = TEXT
20.wrap = <p><span>|</span></p>
20.field = subtitle
30 = IMAGE
30.file.import.data = levelmedia:-1, slide
30.file.treatIdAsReference = 1
30.file.import.listNum = 0
}
Strange is that the following does not work either:
30.file.import.field = media
This makes my suspition of the wrong slide behaviour above being a bug even stronger.
I got this condition:
[globalVar = TSFE:fe_user|sesData|get_car = Katowice]
get_carpid = TEXT
get_carpid.value = 27
[global]
And this select:
plugin.Tx_Formhandler.settings.predef.formhandler-multistep-forms.markers.input_readonly_a_price = CONTENT
plugin.Tx_Formhandler.settings.predef.formhandler-multistep-forms.markers.input_readonly_a_price {
table = tx_pricelist_prices_full
select {
pidInList = 27
orderBy = uid
selectFields = uid, group_a_1_3
# possible conditions
where = ( tx_pricelist_prices_full.uid='1' AND hidden='0' AND deleted='0')
}
renderObj = COA
renderObj {
#value
1 = TEXT
1.insertData = 1
1.data = field:group_a_1_3
2 = TEXT
2.value = *
3 = TEXT
3.insertData = 1
3.data = TSFE:fe_user|sesData|finish_day
stdWrap.prioriCalc = 1
}
}
How to use defined get_carpid in SELECT in line pidInList = get_carpid
Thanks for any help!
You can create a cObject CASE. But this will only work for [a-zA-z0-9_-]
# TS Setup
... snip ...
pidInList.cObject = CASE
pidInList.cObject {
key.data = TSFE:fe_user|sesData|get_car
key.case = lower
default = TEXT
default.value = 0
# special chars are not allowed
katowice = TEXT
katowice.value = 27
}
... snip ...
A different possibility is to use constants:
# TS Constants
[globalVar = TSFE:fe_user|sesData|get_car = Katowice]
get_carpid = 27
[globalVar = TSFE:fe_user|sesData|get_car = Lublin]
get_carpid = 28
[global]
# TS Setup
... snip ...
pidInList = {$get_carpid}
... snip ...
The first solution is more TypoScript fun, the second easier for novice - i guess :)