来自Gallery2的RSS feed
时间:2020-03-05 18:38:52 来源:igfitidea点击:
在与Gallery2 RSS模块进行了几个小时的争吵之后,我只收到消息"尚未定义提要",我放弃了。根据Google搜索"尚未定义供稿",这是一个非常普遍的问题。我们是否有任何提示和/或者技巧来使Gallery2 RSS模块正常工作?还是对那些不太了解PHP的开发人员尝试调试此PHP应用程序问题的任何提示?
解决方案
回答
对于这个问题,我最终的(也是暂时的)解决方案是Python CGI脚本。我的脚本适用于可能会觉得有用的任何人(尽管这完全是黑客)。
#!/usr/bin/python """A CGI script to produce an RSS feed of top-level Gallery2 albums.""" #import cgi #import cgitb; cgitb.enable() from time import gmtime, strftime import MySQLdb ALBUM_QUERY = ''' select g_id, g_title, g_originationTimestamp from g_Item where g_canContainChildren = 1 order by g_originationTimestamp desc limit 0, 20 ''' RSS_TEMPLATE = '''Content-Type: text/xml <?xml version="1.0"?> <rss version="2.0"> <channel> <title>TITLE</title> <link>http://example.com/gallery2/main.php</link> <description>DESCRIPTION</description> <ttl>1440</ttl> %s </channel> </rss> ''' ITEM_TEMPLATE = ''' <item> <title>%s</title> <link>http://example.com/gallery2/main.php?g2_itemId=%s</link> <description>%s</description> <pubDate>%s</pubDate> </item> ''' def to_item(row): item_id = row[0] title = row[1] date = strftime("%a, %d %b %Y %H:%M:%S GMT", gmtime(row[2])) return ITEM_TEMPLATE % (title, item_id, title, date) conn = MySQLdb.connect(host = "HOST", user = "USER", passwd = "PASSWORD", db = "DATABASE") curs = conn.cursor() curs.execute(ALBUM_QUERY) print RSS_TEMPLATE % ''.join([ to_item(row) for row in curs.fetchall() ]) curs.close()
回答
好吧,我不确定这可以为我们提供帮助,但这是一个非常简单的RSS,在另一个主题中作为解决方案提供了它:
PHP RSS生成器