После нескольких часов борьбы с RSS-модулем Gallery2 и получения только сообщения «каналы еще не определены», я сдался. Основываясь на поиске в Google слова "каналы еще не определены" , это довольно распространенная проблема. Есть ли у вас какие-либо советы и / или приемы для работы RSS-модуля Gallery2? Или какие-нибудь советы относительно относительно неосведомленного 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, которая была представлена как решение в другой теме: