функция cffeed: показать только самый последний пост? - PullRequest
2 голосов
/ 07 января 2012

У нас есть функция для получения RSS-каналов и отображения сообщения на странице ColdFusion с помощью этого кода:

<cfset rssUrl = "rss1">
<cffeed action="read" source="#rssUrl#" query="fitness" properties="info">

<cfset rssUrl2 = "rss2">
<cffeed action="read" source="#rssUrl2#" query="nutrition" properties="info">

<cfif #fitness.PUBLISHEDDATE# gt #nutrition.PUBLISHEDDATE#>
<cfset entries="fitness">
<cfelse>
<cfset entries="nutrition">
</cfif>

Вывод через:

<cfoutput query="#entries#">

Проблема в том, что лента RSS имеет несколько сообщений, и мы хотим показать только одну. Любые мысли о том, как заставить его тянуть и отображать только самый последний пост? (Мы хотим, чтобы в фиде было несколько постов, поэтому сейчас наше неидеальное решение - установить максимальное количество постов в фиде 1)

Ответы [ 2 ]

2 голосов
/ 08 января 2012

Нет ничего плохого в ответе Рэя , но есть и другие варианты.

<cfoutput query="#entries#" maxrows="1">

Предлагает наименьшее нарушение работы вашего существующего кода, и, если вы решите изменить количество отображаемых строк (например, через пользовательские настройки), это легко изменить.

OR

Если вы копируете объект запроса, а не имя запроса (которое на самом деле является не копией, а копией по ссылке)

<cfset entries = fitness>

вместо

<cfset entries = "fitness">

вы можете сделать это

<cfoutput>
  #entries.columnName1#
  #entries.columnName2#
  <!--- etc. --->
</cfoutput>

, который по умолчанию будет отображать только первую строку запроса.

2 голосов
/ 07 января 2012

cfoutput/query=".." будет проходить весь запрос.Если вы хотите сделать только первую строку, используйте:

<cfoutput>
Title from row 1: #somequery.title[1]#
</cfoutput>

В основном - запись массива в столбце.Имеет смысл?

...