[TYPO3-templavoila] How to test an empty container / section with TypoScript?

lee perry leeperry at slack.de
Mon Sep 3 18:00:26 CEST 2007


Olivier Schopfer schrieb:
> Dmitry Dulepov [typo3] wrote:
>> Hi!
>>
>> Olivier Schopfer wrote:
>>> Does anybody know a way to test if a section contains sub-items or not?
>>
>> No, there is no way.
>>
>>> I want to be able to hide the following list of links in case it's 
>>> empty. I suppose that one could achieve that with a .if TypoScript 
>>> condition. But how to access the subfields? And how to change the 
>>> overall wrap of the section (I've tried to put some Typoscript at the 
>>> level of the container, but it doesn't seem to work).
>>
>> Bug report for it exists but not solved yet. It is difficult to solve 
>> because requires passing a lot of information to recursive functions.
>>
> 
> Hi again. Quite proud to say that I found a nice workaround, using a 
> register:
> 
> In one of the typoScript based sub-elements, I added section 20:
>                                     <TypoScript><![CDATA[
>     10 = TEXT
>     10.typolink.parameter.current = 1
>     10.typolink.returnLast = url
>     20 = LOAD_REGISTER
>     20.see_also_count.cObject = TEXT
>     20.see_also_count.cObject.data = register:see_also_count
>     20.see_also_count.cObject.wrap = |+1
>     20.see_also_count.prioriCalc = intval
> ]]></TypoScript>
> 
> This counts the sub-items and stores the result in the register called 
> see_also_count.
> 
> And then, I created a new field, which is mapped as an attribute of the 
> style parameter of the <div> section containing the list:
> 
> <field_left_seealso_all type="array">
>     <type>attr</type>
>     <tx_templavoila type="array">
>         <title>See also all wrap</title>
>         <sample_data type="array">
>             <numIndex index="0">Display see also section</numIndex>
>         </sample_data>
>         <eType>TypoScriptObject</eType>
>         <TypoScript><![CDATA[
> 10 = TEXT
> 10.dataWrap = display:none;
> 10.if.isFalse.data = register:see_also_count
>         ]]></TypoScript>
>     </tx_templavoila>
>     <TCEforms type="array">
>         <label>Display see also section</label>
>     </TCEforms>
> </field_left_seealso_all>
> 
> Hope this will help others...
> 
> Olivier

hi olivier,

what happens, if you are using your FCE or page more than one time? The 
register see_also_count could be set by the other instance of the FCE - 
so you have to clear it first at the beginning of your FCE, or haven't you?

I've had a similar problem by building a FCE for a table with 
alternating background-colors for the table rows (each table row is a 
section of the FCE) - see newsgroup-message "[TYPO3-templavoila] Section 
Container Index".
Without the clearing of the register variable my tables have started 
with the next color of the last using tabel row color of the previous FCE.
And for you it would mean, that for the second FCE the register 
"see_also_count" is not false!

Or have I misunderstood your problem/solution?

greetings,
lee


More information about the TYPO3-project-templavoila mailing list