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>