2

Gallery2 RSSモジュールと数時間戦い、「フィードはまだ定義されていません」というメッセージだけを受け取った後、私はあきらめました。「フィードはまだ定義されていません」というGoogle検索に基づくと、これはかなり一般的な問題です。Gallery2 RSSモジュールを機能させるためのヒントやコツはありますか?または、このPHPアプリケーションの問題をデバッグしようとしている比較的PHPを知らない開発者のためのヒントはありますか?

4

2 に答える 2

1

この問題に対する私の最終的な(そしてできれば一時的な)解決策は、PythonCGIスクリプトでした。私のスクリプトは、それが役立つと思う人のために続きます(これは完全なハックであるという事実にもかかわらず)。

#!/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()
于 2008-08-11T01:33:20.080 に答える
-2

これが役立つかどうかはわかりませんが、別のトピックで解決策として提示された非常に単純な RSS を次に示します。

PHP RSS ビルダー

于 2008-10-14T15:50:25.007 に答える