まずは既存サイトをMODxに取り込むとどうなるかを実験してみました。
結果をまず書くと、取り込み自体はあっさりできてしまいましたが、注意点がいくつかありました。
文字コードを合わせること
MODxの文字コードは、すべてUTF-8としました。そこへ何も考えずに「サイトのインポート」を実行したら、見事に文字化けしてインポートされました
インポートするファイルを/assets/imports/にコピーして、その後「サイトのインポート」を実行するのですが、事前に文字コードをエディタなどで変換しておくのがいいようです。インポートするhtmlファイルのmetaタグは見てくれないし、変換もしてくれないようです。
基本的にはhtmlファイルのみ
最初は画像からJavaScriptからcssからFlashまで全てのファイルを/assets/impoprts/に放り込んで試してみました。取り込みに成功したのは、htmlファイルだけでした。
テーブルデザインもテーブルデザインで取り込み
お客様のサイトは2年ぐらい前に制作されたものなのですが、残念ながら他のWeb屋さんに依頼されてゼロから作られました。その作りが、昔ながらのテーブルで切ったデザインとなっているのでした。これを活かしつつリニューアルするのは気が重いのですが、仕方がありません。
MODxに取り込むと、きちんとテーブル構造のまま取り込まれ、何の問題もなくブラウザで表示できました。Xoopsのときはそのような場合とっても苦労したのですが、さすがMODxです。
PHPファイルはMODxの外で動かす
メールフォームにPHPを使用しているファイルがありました。ルートにPEARも置いてインクルードしています。その場合、とすると、動かすことができました。
- MODxのindex.phpと同じ階層(ルート)にphpファイルを置く
- 旧htmlファイルからphpファイルに張っていたリンクはそのまま何も変更なし
- phpファイルの中でhtmlファイルへ張っているリンクも、フレンドリURLを使っていれば何も変更なし
画像、JavaScript、Flashなどもルートに置く
これらのファイルは、MODx管理下ではなく、ルートにimagesとかjsとかのディレクトリを作って置いてみました。参照はsrc="images/abc.gif"などで問題ありませんね。
おかしなコードは削除される
元のテーブルデザインと比較して、ボーダーが入っていない部分があって、なぜなのか悩んでしまいました。調べてみると、原因は一部の属性が削除されてしまったからでした。
たとえば、
<td width="11" background="images/background.gif">
のbackgroundは消されてしまいます。ドキュメントの編集から入ってもう一度入力してもダメです。同じように使い方が間違っているような部分はみんな消されていました。td要素にbackground属性は定義されていないんですよね。それでもブラウザは表示してくれていたようです。
このWeb屋さん作ったhtmlにはこういう基本的な間違いがたくさんあるんだよなぁ。それでもプロとしてやってるんですよね...
グチっても仕方がない、正しい記述に直さないといけないようです。
今後の更新がラクになるようにテーブルデザインを少しずつ改善していくかどうか... 悩ましいところですね。