Apr 22, 2008

LoggixをXREA FREEサービスの広告自動表示に対応させる(2)

旧Ganesha's Lab.(by SQLite2版 Loggix)より移転転記。(2009-12-13)

XREA FREEサービスの広告自動挿入は、本来XHTML ValidであるはずのLoggixのコードも汚してくれます。とりあえず、設置直後のDefault状態でAnother HTML-lint gatewayのチェックを受けてみたところ、結果ははわずか3点という有様でした。
修正前のAHLチェック結果

内容を見ると、まず、冒頭のXML宣言は文書の先頭でなければなりません。という指摘と、19行目に大量のエラーが発生しているのが目に付きます。まずは、この2つから対処していくことにします。

冒頭のXML宣言のエラーですが、本来、XML宣言がなければならない1行目が改行のみとなっており、XML宣言が2行目になってしまっています。この現象は、実はP_BLOGの時にまったく同じ現象に遭遇していたため、原因はすぐ分かりました。これはXREAの広告自動挿入の副作用で、対応策は広告自動挿入を止めるしかありません。

そして、19行目の大量のエラーですが、これは自動挿入されたXREAの広告表示コードです。AHLの解説を読むと分かりますが、このコードはXHTMLではなく、ただのHTMLなのです。こちらも、やはり広告自動挿入を止めるしかありません。

広告自動挿入を止めるにはLoggixを設置したディレクトリに下記のように記述した.htaccessを置きます。

LayoutIgnoreURI /loggixを設置したディレクトリ名/*

但し、XREA FREEサービスは広告表示が義務ですので、自動挿入を止める代わりに手動広告表示コードを挿入する必要があります。なお、挿入すべきコードはXREAの管理メニューで指定されますが、実はここで指定されるコードもXHTMLではありません。そのまま記述してもXHTML Validには結局なりませんので、私は「とにかく広告が表示されれば問題ないはず」と勝手に解釈することにしました。もしかしたら問題があるかもしれませんが、P_BLOGの時も同じようにして、未だにお咎めを受けていないので大丈夫でしょう。具体的にはtheme/base.htmlに次のようなコードを挿入しました。

<a href="http://www.xrea.com/">
<img height="9" src="http://imgj.xrea.com/banner_top_1.gif" width="468" alt="XREAサーバーの広告です" /> 
</a>
<br />
<a href="http://img.xrea.com/ad_click.fcg">
<img height="60" src="http://img.xrea.com/ad_img.fcg" width="468" alt="XREAサーバーの広告です" />
</a>

ここまでの修正の結果、Another HTML-lint gatewayのチェック結果を99点まで持ってきくることができました。
修正後のAHLチェック結果

残る減点対象は、optionタグにselected属性が指定されていない、というものです。これはDefaultのCSSを指定しろってことだと思います。Loggixのシステム環境設定でDefaultのCSSは指定済みなので、これはLoggixの生成するXHTMLコードが減点対象になってるってことなんだろうなあ。もしかしたら、PHPをいじらなきゃいけないかな、とドキドキしつつ、これは次回以降のネタにしたいと思います。