2008/1/31 Thursday 13:36:27
XML宣言は文書の冒頭に
<?xml version=”1.0″ encoding=”utf-8″?>
というような記述をし、XML文書であることを宣言するもので、記述が推奨されている。
理屈で言えばUTF-8では省略できるのだが、推奨されているんだから書いておこうっと。
ユーザの環境では必ずしもUTF-8が使えるわけではないし、必須事項として書く癖をつけておけば良いと思う。
ただし、XHTMLコーディングを行う際にこのXML宣言を記述すると、IE6で表示崩れを起こすことがある。
XML宣言によって意図しない表示モードになってしまうからで、これを「IEの仕様」とは受け入れ難く私は敢えてバグと言うんだけど。
そこで、CMSで動的にページ生成できるときには、プログラムで宣言のありなしを制御するようにしている。
(要はIEで表示する場合だけXML宣言を取ってしまうということ。)
MODxではスニペット([[XmlVersion]])を作り
<?php
f (!ereg(”MSIE”,$_SERVER[’HTTP_USER_AGENT’])) {
echo “<?xml version=\”1.0\” encoding=\”utf-8\”?>\n”;
}
?>
テンプレートの冒頭に追加する。
[[XmlVersion]]<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml” lang=”ja” xml:lang=”ja”>
スニペットタグの後ろに改行を入れないこと。
また、XHTML文書のキャッシュはすべてオフにしておかないと意味がないので注意。
スニペット呼び出しの際に[!XmlVersion!] と書けば良いことがわかった。
これでこの部分だけはキャッシュされなくなる。
MODxに限らずどんなCMSでもインストールしたら真っ先にやることのひとつ。
Wordpressならheader.phpの冒頭に上記PHPコードを追加すればOK。
Nucleusなら上記PHPコードを記述したファイル(xml_version.php)をスキンファイルと同階層に置き、
<%phpinclude(xml_version.php)%>と呼び出して使用する。
2008/1/30 Wednesday 12:11:46
昨年から自社サイト整備を順次行っているが、現在SOHO KOEDAサイトのリニューアルを決行中。
スタッフ領域は既に完全システム化しているものの、表サイトをシステム化するのは初めてのこと。
今回はMODxを使ってみることに決定した。
早速インストールしてみたが比較的簡単にできた。
ただし、MySQLのバージョンの問題で日本語が文字化けするため、ほんの少しソースに手を加えなければならなかった。修正は2箇所。
/manager/index.php
の143行目に
mysql_query(’SET NAMES utf8;’);
を追加
} else {
mysql_select_db($dbase);
@mysql_query(”SET CHARACTER SET {$database_connection_charset}”);
}
mysql_query(’SET NAMES utf8;’);
manager/includes/extenders/dbapi.mysql.class.inc.php
の107行目に
同じく
mysql_query(’SET NAMES utf8;’);
を追加
$modx->queryTime += $totaltime;
}
mysql_query(’SET NAMES utf8;’);
}
これでMySQLのバージョンによる文字化けは解消した。
(この方法はいろいろなCMSで有効なので、該当箇所を探し
mysql_query(’SET NAMES utf8;’);を追加し解消できる。 )
MODxではプラグインなどの他に、スニペット、チャンクという概念がありいろいろな機能を簡単に実装できたり、デザイン的な自由度が高いため、あらゆるサイト構築に向きそうだ。
楽しみ♪
2008/1/29 Tuesday 16:28:02
「ブログを自前で」の念願がやっと叶った。
結局Wordpressに落ち着いたんだけど。
今回のカスタマイズについてはもちろん今まで通りのこだわりをもって行った。
WWWの片隅で仕事をしていながら、ブログにはどうしても拒否反応がある私としては
* とにかく見やすい構成
* わかりにくい言葉の排除
* 難しい機能の排除
* 美しいソースコード
に特に配慮してみた。(デザインはともかく・・・^^)
Wordpressは何度となくサイト構築も行っているので 、インストール自体に問題はなかったものの、久しぶりのカスタマイズだったので結構時間がかかってしまった。
入れたプラグインは以下の通り
まだ活用できていないものもあるが、プラグインのソース整備(Mobile Eye+はデフォルトのまんま!)も含め大体一段落したと思う。
・・・というわけで今日からまた再開します。
実に2ヶ月以上ぶり^^;