2013-03-31 29 views
1

我有一個腳本,可以使用ColdFusion及其CFFeed標記生成一個xml文件。除了圖像以外,它工作得很好。我知道你必須使用封裝CDATA中的圖像才能顯示它。我不確定是否已正確設置它,因爲圖片沒有顯示在我的Google閱讀器/ Feedly Feed中。下面是代碼:使用ColdFusion和CFFeed的rss訂閱源中的圖像

<cfquery datasource="data" name="queryT"> 
SELECT * 
FROM qTable 
WHERE ... 
ORDER BY... 
</cfquery> 

<cfset RssStruct    = StructNew() /> 
<cfset RssStruct.link   = "https://www.url.com" /> 
<cfset RssStruct.title   = "sitename" /> 
<cfset RssStruct.description = "url Blog" /> 
<cfset RssStruct.image.url  = 'https://www.url.com/assets/img/ns.png' /> 
<cfset RssStruct.image.title = 'Site Name' /> 
<cfset RssStruct.image.link  = 'https://www.url.com' /> 
<cfset RssStruct.pubDate  = Now() /> 
<cfset RssStruct.version  = "rss_2.0" /> 
<cfset RssStruct.item   = ArrayNew(1) /> 
<cfset threadlist    = ""> 
<cfset index     = 1> 

<cfloop query="queryT"> 
    <cfif listcontains(threadlist , '#id#') eq 0> 
     <cfset threadlist = ListAppend(threadlist, '#id#')> 
      <!--- Here let's clean up and ensure that all values are XML Compliant ---> 
      <cfset RssStruct.item[index]     = StructNew() /> 
      <cfset RssStruct.item[index].guid    = structNew() /> 
      <cfset RssStruct.item[index].guid.isPermaLink ="YES" /> 
      <cfset RssStruct.item[index].guid.value   = 'https://www.url.com/page.cfm?itemid=#queryT.id#' /> 
      <cfset RssStruct.item[index].pubDate   = createDate(year(Posted), month(Posted), day(Posted)) /> 
      <cfset RssStruct.item[index].title    = xmlFormat(#title#) /> 
      <cfset RssStruct.item[index].Body    = xmlFormat(#Body#) /> 
      <cfset RssStruct.item[index].description  = StructNew() /> 
      <cfset RssStruct.item[index].description.value = '<![CDATA[ <img src="https://www.url.com/assets/Photos/photo/#id#.jpg"> #body# ]]>' /> 
      <cfset RssStruct.item[index].link    = 'https://www.url.com/page.cfm?item=#queryT.id#' /><br> 
     <cfset index = index + 1> 
    </cfif> 
</cfloop> 

<!--- Generate the feed and save it to a file and variable. ---> 

<cffeed action="create" name="#RssStruct#" overwrite="true" xmlVar="myXML" outputFile = "Feed.xml" />` 

回答

1

看起來你已經創建了一個結構項下<description>元素。你試過簡單地把你的代碼放在<description>中嗎?

取而代之的是:

 <cfset RssStruct.item[index].description  = StructNew() /> 
     <cfset RssStruct.item[index].description.value = '<![CDATA[ <img src="https://www.url.com/assets/Photos/photo/#id#.jpg"> #body# ]]>' /> 

試試這個:

 <cfset RssStruct.item[index].description = '<![CDATA[ <img src="https://www.url.com/assets/Photos/photo/#id#.jpg"> #body# ]]>' /> 

您是否嘗試過使用,而不是該項目的<enclosure>元素?

定義和用法

該元件允許一個媒體文件將包含在一個項目。

屬性

長度 - 必須。定義媒體文件的長度(以字節爲單位)

type - 必需。定義媒體文件的類型

url - 必需。定義的URL媒體文件

一個例子是像(你需要確定圖像的字節大小):

<enclosure url="https://www.url.com/assets/Photos/photo/#id#.jpg" length="#ImageLength#" type="image/jpeg" /> 
+0

CFFEED需要說明一個結構。我添加了encolsure,但是我相信該外殼是用於像mp3等媒體文件的。我嘗試了image/jpeg類型,它可以工作,但它顯示爲鏈接而不是圖像。 –

+0

其實......我在谷歌閱讀器中試過了,它顯示了一個鏈接,並在反饋中顯示圖像...嗯。這是進步,但我不確定這是否是解決方案。 –