Hi list,
could someone please tell me if there is any way to check in a screen
condition if a decorator section is empty?
I would like to do something similar to this:
<container style="contentarea">
<decorator-section-include name="pre-body"/>
<container id="column-container">
<section>
<condition>
<if-decorator-section-empty decorator-section="left-bar"/>
</condition>
<widgets>
<container id="content-main-section">
<decorator-section-include name="body"/>
</container>
</widgets>
<fail-widgets>
<container style="left">
<decorator-section-include name="left-bar"/>
</container>
<container id="content-main-section" style="leftonly">
<decorator-section-include name="body"/>
</container>
</fail-widgets>
</section>
</container>
Basically this is used to have the leftbar filled using a new
decorator-section defined in the GlobalDecorator and not using any
more the leftbarScreenName and leftbarScreenLocation so that for
instance the CommonCatalogDecorator would change from
<screen name="CommonCatalogDecorator">
<section>
<actions>
<set field="leftbarScreenName" value="leftbar"/>
<set field="leftbarScreenLocation"
value="component://product/widget/catalog/CommonScreens.xml"/>
<set field="MainColumnStyle" value="leftonly"/>
</actions>
<widgets>
<decorator-screen name="main-decorator"
location="${parameters.mainDecoratorLocation}">
<decorator-section name="pre-body">
<section>
<!-- do check for CATALOG, _VIEW permission -->
<condition>
<and>
..................
to
<screen name="CommonCatalogDecorator">
<section>
<widgets>
<decorator-screen name="main-decorator"
location="${parameters.mainDecoratorLocation}">
<decorator-section name="left-bar">
<include-screen name="leftbar"/>
</decorator-section>
<decorator-section name="pre-body">
<section>
<!-- do check for CATALOG, _VIEW permission -->
<condition>
<and>
The problem I have found is that the GlobalDecorator needs to apply
the "leftonly" style to the <container id="content-main-section"> only
if the leftbar does include content.
Any thought about this?
Thank you so much,
Bruno