[TYPO3-templavoila] Automatic hiding of unused content area...
Stig Nørgaard Færch
snf at dkm.dk
Tue Jan 20 15:09:39 CET 2009
Just for anyone who might be interested.
On a project that I'm currently working on, I have added a simple but
cool feature to Templavoila by typoscript.
Usually when we have a site with a layout which is 3 columns on the
frontpage and 2/3 columns on the subpages, we create two datastructures.
The problem is that it is not very intuitive for the user to change from
2 to 3 columns on a subpage, as he has to both change a datastructure
and the template.
So instead of going for two datastructures, I have managed to hide the
3rd column if it is empty.
So the thing that decides if the 3rd column is shown, is if I have put
any content in it.
This is the typoscript in the datastructure on the field/area which I
want to hide if it is empty:
<TypoScript><![CDATA[
10= RECORDS
10.source.current=1
10.tables = tt_content
10.stdWrap.ifEmpty{
cObject = LOAD_REGISTER
cObject.rightContentEmpty = 1
}
10.stdWrap {
required = 1
wrap = <!--TYPO3SEARCH_begin--> | <!--TYPO3SEARCH_end-->
}
]]></TypoScript>
So here I say that if there is no content the register should add
rightContentEmpty with a value of 1.
In my typoscript template (setup field), I add the following code:
page.headerData.1001 = TEXT
page.headerData.1001 {
value (
<style type="text/css">
/*<![CDATA[*/
#right {display:none;} #normal {width: 501px; margin-right: 33px;}
/*]]>*/
</style>
)
if.isTrue.data = register:rightContentEmpty
}
So if rightContentEmpty is true, then the css will be added with the
headerData.
The CSS hides #right and makes #normal wider and gives it a different
margin-right.
That's it. Hope it will be useful to some of you.
/Stig
More information about the TYPO3-project-templavoila
mailing list