Over the past few days I've had multiple people ask me the same question - and that means one thing to me... blog post!
The question these people were asking was the same - I know how to write a UDF, but not sure how to actually use it on a page? By that they didn't mean the "function" syntax (x = foo()), but how to include the UDF so that it could be used on a page.
The answer is simple once you realize that a UDF is nothing more than another kind of ColdFusion variable. Consider this code:
<cfoutput>
#x#
</cfoutput>
What do you have to do to make this not throw an error? There are multiple ways to handle this. First, define it on the page:
<cfset x = "DJ Jazzy Jeff and the Fresh Prince">
<cfoutput>#x#</cfoutput>
Another way:
<cfinclude template="thisiswherexismade.cfm">
<cfoutput>#x#</cfoutput>
There are other ways of course, but you get the idea. So to use a UDF you follow the same rules. Here are two more examples using the same format as above:
<cfscript>
function cic() { return "monkey"; }
</cfscript>
<cfoutput>#cic()#</cfoutput>
And then the cfinclude version:
<cfinclude template="filewithcfcUDFinit.cfm">
<cfoutput>#cic()#</cfoutput>
Just like other variables, UDFs can be placed in the shared scopes. You can't do it directly though but rather must reassign:
<cfscript>
function dharma() { return "swan"; }
request.dharma = dharma;
</cfscript>
<cfoutput>#request.dharma()#</cfoutput>