我正在尝试创建一个已经使用普通 cf 标签正常运行的 QofQ。但更改是使用普通的 cf 标签并将其转换为 cfscript 功能。cffeed action="read" source="#source#/feed/" query="rssFeed"
有一个环绕结构的 cf 查询循环。一个结构是在 cf 查询循环之外定义的,数组也是如此。item[currentRow] 包含在 cf 查询循环中,而结果是 RSS 提要信息。例如查询='rssFeed'。
enter code here
cfset myStruct = structNew()
cfset myStruct.item = arrayNew(1)
cfloop query="rssFeed"
cfset myStruct.item[currentRow] = structNew()
cfset myStruct.item[currentRow].guid = structNew()
cfset myStruct.item[currentRow].guid.isPermaLink = 'true'
cfset myStruct.item[currentRow].title = xmlFormat(rssFeed.TITLE)
cfset myStruct.item[currentRow].comments.value = xmlFormat(rssFeed.COMMENTS)
cfset myStruct.item[currentRow].link = xmlFormat(rssFeed.RSSLINK)
cfloop
下一个 cf 循环应该输出 rssFeed 结果一到四个。它适用于普通的 cf 查询循环,基本上它是一个 QofQ,在第二个 cf 查询循环上设置了起始行和结束行。arrayNew() 是 RSS Feed 标签中带有 rssFeed 查询的项目列表。必须在第二个 cf 查询循环和输出中设置起始行和结束行。
enter code here
cfloop query="rssFeed" startrow="1" endrow="4"
itemprop="url" href="#rssFeed.RSSLINK#" title="#rssFeed.TITLE#" class="feedBlock">#rssFeed.TITLE#
cfloop
为了发布的目的,我缩短了代码并设法找到了一个解决方案,但这不是我作为最终结果搜索的代码的解决方案。
我设法在 cfsctipt 中创建的作品,但我正在尝试进一步分解它。cfscript 的一个工作示例:
示例 1:
enter code here
*cfscript*
// Define our query
one = ["#rssFeed.TITLE[1]#,#rssFeed.CONTENT[1]#,#rssFeed.RSSLINK[1]#"];
myQuery = queryNew(" ");
queryAddColumn(myQuery, "one", "CF_SQL_VARCHAR", one);
// By row index
for (i = 1; i <= myQuery.recordCount; i++){
writeOutput("<ul><li>#rssFeed.TITLE[1]#,#rssFeed.CONTENT[1]#,#rssFeed.RSSLINK[1]#</li></ul>
");
}
// By query
for (row in myQuery) {
writeOutput("<li>#row.one#</li>");
}
*cfscript*
示例 2:
enter code here
// Define our query
myQuery = queryNew("title,content,link", "varchar,varchar,varchar", [["#rssFeed.TITLE#"],["#rssFeed.CONTENT#"],["#rssFeed.RSSLINK#"]]);
i = 1;
startRow = 1;
endRow = 4;
thisQuery = queryNew('#myQuery.columnlist#');
while (i lte myQuery.recordcount)
{
if(++i gte startRow && i lt endRow)
{
queryAddRow(thisQuery,1);
c = 0;
while (++c lte listLen('#myQuery.columnlist#'))
{
QuerySetCell(thisQuery, listGetAt('#myQuery.columnlist#',c), myQuery[listGetAt('#myQuery.columnlist#',c)][1], thisQuery.recordCount);
}
}
}
WriteDump(thisQuery);
writeOutput("<ul><li>#not sue of what output#</li><li>#not sure of what output#</li></ul>");
作为网站升级和进一步提高我的编程知识的一部分,我正在尝试将代码从普通的 cf 标签转换为 cfscript。感谢您的宝贵时间,如果您不想提供帮助,没问题。