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
}
}
}
}
Related
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>|
}
}
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 try to add a language menu with typoscript, but the files I want to add as images ar not working.
my typoscript looks like this:
## Localization menu:
temp.langMenu = HMENU
temp.langMenu.special = language
temp.langMenu.special.value = 0,2
temp.langMenu.1 = GMENU
temp.langMenu.1.NO {
XY = [5.w]+4, [5.h]+4
backColor = white
5 = IMAGE
5.file = fileadmin/bilder/DE-flag-32.png || fileadmin/bilder/US-flag-32.png
5.offset = 2,2
}
temp.langMenu.1.ACT < lib.langMenu.1.NO
temp.langMenu.1.ACT = 1
temp.langMenu.1.ACT.backColor = black
temp.langMenu.1.USERDEF1 < lib.langMenu.1.NO
temp.langMenu.1.USERDEF1 = 1
temp.langMenu.1.USERDEF1.5.file = fileadmin/bilder/DE-flag-32.png || fileadmin/bilder/US-flag-32.png
temp.langMenu.1.USERDEF1.noLink = 1
Cache is clean ...
result is this:
links are working but no image. in Site-source code the image got this path:
<img src="/typo3temp/menu/4baf3d2e70.gif" width="36" height="36" alt="Home">
Whats my Mistake in this case
I usually have a similar approach:
temp.language = HMENU
temp.language {
special = language
// 0 = Deutsch, 1 = Englisch
special.value = 0,1
wrap = <ul class="langmenu">|</ul>
1 = GMENU
1 {
NO = 1
NO {
format = png
// size of flag grafics
XY = 38,17
transparentColor = #00FFFF
backColor = #00FFFF
10 = IMAGE
10.file = fileadmin/flags/de.png || fileadmin/flags/uk.png
10.offset = 10,0
10.file.width = 28
10.file.height = 17
wrap = <li>|</li>
}
ACT < .NO
ACT {
20 = IMAGE
20.file = fileadmin/flags/arrow.gif
20.format = png
20.offset = 0,3
noLink = 1
wrap = <li class="act">|</li>
}
// if translation is not available:
USERDEF1 < .NO
USERDEF1 {
// the grayscale effectdoes not work with some IM versions
30 = EFFECT
30.value = gray | gray=1 | grey | grey=1
// the same flags like above, bleached
40 = EFFECT
40.value = gamma=5
// naturally this should not be linked either
noLink = 1
}
}
}
differences which might be important:
I use constant values for the generated images and no blank after the comma
I give explicit sizes for the used images
I use color values instead of color names
I use transparent color
Image generation on the server (the install tool checks) is working in general? Pay special attention to the GDlib tests
install of imagemagick does the job
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.