Falls es jemanden interessiert wie das mit der Navigationsfunktion weitergeht (ich benutze diese auch für die Sitemap usw. und somit musste ich es nun doch machen:
In meiner Navigationsfunktion werden auf oberster ebene im beginHTML element die variablen deklariert und geholt:
$CMS_SET(ENV)$$CMS_VALUE(dv_environment, default:"DEV")$$CMS_END_SET$
$CMS_SET(CHECKEDENV)$$CMS_VALUE(#nav.ref.meta("md_environment"), default:"[DEV]")$$CMS_END_SET$
jedes ARRAY element bekommt dann eine $CMS_IF condition verpasst:
$CMS_IF(CHECKEDENV.toString.contains(ENV.toString))$
Das ganze beispiel anhand meiner hauptnavigation:
<CMS_HEADER>
<CMS_FUNCTION name="Navigation" resultname="pt_mainNavigation">
<CMS_PARAM name="expansionVisibility" value="all" />
<CMS_PARAM name="wholePathSelected" value="1" />
<CMS_PARAM name="root" value='pagefolder:3live' />
<CMS_ARRAY_PARAM name="beginHTML">
<CMS_ARRAY_ELEMENT index="0">
<![CDATA[
$CMS_SET(ENV)$$CMS_VALUE(dv_environment, default:"DEV")$$CMS_END_SET$
$CMS_SET(CHECKEDENV)$$CMS_VALUE(#nav.ref.meta("md_environment"), default:"[DEV]")$$CMS_END_SET$
$CMS_IF(CHECKEDENV.toString.contains(ENV.toString))$
<li>
$-- debug output: ($CMS_VALUE(ENV)$-$CMS_VALUE(CHECKEDENV)$)--$
$CMS_END_IF$
]]>
</CMS_ARRAY_ELEMENT>
</CMS_ARRAY_PARAM>
<CMS_ARRAY_PARAM name="unselectedHTML">
<CMS_ARRAY_ELEMENT index="0">
<![CDATA[$CMS_IF(CHECKEDENV.toString.contains(ENV.toString))$<a class="$CMS_VALUE(#nav.comment,default:"")$" title="$CMS_VALUE(#nav.comment,default:"-")$" data-pageid="$CMS_VALUE(#nav.ref.page.id)$" href="$CMS_REF(#nav.ref)$">$CMS_VALUE(#nav.label.convert2)$</a>$CMS_END_IF$]]>
</CMS_ARRAY_ELEMENT>
</CMS_ARRAY_PARAM>
<CMS_ARRAY_PARAM name="selectedHTML">
<CMS_ARRAY_ELEMENT index="0">
<![CDATA[$CMS_IF(CHECKEDENV.toString.contains(ENV.toString))$<a class="active $CMS_VALUE(#nav.comment,default:"")$" title="$CMS_VALUE(#nav.comment,default:"-")$" data-pageid="$CMS_VALUE(#nav.ref.page.id)$" href="$CMS_REF(#nav.ref)$">$CMS_VALUE(#nav.label.convert2)$</a>$CMS_END_IF$]]>
</CMS_ARRAY_ELEMENT>
</CMS_ARRAY_PARAM>
<CMS_ARRAY_PARAM name="endHTML">
<CMS_ARRAY_ELEMENT index="0">
<![CDATA[
$CMS_IF(CHECKEDENV.toString.contains(ENV.toString))$</li>$CMS_END_IF$]]>
</CMS_ARRAY_ELEMENT>
</CMS_ARRAY_PARAM>
</CMS_FUNCTION>
</CMS_HEADER>
$CMS_VALUE(pt_mainNavigation)$
Schönen Nachmittag
Christoph