Whatever message this page gives is out now! Go check it out!
create
required
<cffeed
action = "create"
name = "#structure#"
One or both of the following: outputFile = "path"
xmlVar = "variable name"
optional
overwrite = "no|yes">
escapeChars = "true|false">
OR
required
<cffeed
action = "create"
properties = "#metadata structure#"
query = "#items/entries query name#"
One or both of the following: outputFile = "path"
xmlVar = "variable name"
optional
columnMap = "mapping structure"
overwrite = "no|yes">
read
required
<cffeed
source = "feed source"
One or more of the following: name = "structure"
properties = "metadata structure"
query = "items/entries query"
outputFile = "path"
xmlVar = "variable name"
optional
action = "read"
enclosureDir = "path"
ignoreEnclosureError = "no|yes"
overwrite = "no|yes"
overwriteEnclosure = "no|yes"
proxyServer = "IP address or server name for proxy host"
proxyPassword = "password for the proxy host"
proxyPort = "port of the proxy host"
proxyUser = "user name for the proxy host"
timeout = "request time-out in seconds"
userAgent = "HTTP user agent identifier">Attribute | Req/Opt | Default | Description |
action | Optional | read | The action to take, one of the following values:
|
columnMap | Optional | Used only for the create action with a query attribute.A structure that specifies a mapping between the names of the columns in the object specified by the query attribute and the columns of the ColdFusion feed format (see the section Query object rules. The key for each field must be a column name (see the table in the Query object rules section). The value of the field must be the name of the corresponding column in the query object used as input to the create action. | |
enclosureDir | Optional | Used only for the read action. Path to the directory in which to save any enclosures that are available in the feed being read. The path can be absolute or relative to the CFML file. If the directory does not exist, ColdFusion generates an error. If you omit this attribute, ColdFusion does not save enclosures. To specify the directory that contains the current page, set this attribute to " ." (period). | |
escapeChars | Optional | false | Used only for the create action. If this attribute is true, escapes/replaces all the invalid characters as per W3C specification. Note: Japanese characters that are not part of UTF-8 encoding are replaced. Non-UTF-8 Japanese characters remain in the feed as they are. If this attribute is false, does not escape invalid characters and tries to generate feed. If JDOM fails to write the file with these invalid characters, the error message "Invalid Character in Input" is displayed. |
ignoreEnclosureError | Optional | no | If this attribute is yes, ColdFusion attempts to save all enclosures. If it encounters an error downloading one enclosure, it continues downloading other enclosures and writes the error information in the server log. If this attribute is no, when ColdFusion encounters an error downloading an enclosure, it stops downloading all enclosures and generates an error. Note: Enclosure errors can occur if the specified enclosure is of a type that the web server does not allow to be downloaded. |
name | See Note | A structure that contains complete feed data:
| |
outputFile | See Note | Path of the file in which to write the feed as XML text. The path can be absolute, or relative to the CFML file. | |
overwrite | Optional | no | Whether to overwrite the XML feed file if it exists. If you do not set this attribute to yes and the cffeed tag tries to write to a file that exists, ColdFusion generates an error. |
overwriteEnclosure | Optional | no | Used only for the read action. Whether to overwrite files in the enclosure directory if they exist. If you do not set this attribute to yes and the cffeed tag tries to write to a file that exists, ColdFusion generates an error. |
properties | See Note | A structure that contains the feed metadata, the information about the entire feed. Can contain either of the following:
| |
proxyPassword | Optional | Password required by the proxy server. | |
proxyPort | Optional | 80 | The port to connect to on the proxy server. |
proxyServer | Optional | Host name or IP address of a proxy server to which to send the request. | |
proxyUser | Optional | User name to provide to the proxy server. | |
query | See Note | A query object that contains the Atom entries or RSS items in the feed. Can contain either of the following:
| |
source | Required | Used only for the read action. The URL of the feed or the path to the XML file that contains the feed contents. A path can be absolute, or relative to the CFML file. | |
timeout | Optional | Request time-out | The number of seconds to wait for a response from the feed source. A value of 0 specifies that the request does not time out. By default, ColdFusion uses the request time-out setting of the ColdFusion Administrator Server Settings > Settings page. |
userAgent | Optional | Cold Fusion | Text to put in the HTTP User-Agent request header field. Used to identify the request client software. |
xmlVar | See Note | A variable in which to save the read or created feed as XML text. |
ram:///filepath |
ram:///filepath |
structureName.link[1] |
<cfset meta.link = arrayNew(1)>
<cfset meta.link[1] = structNew()>
<cfset meta.link[1].href = "http://www.myCo,com">structureName.entry[3].summary.value. |
<author>
<person>Anthony</person>
<uri>http://www.MyCo.com</uri>
<email>Tony@MyCo.com</email>
</author>
<author>
<person>Beverly</person>
</author>
<author>
<person>Cathy</person>
<email>cathy@MyCo.com</email>
</author>AUTHOR_PERSON | AUTHOR_URI | AUTHOR_EMAIL |
Anthony,Beverly,Cathy | http://www.MyCo.com, , | Tony@MyCo.com, ,cathy@MyCo.com |
Column | Atom entry | RSS item |
AUTHOREMAIL | author element email attribute | author item |
AUTHORNAME | author element name attribute | Not used |
AUTHORURI | author element uri attribute | Not used |
CATEGORYLABEL | category element label attribute | category item value |
CATEGORYSCHEME | category element scheme attribute | category item domain attribute |
CATEGORYTERM | category element term attribute | Not used |
COMMENTS | Not used | comments item value |
CONTENT | content element value | description item value |
CONTENTMODE | content element mode attribute (Atom 0.3 only) | Not used |
CONTENTSRC | content element src attribute | Not used |
CONTENTTYPE | content element type attribute | Not used |
CONTRIBUTOREMAIL | contributor element email attribute | Not used |
CONTRIBUTORNAME | contributor element name attribute | Not used |
CONTRIBUTORURI | contributor element uri attribute | Not used |
CREATEDDATE | created element value (Atom 0.3 only) | Not used |
EXPIRATONDATE | Not used | expirationDate item value (RSS 0.93 only) |
ID | id element value | guid item value |
IDPERMALINK | Not used | guid item ispermalink attribute |
LINKHREF | link element href attribute | enclosure item url attribute |
LINKHREFLANG | link element hreflang attribute | Not used |
LINKLENGTH | link element length attribute | enclosure item length attribute |
LINKREL | link element rel attribute | Not used |
LINKTITLE | link element title attribute | Not used |
LINKTYPE | link element type attribute | enclosure item type attribute |
PUBLISHEDDATE | published element value (issued in Atom 0.3) | pubDate item value |
RIGHTS | rights element value (copyright in Atom 0.3) | Not used |
RSSLINK | Not used | link item value |
SOURCE | Not used | source item value |
SOURCEURL | Not used | source item url attribute |
SUMMARY | summary element value | Not used |
SUMMARYMODE | summary element mode attribute (Atom 0.3 only) | Not used |
SUMMARYSRC | Blank for all well-formed Atom feeds. Contains data only if an Atom 1.0 feed uses a content element format for the summary element. | Not used |
SUMMARYTYPE | summary element type attribute | Not used |
TITLE | title element value | title item value |
TITLETYPE | title element type attribute | Not used |
UPDATEDDATE | updated element value (modified in Atom 0.3) | Not used |
URI | Not used | RSS 1.0 link item rdf:about attribute |
XMLBASE | content elemen{{t xml:base}} attribute | Not used |
Column | Description |
DC_CONTRIBUTOR | The people or organizations responsible for contributing to the resource |
DC_COVERAGE | The extent of the content in the resource |
DC_CREATOR | The person or organization responsible for creating this resource |
DC_DATE | A date or date and time associated with this resource |
DC_DESCRIPTION | A summary of the resource contents |
DC_FORMAT | The file format, physical medium, or dimensions of the resource |
DC_IDENTIFIER | A string that can be used to unambiguously identify the resource |
DC_LANGUAGE | The language in which the resource is written |
DC_PUBLISHER | The person or organization responsible for making the resource available. |
DC_RELATION | The identifier of a related resource, typically. |
DC_RIGHT | Information about the property rights for the resource. |
DC_SOURCE | A reference to the material from which this resource was derived. |
DC_SUBJECT_TAXONOMYURI | The taxonomy URI attribute of the Dublin Core subject element |
DC_SUBJECT_VALUE | The value of the Dublin Core subject element; a string that defines the topic of the resource |
DC_TITLE | A name to use for the resource |
DC_TYPE | The nature or genre of the resource |
Element | Used in | Description |
ITUNES_AUTHOR | Both | Artist name |
ITUNES_BLOCK | Both | a value of yes requests to prevent the podcast or item (episode) from appearing. When ColdFusion reads a feed your application must determine this field's value and take any appropriate action. |
ITUNES_DURATION | Item | The length of the item in second, or in HH:MM:SS format. |
ITUNES_EXPLICIT | Both | A string indicating whether the item or items contain explicit material. Valid values are yes, no, and clean. |
ITUNES_KEYWORDS | Both | A comma-delimited list of words or phrases used when searching in the iTunes music store. |
ITUNES_SUBTITLE | Both | Short description text, usually only a few words. |
ITUNES_SUMMARY | Both | A longer description (up to 4000 characters)/ |
Element | Description |
itunes_category | A structure that specifies the iTunes Music Store category. The structure has two fields:
|
itunes_image | The URL of the artwork for the podcast. |
itunes_owner | A structure that contains contact information about the owner of the podcast for communication. The structure has two fields:
|
<!--- Get the feed data as a query from the orders table. --->
<cfquery name="getOrders" datasource="cfartgallery">
SELECT * FROM orders
</cfquery>
<!--- Map the orders column names to the feed query column names. --->
<cfset columnMapStruct = StructNew()>
<cfset columnMapStruct.publisheddate = "ORDERDATE">
<cfset columnMapStruct.content = "ADDRESS">
<cfset columnMapStruct.title = "CUSTOMERFIRSTNAME">
<cfset columnMapStruct.rsslink = "ORDERID">
<!--- Set the feed metadata. --->
<cfset meta.title = "Art Orders">
<cfset meta.link = "http://feedlink">
<cfset meta.description = "Orders at the art gallery">
<cfset meta.version = "rss_2.0">
<!--- Create the feed. --->
<cffeed action="create"
query="#getOrders#"
properties="#meta#"
columnMap="#columnMapStruct#"
xmlvar="rssXML">
<cfdump var="#XMLParse(rssXML)#"><!--- Generate the feed when the user submits a filled in form. --->
<cfif isDefined("Form.Submit")>
<cfscript>
// Create the feed data structure and add the metadata.
myStruct = StructNew();
mystruct.link = form.link;
myStruct.title = form.title;
mystruct.description = form.description;
mystruct.pubDate = Now();
mystruct.version = "rss_2.0";
/* Add the feed items. A more sophisticated application would use dynamic variables
and support varying numbers of items. */
myStruct.item = ArrayNew(1);
myStruct.item[1] = StructNew();
myStruct.item[1].description = StructNew();
myStruct.item[1].description.value = form.item1text;
myStruct.item[1].link = form.item1link;
myStruct.item[1].pubDate = Now();
myStruct.item[1].title = form.item1title;
myStruct.item[2] = StructNew();
myStruct.item[2].description = StructNew();
myStruct.item[2].description.value = form.item2text;
myStruct.item[2].link = form.item2link;
myStruct.item[2].pubDate = Now();
myStruct.item[2].title = form.item2title;
</cfscript>
<!--- Generate the feed and save it to a file and variable. --->
<cffeed action = "create"
name = "#myStruct#"
outputFile = "feedTest/createRSSOutput.xml"
overwrite = "yes"
xmlVar = "myXML">
</cfif>
<!--- The user input form. --->
<cfform format="xml" preservedata="yes" style="width:500" height="700">
<cfformitem type = "text"> Enter The Feed Metadata</cfformitem>
<cfinput type = "text" label = "title" name = "title"
style = "width:435" required = "yes"> <br />
<cfinput type = "text" label = "link" name = "link"
style = "width:435" required = "yes" validate = "url"> <br />
<cftextarea name = "description"
style = "width:435; height:70" required = "yes" />
<cfformitem type = "text"> Enter Item 1</cfformitem>
<cfinput type="text" label="title" name="item1title"
style="width:435" required="yes"> <br />
<cfinput type="text" label="link" name="item1link"
style="width:435" required="yes" validate="url"> <br />
<cftextarea name = "item1text"
style = "width:435; height:70" required = "yes" /> <br />
<cfformitem type = "text"> Enter Item 2</cfformitem>
<cfinput type = "text" label = "title" name = "item2title" style = "width:435"> <br />
<cfinput type = "text" label = "link" name = "item2link" style = "width:435"
validate = "url"> <br />
<cftextarea name = "item2text" style = "width:435; height:70" /> <br />
<cfinput type = "Submit" name = "submit" value = "Submit" >
</cfform><!--- Process the feed data if the user submitted the form --->
<cfif isDefined("Form.Submit")>
<cffeed source = "#theURL#"
properties = "myProps"
query = "myQuery">
<!--- Display the feed output.
Use conditional logic for to handle different feed formats. --->
<cfoutput>
<h2>#myProps.title#</h2>
</cfoutput>
<cfoutput query = "myQuery">
<cfif myProps.version IS "atom_1.0">
<h3><a href = "#linkhref#">#title#</a></h3>
<p><b>Published:</b> #DateFormat(publisheddate)#</p>
<cfelse>
<h3><a href = "#rsslink#">#title#</a></h3>
<p><b>Published:</b> #publisheddate#</p>
</cfif>
<p>#content#</p>
</cfoutput>
</cfif>
<!--- The form for specifying the feed URL or file --->
<cfform name = "SetFeed" preserveData = "yes">
Enter Feed URL:
<cfinput type = "text" size = "60" name = "theURL"><br><br>
<cfinput type = "Submit" name = "submit" value = "Submit">
</cfform>