2010年3月| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
トップ > Movable Type > MT4.2 > Movable Type 4.2:カテゴリー名にタグを入れると、Atomで出力エラーがおきる

Movable Type 4.2:カテゴリー名にタグを入れると、Atomで出力エラーがおきる

2009年1月16日 23:16

livedoor Reader

Movable Type 3.3から、Movable Type 4.1にアップグレードして以降、atom.xmlが読めなくなり、更新が11ヶ月止まっていた(恥)

昨年春頃、ブログをRSSで読まれている方から、「atom.xmlが読めません」と、ご指摘があった。特にその時は何をしたというわけでもないので、どうやらMT3.3から、MT4.1にアップグレードしてから、読めなくなったようだ。
ということで、あれこれ修正を試みたのだが、atom.xmlをオリジナルに戻しても駄目で、原因がさっぱりわからず、index.xmlを購読していただくように、問い合わせのあった方には個別に返答をしていた。
かように、あきらめモードでいたのだが、年末にlivedoor Readerでatom.xmlを購読されている方から、「登録の購読者数が多いので、もったいないな~ 」と、ご指摘があり、実際にlivedoor Readerを確認すると、購読者数が195件もある上に、表示画面が11ヶ月前で止まっており、これはいけないと、真剣に対策に取り組むことにした。
同じ現象で悩んでいる方もいるかもしれないので、以下に、原因と対策を記載したい。

■エラーの原因

Internet Exploreのエラー表示を確認して、ようやく、これが原因らしいということがわかった。
#エラーはきちんと読みましょう(恥)

文字 '< ' は、属性値内に使用できません。リソース 'http://www.dakiny.com/atom.xml' の実行エラーです。ライン 25、位置 25 

該当するソースを確認すると

<category term="<![CDATA[<010>Movable Type]]>" scheme="http://www.sixapart.com/ns/types#category" /&g...

atom.xmlが読めなかったのは、カテゴリー名の前に入れた<001>等のタグが原因だった。MT3.3までは問題が起きていなかっただけに、原因がわからなかったのだ。

■修正前の状態

カテゴリーの編集

Movable Typeでは、標準機能では、カテゴリーの順番を決めることができない。

そこで、カテゴリー名に<010>とか順番を入れてあげて、順位を表示していたのだが、MT3.3までは問題がおこらなかった、このハックも、MT4.1(おそらくMT4.0以降)にアップグレードした時点で、Atomの出力で問題が出たのだな。MT3.3以前では問題がなかったので、まったく気づかなかった。
ついでに言えば、MT3.17から、このブログを利用しており、名前に<010>等の数字を入れて表示順を決めていた関係で、「カテゴリーの説明」 をカテゴリー名表示にしていた。
MT3.3以前は、テンプレート以外の管理画面にHTMLタグを入れていても問題は生じなかったのだ。

◇ソース

<!-- カテゴリー -->
<MTIfArchiveTypeEnabled archive_type="Category">

<h2>Categories</h2>

<div class="em2">
<MTTopLevelCategories sort_method="SortCatFld::Sort">

<MTSubCatIsFirst>
<ul>
</MTSubCatIsFirst>
<MTIfNonZero tag="MTCategoryCount">
<li><a href="<$MTCategoryArchiveLink$>" title="<$MTCategoryDescription$>"><MTCategoryLabel> (<$MTCategoryCount$>)</a>
<MTElse>
<li><MTCategoryDescription>
</MTElse> </MTIfNonZero>
<MTSubCatsRecurse>
</li>
<MTSubCatIsLast>
</ul>
</MTSubCatIsLast>
</MTTopLevelCategories>
</div>
</MTIfArchiveTypeEnabled>

■修正後の状態

カテゴリーの編集

ひとまず、表示順は無視して、atom.xmlの出力を試みる。

<010>等のタグで挟んだ数字をすべて削除して、「カテゴリーの説明」も別の用途で利用したいので、出力表示も「カテゴリーの名前」が表示されるように修正した。

◇ソース

<!-- カテゴリー -->
<MTIfArchiveTypeEnabled archive_type="Category">

<h2>Categories</h2>

<div class="em2">
<MTTopLevelCategories sort_method="SortCatFld::Sort">

<MTSubCatIsFirst>
<ul>
</MTSubCatIsFirst>
<MTIfNonZero tag="MTCategoryCount">
<li><a href="<$MTCategoryArchiveLink$>" title="<$MTCategoryLabel$>"><MTCategoryLabel> (<$MTCategoryCount$>)</a>
<MTElse>
<li><MTCategoryLabel>
</MTElse> </MTIfNonZero>
<MTSubCatsRecurse>
</li>
<MTSubCatIsLast>
</ul>
</MTSubCatIsLast>
</MTTopLevelCategories>
</div>
</MTIfArchiveTypeEnabled>

 と修正した後、オリジナルのMovable Type 4.23から atom.xmlをコピー&ペーストし、再構築して、完了。
※壊れたままのatom.xmlを再構築しても、エラーが出ることに変わらないので、オリジナルのatom.xmlに入れ替えること

■表示結果

http://www.dakiny.com/atom.xmlの表示を確認してみた。

IE7のRSSリーダー

Internet Explorer 7の表示

順序が異なるのは、更新日で取得しているからのようだ。

FirefoxのRSSリーダー

Firefox 3.0.5の表示

問題なく表示できるようだ。

livedoor Reader

livedoor Readerの表示

11ヶ月ぶりに更新されました(恥)

atom.xmlを購読されていた方々、今まで。長らく放置しておいて、ほんとうにごめんなさい。

■備考

推測にすぎないのだが、MT3.3以前を使っていた方は、あたりまえのように、テンプレート以外の管理画面にタグを入れていた。
上記の手法はあくまでもハックであり、正しい手法ではない。MT4で、Atomで出力が得られないとしたら、上記の設定を疑ってみてもいいかもしれない。

参考になれば幸い。

投稿者: Dakiny 日時: 2009年1月16日 23:16 |  このエントリーをはてなブックマークに追加 「Movable Type 4.2:カテゴリー名にタグを入れると、Atomで出力エラーがおきる」のはてなブックマーク被リンク数 |  このエントリをdel.icio.usに追加 このエントリのdeliciousの被リンク数  |  このエントリをlivedoorクリップに追加 このエントリのlivedoorクリップ被リンク数 |  「Movable Type 4.2:カテゴリー名にタグを入れると、Atomで出力エラーがおきる」をTwitterでつぶやく |   | コメント(0)  | トラックバック (1)

トラックバック

このエントリーのトラックバックURL:
http://www.dakiny.com/mtos/mt-tb.cgi/1764
※文章内容と関係のないトラックバックは固くお断り。

この一覧は、次のエントリーを参照しています: Movable Type 4.2:カテゴリー名にタグを入れると、Atomで出力エラーがおきる:

» MT Atomの出力エラー from 優雅なアフィリエイト生活を夢みて
Atomの出力エラーで悩んでいましたが原因が判明しました。http://www.... [詳しくはこちら]

トラックバック時刻: 2009年10月18日 22:36

コメントを投稿

Search


キャッシュ使用
Powered by 暴想

Download

Categories

ArchiveList

Trackbacks

Comments