2019/06/20 05:57 JST

Geeklog Japan Forums

「Feed Validation Service」でエラー

ページナビゲーション


状態: オフライン

abc

Forum User
Active Member
登録日: 04/28/07
投稿数: 142
こんばんは

Geeklog 2.1.0-extended-jp-1.0日本語パッケージ拡張版 のフィードを、Thunderbirdで設定出来なかったため、
Feed Validation Service でチェックしたところ、

Sorry

This feed does not validate.

line 2, column 18: XML parsing error: <unknown>:2:18: not well-formed (invalid token) [help]

<rss version="2.0"xmlns:atom="http://www.w3.org/2005/Atom">
^

In addition, interoperability with the widest range of feed readers could be improved by implementing the following recommendations.

Feeds should not be served with the "text/plain" media type [help]


Your feed appears to be encoded as "utf-8", but your server is reporting "US-ASCII" [help]


のエラーになってしまいます。

フォーマット: RSS2.0
文字セット : utf-8
言語 : ja

で設定しているのですが、修正が必要でしょうか?




状態: オフライン

abc

Forum User
Active Member
登録日: 04/28/07
投稿数: 142
Thunderbird で正常に購読できている、 Geeklo2.0 サイトのフィードでは、
2行目が、

PHP Formatted Code
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">



となっていて、Feed Validation Service で指摘された、18文字目に空白が入っています。

geeklog 2.1 のフィード

PHP Formatted Code
<rss version="2.0"xmlns:atom="http://www.w3.org/2005/Atom">


フィードを作成しているファイルの場所を教えていただければ自分で修正できそうです。

どなたかご教示願えませんでしょうか?

状態: オフライン

Ivy

Site Admin
Admin
登録日: 01/01/04
投稿数: 5907
場所:Tokyo
/system/classes/syndication/rss.feed.class.php

ここに、以下のような記述がありますね。

PHP Formatted Code
    protected function _feedHeader()
    {
        global $_CONF;

        $xml = parent::_feedHeader()
             . '<rss version="2.0"' . $this->_injectNamespaces() . '>' . self::LB
             . '<channel>' . self::LB
             . '<title>' . $this->_safeXML($this->title) . '</title>' . self::LB
             . '<link>' . $this->_safeXML($this->sitelink, false) . '</link>' . self::LB;
 


どこにあるのかすぐに探したければ、Windowsであれば、Devasで検索するとすぐに探せますよ。
Devas
http://www.forest.impress.co.jp/library/software/devas/

状態: オフライン

abc

Forum User
Active Member
登録日: 04/28/07
投稿数: 142
Ivy さん。
こんにちは。いつもありがとうございます。

/system/classes/syndication/rss.feed.class.php

を修正して2行目のエラーは回避できました。

ただ、
PHP Formatted Code
This feed does not validate.

    line 24, column 0: XML parsing error: <unknown>:24:0: unbound prefix [help]

        <dc:subject>タイトル</dc:subject>


 のエラーが出てしまいます。

今度は、不明のエラーなので修正の手がかりが見あたりません。
他にもいくつかエラーが出ていますが、推奨事項なので、
PHP Formatted Code
<dc:subject>タイトル</dc:subject>
 の部分だけでも対応出来れば大丈夫のようです。

Geeklog 2.1 は、Denim レイアウトや、CKeditor が便利なので積極的に活用したいのですが、
コアの機能である? feedで躓いてしまいました。

同様の問題は発生していないのでしょうか? 

状態: オフライン

Ivy

Site Admin
Admin
登録日: 01/01/04
投稿数: 5907
場所:Tokyo
http://eight.pairlist.net/pipermail/geeklog-devel/2014-August/006792.html
この本家MLで問い合わせたので回答がくるかと思います。

最新のリポジトリでは、最初のエラーは修正されていたんですが、話題名を表示する行におけるエラーは解決できていませんでした。

状態: オフライン

abc

Forum User
Active Member
登録日: 04/28/07
投稿数: 142
Ivy さん

早速ありがとうございました。
結果を心待ちにしています!

状態: オフライン

Ivy

Site Admin
Admin
登録日: 01/01/04
投稿数: 5907
場所:Tokyo
PHP Formatted Code
<managingEditor>contact-us@geeklog.jp (Geeklog Japan)</managingEditor>
<webMaster>contact-us@geeklog.jp (Geeklog Japan)</webMaster>

こういうふうになまえを追加するとエラーが消えました。

2か所、 if (strlen($this->sitecontact) > 0) のところに $_CONF['site_name']を追加します。

PHP Formatted Code
         if (strlen($this->sitecontact) > 0) {
            $xml .= '<managingEditor>'
                 .  $this->_safeXML($this->sitecontact)
                 .  ' ('
                 .  $_CONF['site_name']
                 .  ')'
                 .  '</managingEditor>' . self::LB
                 .  '<webMaster>'
                 .   $this->_safeXML($this->sitecontact)
                 .  ' ('
                 .  $_CONF['site_name']
                 .  ')'
                 .  '</webMaster>' . self::LB;
        }

 



また、rss.feed.class.phpの、以下をコメントアウトして、話題名を表示しないようにするとエラーは消えます。
これでよいかどうかは別として。

PHP Formatted Code
        if (array_key_exists('topic', $article)) {
            $topic = (array) $article['topic'];

            foreach ($topic as $subject) {
                $xml .= '<dc:subject>'
                     .  $this->_safeXML($subject)
                     .  '</dc:subject>' . self::LB;
            }
        }
 

状態: オフライン

Ivy

Site Admin
Admin
登録日: 01/01/04
投稿数: 5907
場所:Tokyo
http://project.geeklog.net/tracking/view.php?id=1780
こちらに修正方法を登録してきました。

対策したのは
http://validator.w3.org/feed/check.cgi?url=http%3A%2F%2Fwww.geeklog.jp%2Fbackend%2Fgeeklog2.rss

合格しました。

状態: オフライン

abc

Forum User
Active Member
登録日: 04/28/07
投稿数: 142
取り急ぎ、コメントアウトで、合格させて Thunderbird にて購読が可能になりました。

他の部分は、これから修正してみます。

これで安心して 2.1 を使うことが出来ます!

Ivy さん。 ご対応ありがとうございました。

P.S.
ご紹介いただいた、Devas はフォルダごと検索でき、一覧表示できるのですこぶる便利です!
こちらも使わせていただきます。

状態: オフライン

Ivy

Site Admin
Admin
登録日: 01/01/04
投稿数: 5907
場所:Tokyo
happy
解決してよかったです!

Devasは、検索だけでなく、一斉置換もできます。
デバッグには必須です Smile

ページナビゲーション

時刻はすべて JST , 現在の時刻は 05:57 AM

  • 通常
  • 注目トピック
  • ロック済
  • 新着
  • 注目トピック 新着
  • ロック済トピック 新着
  •  ゲストユーザの投稿を見る
  •  ゲストユーザ投稿可能
  •  一部のHTMLを許可
  •  バッドワードをチェック