All controllers extend from base.cfc which has
// 0 -> Info, 1 -> Warning, 2 -> Error, 3 -> Fatal, -1 -> Debug (not normally shown)
void function addMessage(required string message, numeric priority=0) output="false" {
param request.qryMessageQueue = QueryNew("Priority,Message", "integer,varchar");
QueryAddRow(request.qryMessageQueue);
QuerySetCell(request.qryMessageQueue, "Priority", arguments.priority);
QuerySetCell(request.qryMessageQueue, "Message", trim(arguments.message));
}
I am currently considering putting this into layouts/default.cfm, I don't think that is right
<cffunction name="renderMessage">
<cfquery name="qryMessage" dbtype="query">
SELECT Priority, Message
FROM request.qryMessageQueue
ORDER BY Priority DESC
</cfquery>
<cfoutput query="qryMessage">
<cfswitch expression="#priority#">
<cfcase value="3">
<b>Fatal:</b> #message#
</cfcase>
<cfcase value="2">
<b>Error:</b> #message#
</cfcase>
<cfcase value="1">
<b>Warning:</b> #message#
</cfcase>
<cfcase value="-1">
<span class="debug"><b>Debug:</b> #message#</span>
</cfcase>
<cfdefaultcase>
<b>Info:</b> #message#
</cfdefaultcase>
</cfswitch>
</cfoutput>
</cffunction>
later in layout/default.cfm
<cfset renderMessage()>