View comments | RSS feed

Including pages with the cfinclude tag

The cfinclude tag adds the contents of a ColdFusion page to another ColdFusion page, as if the code on the included page were part of the page that uses the cfinclude tag. It lets you pursue a "write once use multiple times" strategy for ColdFusion elements that you incorporate in multiple pages. Instead of copying and maintaining the same code on multiple pages, you can store the code in one page and then refer to it in many pages. For example, the cfinclude tag is commonly used to put a header and footer on multiple pages. This way, if you change the header or footer design, you only change the contents of a single file.

The model of an included page is that it is part of your page; it just resides in a separate file. The cfinclude tag cannot pass parameters to the included page, but the included page has access to all the variables on the page that includes it. The following figure shows this model:


Including a page using cfinclude

Using the cfinclude tag

When you use the cfinclude tag to include one ColdFusion page in another ColdFusion page, the page that includes another page is referred to as the calling page. When ColdFusion encounters a cfinclude tag it replaces the tag on the calling page with the output from processing the included page. The included page can also set variables in the calling page.

The following line shows a sample cfinclude tag:

<cfinclude template = "header.cfm">

Note: You cannot break CFML code blocks across pages. For example, if you open a cfoutput block in a ColdFusion page, you must close the block on the same page; you cannot include the closing portion of the block in an included page.

ColdFusion searches for included files as follows:

Caution: A page must not include itself. Doing so causes an infinite processing loop, and you must stop the ColdFusion server to resolve the problem.

To include code in a calling page:

  1. Create a ColdFusion page named header.cfm that displays your company's logo. Your page can consist of just the following lines, or it can include many lines to define an entire header:
    <img src="mylogo.gif">
    <br>
    

    (For this example to work, you must also put your company's logo as a GIF file in the same directory as the header.cfm file.)

  2. Create a ColdFusion page with the following content:
    <html>
    <head>
    	<title>Test for Include</title>
    </head>
    <body>
    	<cfinclude template="header.cfm">
    </body>
    </html>
    
  3. Save the file as includeheader.cfm and view it in a browser.

The header should appear along with the logo.

Recommended uses

Consider using the cfinclude tag in the following cases:


ColdFusion 9 | ColdFusion 8 | ColdFusion MX 7 | ColdFusion MX 6.1 | ColdFusion MX | Forums | Developer Center | KnowledgeBase | Bug Reporting

Version 7

Comments


dlakein said on Apr 23, 2007 at 5:31 PM :
About instructions step 1: it should read that the gif file should be in the same folder as the outer page in step 2, not the cfincluded header.cfm, since the template in step 2 is what was requested by the browser. An image in the returned HTML is assumed relative to the requested page, and is requested by the browser after the HTML is returned.
Ashish-Saxena said on Jul 21, 2007 at 6:54 AM :
One more use of cfinclude tag :
Define all UDF’s or complex codes in files (with any extension, even with .wmv, but remember that, the content of such files must be interpreted by ColdFusion server, otherwise the template will run without error but display in ASCII or unreadable format) and then include as per your requirement or in Application.cfm for global access. For example:

temp.cfm
<cfinclude template="myUDF.xyz">
<cfinclude template="myEmail.txt">
<cfoutput>#greeting("Ashish Saxena")#</cfoutput><br />
<cfset myEmailId = myEmail("HelloAshishSaxena@Gmail.com")>
<cfoutput>#myEmailId#</cfoutput><br />
<cfinclude template="myCountry.xml">
And
<cfinclude template="myFriend.wmv">
<!--- <cfinclude template="AmazingMum.wmv"> Is not a ColdFusion interpreted file, display in ASCII format. --->

myUDF.xyz
<cfscript>
function greeting(name)
{
writeOutput("Hi my name is " & name);
}
</cfscript>

myEmail.txt
<cfscript>
function myEmail(emailId)
{
return "My Email Id is " & emailId;
}
</cfscript>


myCountry.xml
<cfset MyCountry = "India">
My country is <cfoutput>#MyCountry#.</cfoutput>

myFriend.wmv
<cfset MyFriend = "Gopa Kumar">
My friend is <cfoutput>#MyFriend#.</cfoutput>
halL said on Jul 23, 2007 at 11:48 AM :
Note that you can put multiple (usually related) UDFs on a single page to create a function library, and then include the page and use any or all of the functions.

 

RSS feed | Send me an e-mail when comments are added to this page | Comment Report

Current page: http://livedocs.adobe.com/coldfusion/7/htmldocs/00000995.htm