My working copy, it's not fleshed out as I'm still in development, but here
it is. Sidebar default gets run every time and it's cfm builds the sidebar
and includes admin if admin is present.
The XML
<?xml version="1.0" encoding="UTF-8"?>
<modelglue>
<controllers>
<controller id="SidebarController"
type="mg.controller.SidebarController">
<message-listener function="sidebarAdmin"
message="user.sidebar.admin" />
<message-listener function="sidebarDefault"
message="user.sidebar.default" />
</controller>
</controllers>
<event-types>
<event-type name="Sidebar">
<before>
<broadcasts>
<message name="user.Roles" />
</broadcasts>
<results>
<result do="user.sidebar.admin" name="admin" />
<result do="user.sidebar.default" />
</results>
</before>
</event-type>
</event-types>
<event-handlers>
<!-- For remote calls to update sidebar on login/logout -->
<event-handler name="user.sidebar" type="Remote,Sidebar" />
<event-handler name="template.sidebar" type="Sidebar" />
<!-- don't call these directly, use one of the above -->
<event-handler access="private" name="user.sidebar.default">
<broadcasts>
<message name="user.sidebar.default" />
</broadcasts>
<results />
<views format="html">
<include name="sidebar" template="user/sidebar/default.cfm" />
</views>
<views format="remote">
<include name="sidebar" template="user/sidebar/default.cfm" />
<include name="sbRemote" template="user/sidebar/sidebar.cfm" />
</views>
</event-handler>
<event-handler access="private" name="user.sidebar.admin">
<broadcasts>
<message name="user.sidebar.admin" />
</broadcasts>
<results />
<views>
<include name="sbAdmin" template="user/sidebar/admin.cfm" >
<value name="xe.user.add" value="admin.user.add" />
<value name="xe.user.list" value="admin.user.list" />
<value name="xe.hits" value="admin.hits" />
</include>
</views>
</event-handler>
</event-handlers>
</modelglue>
The user.Roles message is handled by the user controller in the user xml
file.
My <views format="remote"> adds one line that is different than the html
version, event.SetValue('sidebar',viewCollection.GetView('sidebar')); to put
the view result into an event value that can be returned to a javascript
request.
--
Model-Glue Sites:
Home Page: http://www.model-glue.com
Documentation: http://docs.model-glue.com
Bug Tracker: http://bugs.model-glue.com
Blog: http://www.model-glue.com/blog
You received this message because you are subscribed to the Google
Groups "model-glue" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/model-glue?hl=en