Не сравнивайте с истиной - это ненужная трата времени ...
<cfif checkRole('admin') >...</cfif>
Однако в файле дисплея я бы сделал это просто:
<cfif StructKeyExists( Xfa , 'AdminMenu' )>
<li><a href="#xfa.adminmenu#>Admin Menu</a></li>
</cfif>
Затем в вашем файле circuit.xml вы можете выполнить:
<fuseaction name="Menu">
<do action="NormalMenuLinks"/>
<do action="AdminMenuLinks"/>
...
</fuseaction>
<fuseaction name="NormalMenuLinks">
<xfa name="MainMenu" value="..."/>
</fuseaction>
<fuseaction name="AdminMenuLinks" permissions="admin">
<xfa name="AdminMenu" value="..."/>
</fuseaction>
На самом деле я не использовал разрешения FB, поэтому я не знаю, будет ли вышеуказанное работать должным образом.
Если этого не произойдет, вы можете сделать:
<fuseaction name="Menu">
<do action="NormalMenuLinks"/>
<if condition="checkRole('admin')">
<true>
<do action="AdminMenuLinks"/>
</true>
</if>
...
</fuseaction>
Что немного уродливо, но должно работать.
Конечно, если у вас есть только один XFA, вы можете просто использовать его напрямую, вместо того, чтобы выполнять отдельные операции слиянием, но если у вас есть несколько XFA (особенно если они будут использоваться на нескольких страницах), тогда XFA будут fuseactions может помочь сохранить вещи в порядке.