Project

General

Profile

Actions

Bug #59533

closed

OptionSplit cObjNum inside FILES CO does not work

Added by Jan Stoll almost 10 years ago. Updated about 6 years ago.

Status:
Closed
Priority:
Must have
Assignee:
-
Category:
TypoScript
Target version:
-
Start date:
2014-06-12
Due date:
% Done:

0%

Estimated time:
TYPO3 Version:
6.2
PHP Version:
Tags:
Complexity:
Is Regression:
No
Sprint Focus:

Description

Please look at the following TS code below.

In my opinion the TS is correct. But this section does not work.

*cObjNum =  1 || 2*
1.current = 1
1.wrap = <h2>|</h2>
2.current = 1
2.wrap = <p>|</p>

It should output <h2>first text</h2> and <p>second text</p>. It does output, <h2>first text</h2> <h2>second text</h2> though. So the option split does not seem to work. I tried this outside the FILES Content Object and it works without problems.

lib.headerSlider = FILES
lib.headerSlider {
  references {
    table = pages
    ##fieldName = media
    data = levelmedia:-1, slide
    treatIdAsReference = 1
  }

  sorting = sorting_foreign

  renderObj = COA
  renderObj {
    10 = TEXT
    10 {
        data = file:current:description
        split {
             token = -
             cObjNum =  1 || 2
             1.current = 1
             1.wrap = <h2>|</h2>
             2.current = 1
             2.wrap = <p>|</p>
        }
        wrap = <div class="text">|</div>
    }

    20 = IMAGE
    20 {
      file {
        import {
          data = file:current:publicUrl
        }
        width = 950c
        height = 300c
      }
      altText.data = file:current:description

    }
    wrap = <div class="slide">|</div>
  }

}

Related issues 1 (1 open0 closed)

Related to TYPO3 Core - Bug #77945: responsive IMAGE rendering does not work if inside FILESNew2016-09-14

Actions
Actions #1

Updated by Christian Tauscher almost 10 years ago

I can confirm this Bug.

lib.supersized = TEXT
lib.supersized {
data = levelmedia: -1, slide

split {
token = ,
token.wrap = |
cObjNum = 1 |*| 1 |*| 2
1 {
10 = FILES
10 {
references {
table = pages
uid.data = leveluid: -1, slide
fieldName = media
}
renderObj = TEXT
renderObj {
data = file:current:publicUrl
wrap = { image : '|' },
}
}
}
2 < .1
2.10.renderObj.wrap = { image : '|' }*
}

}

This shoud render as { image : 'fileadmin/background/PSF023.jpg' }, { image : 'fileadmin/background/PSF035.jpg' }*

but is renders as: { image : 'fileadmin/background/PSF023.jpg' }, { image : 'fileadmin/background/PSF035.jpg' }, { image : 'fileadmin/background/PSF023.jpg' }* { image : 'fileadmin/background/PSF035.jpg' }*

The */+ is only to make the bug more visible.

Adding a third image on the media field, extendig the split:
lib.supersized.split.cObjNum = 1 |*| 2 |*| 3
lib.supersized.split.3 < .1
lib.supersized.split.3.10.renderObj.wrap = { image : '|' }+

results in :

{ image : 'fileadmin/background/PSF023.jpg' }, { image : 'fileadmin/background/PSF035.jpg' }, { image : 'fileadmin/background/PSF036.jpg' }, { image : 'fileadmin/background/PSF023.jpg' }+ { image : 'fileadmin/background/PSF035.jpg' }+ { image : 'fileadmin/background/PSF036.jpg' }+ { image : 'fileadmin/background/PSF023.jpg' }, { image : 'fileadmin/background/PSF035.jpg' }, { image : 'fileadmin/background/PSF036.jpg' },

I expect { image : 'fileadmin/background/PSF023.jpg' }, { image : 'fileadmin/background/PSF035.jpg' }* { image : 'fileadmin/background/PSF036.jpg' }+

This problem since V6.0 ad still in V6.2, in V4.7 it worked perfectly (of course without the references, due to lacking FAL)

Actions #2

Updated by Christian Futterlieb over 9 years ago

Same here. Sadly this bug affects the key feature for responsive image rendering (see example below).

The problem is (obviously) that the optionSplit is made in the FILES cObject and thus cannot be repeated in the renderObj.

lib.test = FILES
lib.test {
    # sys_file uid
    references.files = 1
    renderObj = IMAGE
    renderObj {
        file.import.data = file:current:uid
        file.treatIdAsReference = 1
        layoutKey = srcset
        layout.srcset {
            element = <img src="###SRC###" sizes="100vw" srcset="###SOURCECOLLECTION###"###PARAMS######ALTPARAMS######SELFCLOSINGTAGSLASH###>
            # this optionSplit does not work
            source = |*|###SRC### ###SRCSETCANDIDATE###,|*|###SRC### ###SRCSETCANDIDATE###
        }
        sourceCollection {
            small {
                width = 200m
                srcsetCandidate = 200w
            }
            mid {
                width = 400m
                srcsetCandidate = 400w
            }
        }
    }

}

Actions #3

Updated by Jo Hasenau over 9 years ago

So this is not a bug, but a missing feature. But I guess there are some workarounds, that would give you the desired result with current TypoSript.

Currently it is true, that it is not possible to have kind of "nested option split", so the part for the source won't work in your example.
Should be the same for split or FILES within menu items.

Actions #4

Updated by Stephan Leithold almost 9 years ago

The workaround therefore is listnum. It's not so comfortable, but it works.

10 = TEXT
10.data = file:current:description
10.wrap = <h1>|</h1>
10.listNum = 0
10.listNum.splitChar = 10

20 < .10
20.wrap = <h2>|</h2>
20.listNum = 1

30 < .10
30.wrap = <p>|</p>
30.listNum = 2
Actions #5

Updated by Riccardo De Contardi over 6 years ago

  • Status changed from New to Needs Feedback

Correct me if I am wrong, but in version 8, with the FLUIDTEMPLATE dataprocessors (https://docs.typo3.org/typo3cms/TyposcriptReference/ContentObjects/Fluidtemplate/Index.html#dataprocessing) and cropvariants (https://docs.typo3.org/typo3cms/extensions/core/8.7/Changelog/8.6/Feature-75880-ImplementMultipleCroppingVariantsInImageManipulationTool.html) everything reported here can be solved even without TypoScript code.

For example (reduced and poorly written example, but just to give the idea):

TS Setup

page.10 = FLUIDTEMPLATE
page.10{
    // ...
    // skipping all non-relevant configuration
    // ...
    dataProcessing{    
        99 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
        99 {
            references {
                table = pages
                fieldName = media
            }
        as = headerImage
        }    

    }  
}

HTML (template or partial):

    <f:for each="{headerImage}" as="image" iteration="iterator">
        <f:if condition="{iterator.isFirst}">
            <f:then> <h2> {image.description}</h2></f:then>
            <f:else> <p> {image.description}</p></f:else>    
        </f:if>
        <p><f:image src="{image.publicUrl}"/></p>
    </f:for>
Actions #6

Updated by Alexander Opitz about 6 years ago

  • Status changed from Needs Feedback to Closed

No feedback within the last 90 days => closing this issue.

If you think that this is the wrong decision or experience this issue again, then please write to the mailing list typo3.teams.bugs with issue number and an explanation or open a new ticket and add a relation to this ticket number.

Actions

Also available in: Atom PDF