静的HTMLサイトをMODXに徐々に移行したい

質問全般・改善要望
tomoac
メンバー
メンバー
記事: 15
登録日時: 2013年6月19日(水) 16:16

静的HTMLサイトをMODXに徐々に移行したい

投稿記事 by tomoac »

FrontPageというHTMLエディターで作ったサイトを持っています。
ファイルが多量なので、少しずつMODXに移行していこうと思っています。
modxへの移行中に、移行したページとそうでないページか閲覧者にはできるだけわからないように移行していきたいと思っています。
その場合、いい方法があれば教えていただけませんでしょうか。
アバター
yama
管理人
記事: 3251
登録日時: 2009年7月29日(水) 02:50

Re: 静的HTMLサイトをMODXに徐々に移行したい

投稿記事 by yama »

普通にMODXをインストールして、フレンドリーURLの設定を有効にして1ページずつ普通に作っていくとそのようにできると思います。MODXでページを組み直した時点で、そのURLの静的htmlファイルを削除するとMODXページのほうが表示されるようになります。
MODXで作り直したページを公開する前にこまめにプレビューしたいと思うので、その場合は index.php?id=リソースID のURL形式で該当ページを開くことができます。

他には、サイト全体が完成するまではエクスポート機能を併用する方法も使えると思います。

最初に全部一括でインポートして、順次テンプレート構成に差し替えていく方法も使えると思います。私はこの方法をよく使います。
tomoac
メンバー
メンバー
記事: 15
登録日時: 2013年6月19日(水) 16:16

Re: 静的HTMLサイトをMODXに徐々に移行したい

投稿記事 by tomoac »

早速のご回答ありがとうございます。
できましたらもう少し教えてください。

一括インポート、temp/importにおいてインポートの実行をしてみました。

インポートそのものは成功しましたが、ほとんど全部が「タイトルがありません」、「このコンテナは空です」となってしまいました。
bodyのみの取り込みとしたところ、かなり取り込めましたが、「タイトルがありません」、「このコンテナは空です」もかなり多いです。
インポート前のHTMLのバージョンが古いせいだと思います。

いい方法はないでしょうか。
アバター
yama
管理人
記事: 3251
登録日時: 2009年7月29日(水) 02:50

Re: 静的HTMLサイトをMODXに徐々に移行したい

投稿記事 by yama »

うまくインポートできなかったファイルをいくつか確認したいです。PMで送っていただくか一部伏せ字でもいいので見させていただいてよいでしょうか?
tomoac
メンバー
メンバー
記事: 15
登録日時: 2013年6月19日(水) 16:16

Re: 静的HTMLサイトをMODXに徐々に移行したい

投稿記事 by tomoac »

その後見ていて、文字コードがシフトJISであることに気づきました。
たぶんそれが原因と思います。
全ファイルをUTF8に変換を考えています。
PHPのコマンドで作ろうと思っていますが、コマンドとしてうまく動かないのでそこで悩んでます。
ツールを探そうかなとか。
MODXのインポートのコードに変換関数を挟めば良いような気もしますが、どうでしょう簡単にできるでしょうか。

あと、画像が取り込めないことがわかりました。
昔からのページなので、画像がそこら中に散らばっていますので、引っ張っている画像も引っ張ってくるか、リンクの調整が必要です。
アバター
yama
管理人
記事: 3251
登録日時: 2009年7月29日(水) 02:50

Re: 静的HTMLサイトをMODXに徐々に移行したい

投稿記事 by yama »

index.htmlを含まないフォルダを正しく処理できない不具合を先日修正したところですが、それが関係している気がします。
(エンコード変換は自動的に行ないます)

http://code.google.com/p/modx-ja/downlo ... .0.10J.zip
上記パッケージに含まれるmanager/actions/import_site.static.phpに差し替えてみて大半がうまくいくようであれば、それが原因と見なせます。その場合は修正を加えます。

画像に関してはパスを変更しないので、画像はディレクトリごとそのままにしておくとよいと思います。
tomoac
メンバー
メンバー
記事: 15
登録日時: 2013年6月19日(水) 16:16

Re: 静的HTMLサイトをMODXに徐々に移行したい

投稿記事 by tomoac »

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

入れ替えたら、先の不具合なく、取り込みはできました。
しかしながら、まだいくつか問題があります。

「htmlまるごと」だと取り込んだ後、編集画面がHTMLのままなので、「body要素のみ」で取り込みたいですが、
「htmlまるごと」だと取り込んだ後、編集画面がHTMLのままというのは仕様でしょうか?

1.取り込まれましたが、文字コードがシフトJISのままなので、編集画面で文字化けします。(これはbodyだけの場合問題なしでした)

2.画像がコピーされないようで、画像が表示できません。

3.「リソースが多いため非表示」となり前半しか確認できません。

4.<a name="関連リンク集">関連リンク集</a>というアンカーがあって、<a href="#関連リンク集">関連リンク集</a>でリンクしているのですが、この動作がうまく動きません。
  トップ画面に遷移します。

いまのところかんな感じです。
対策がむつかしければ、あきらめますが、なんとかなりそうでしょうか。
アバター
yama
管理人
記事: 3251
登録日時: 2009年7月29日(水) 02:50

Re: 静的HTMLサイトをMODXに徐々に移行したい

投稿記事 by yama »

body要素のみで取り込んだ時も、見た目がWYSIWYGになってるだけでデータの実体はHTMLになってます。最初はまるごと取り込んでおいて、更新頻度が高そうなページから順にテンプレート化していくのが効率がよいと思います。投稿画面で「リッチテキストで編集」をオンにすると、とりあえずWYSIWYG編集は可能です。どちらかというとMODXのユーザはWYSIWYG編集を苦手とする人が多いようなので、デフォルトではオフにしています。

エンコードがShift_JISから自動的に変換されないのは不具合だと思いますので、修正してみたいと思います。具体的な文字列など何かヒントをいただけると修正しやすいですが、いかがでしょう?たぶん判定の順番を変更するだけで修正できそうに思います。

> 2.画像がコピーされないようで、画像が表示できません。

画像は取り込まないです。そのままのディレクトリ構成で表示されるはずですが、実際にパスを確認してみてずれてますでしょうか?

> 3.「リソースが多いため非表示」となり前半しか確認できません。

グローバル設定で調整できますが、100ページまで表示できるのでかなり多い気がします。管理画面のメインのペインで一覧表示できるので、そちらのほうが見やすいのではと思いますが、いかがでしょうか?ツリーで表示したい場合はグローバル設定の「コンテナ内の表示数」で調整できます。

> 4.<a name="関連リンク集">関連リンク集</a>というアンカー

「サイト内リンクをリンクタグに変換」をオンの状態でインポートしたものと思いますが、この場合は、うまく変換されなかった場合は手作業で修正する必要があります。
tomoac
メンバー
メンバー
記事: 15
登録日時: 2013年6月19日(水) 16:16

Re: 静的HTMLサイトをMODXに徐々に移行したい

投稿記事 by tomoac »

リンクを変換するにはチェックしていませんが、変換されていることがわかりました。

以下の画像のタグ、

<img border="0" src="images/iscsiinit4.gif" width="408" height="422">

書いてあるHTMLファイルと同じレベルにあるimagesフォルダの中に画像ファイルがあるのですが、

<img border="0" src="http://xxxxx.com/images/iscsiinit4.gif" width="408" height="422">

のように変換されるため画像が表示されないことがわかりました。

なお、変換元は、以下です。
http://tomo.ac
*15年前の環境で作っきたものですので、タグがぐたぐたで恥ずかしいですが。

全取り込みのほうが問題がなさそうですね、全取り込みでもWYGIWIGで表示させるにはどうやればいいですか。

アンカーの問題は、#sssだけの場合、index.php#sss とみなされて処理されるよいうに思います。

また画像だけのフォルダは取り込めないというかリンクがつながらないような気がします。

もう少し調べてみます
アバター
yama
管理人
記事: 3251
登録日時: 2009年7月29日(水) 02:50

Re: 静的HTMLサイトをMODXに徐々に移行したい

投稿記事 by yama »

tomoac さんが書きました:リンクを変換するにはチェックしていませんが、変換されていることがわかりました。
tomoac さんが書きました:アンカーの問題は、#sssだけの場合、index.php#sss とみなされて処理されるよいうに思います。
なるほど、たぶんTinyMCEが原因ですね。本文のみをインポートすると投稿画面がWYSIWYGになりますが、この場合、投稿画面を開いた瞬間にリンクが変換されます。そのまま更新ボタンをクリックすると保存されます。
これは設定で回避できます。管理画面の「エレメント」→「エレメント管理」で「プラグイン」のタブの「TinyMCE」を開きます。ここの設定で「Path Options」を「No convert」にセットすると変換しなくなります。

こういう場合、よりよい方法としてはどうすべきかというと、たとえばDreamweaverを使っている場合は、Dreamweaverがパスを変換する機能を持っていますので、あらかじめDreamweaverでコンテンツを整理しておきます。具体的には、コンテンツ領域内の画像をcontent/images/ ディレクトリ内に全て移動します。ヘッダ・フッタやナビゲーションなどで用いるテンプレート領域の画像は、適当なディレクトリでよいと思います。(MODXは、テンプレートに関しては定位置がありません)
今回はFrontPageをお使いとのことで、FrontPageにパス管理機能があるかどうかですね。
Dreamweaverのパス変換機能も万全ではなくて、結局は手作業がそれなりに必要になります。

content/images/ ディレクトリ内に全て移動できたら、TinyMCEの設定を変更しなくても画像が表示されます。なかなか難しい作業なので、普通の人はそこまではしないと思いますが、tomoさんならコツが分かればすぐにできるかもしれませんね。でも今回は、変換せずにそのままの画像ディレクトリの構成のまま移管することもできると思います。せっかくCMSに移管するのにすっきりしない気もしますが・・
tomoac さんが書きました:全取り込みのほうが問題がなさそうですね、全取り込みでもWYGIWIGで表示させるにはどうやればいいですか。
ページ個別で行なう場合は、投稿画面の「ページ設定」タブの「リッチテキストで編集」をオンにします。全ページまとめてWYGIWYGにしたい場合は、管理画面の「モジュール」→「DocManager」の「その他」のタブで、「リソースの各種設定」で「エディタ/なし」を実行します。パラメータの指定は「0**」です。IDがゼロのリソースのサブリソースを全て対象にするという意味で、IDがゼロというのはルートのような扱いになります。

全取り込みの場合はデフォルトでWYGIWYGにならないのは理由があって、TinyMCEやCKEditorなどのWYGIWYGエディタは、基本的に目に見える部分、つまりbody領域内しか編集できないからです。たまたまTinyMCEにはfullpageというプラグインが備わっていて、これを有効にするとhead要素も管理できるようになります(というか、勝手にhead要素を削除しなくなる)。
アバター
yama
管理人
記事: 3251
登録日時: 2009年7月29日(水) 02:50

Re: 静的HTMLサイトをMODXに徐々に移行したい

投稿記事 by yama »

念のため、管理画面の「ツール」→「バックアップ・リストア」で、最初のうちはこまめにスナップショットをとっておくと安心と思います。作業を間違ったと思ったら、リストアのリンクをクリックすればすぐに元に戻せます。
tomoac
メンバー
メンバー
記事: 15
登録日時: 2013年6月19日(水) 16:16

Re: 静的HTMLサイトをMODXに徐々に移行したい

投稿記事 by tomoac »

TinyMCEの設定を変更しました。
ソースはそのまま変更されなくなりましたが、やはり画像は表示されません。
リンクもクリックすると、トップページに移動します。

画像をまとめる件ですが、htmlファイルだけで7000~8000ありますので、画像も数1000以上が散らばっているとおもうので無理です。

MODXでも無理かなとあきらめようかとおもいつつ。
アバター
yama
管理人
記事: 3251
登録日時: 2009年7月29日(水) 02:50

Re: 静的HTMLサイトをMODXに徐々に移行したい

投稿記事 by yama »

HTML的にソースが変わってないのに表示されないのは変ですね。何か意外な原因があるような気がします。サイトが分かりましたので、あとで調べてみます。
アバター
yama
管理人
記事: 3251
登録日時: 2009年7月29日(水) 02:50

Re: 静的HTMLサイトをMODXに徐々に移行したい

投稿記事 by yama »

実際に調べてみました

http://tomo.ac/goodstream/qos/
「タイトルがありません」と表示されるのは、たとえば上記のURLではないかと思います。もしそうであれば、これはいちおうMODXの仕様どおりだと思います。サイトの構造上、このような無視してよいURLが多いのかもしれない、という気がします。実際にそうだとすると管理画面上では分かりにくくなりますので、工夫する必要があるかもしれません。

画像が表示されないのは確認できませんでした。もしよければ、うまくいかなかったページのURLをいくつか例示いただけますでしょうか?

エンコードの変換がうまくいかないのは全ページでしょうか?
アバター
yama
管理人
記事: 3251
登録日時: 2009年7月29日(水) 02:50

Re: 静的HTMLサイトをMODXに徐々に移行したい

投稿記事 by yama »

あと、MODX側の不具合の可能性として、同じURLを持つリソースが2つずつ作られるパターンがあることが分かりました。
より正確な調査をするために、もしよければGetHTMLWなどでHTMLファイルを一括でfetchさせていただきたいですが、いかがでしょうか?
具体的に原因が分かれば修正できると思います。
tomoac
メンバー
メンバー
記事: 15
登録日時: 2013年6月19日(水) 16:16

Re: 静的HTMLサイトをMODXに徐々に移行したい

投稿記事 by tomoac »

サイトのデータを取り込んでいただくのは構いません。
必要でしたら全データを圧縮したファイルをダウンロードできるようにしてもいいです。

その後、いろいろ試しました。

実は過去の事情でサイト本体が、goodstreamというサブディレクトリになっているので、移行と同時に一つ上に持って行きたいと思っていました。

つまり、現在の以下を
http://tomo.ac/goodstream/*
以下にしたい。
http://tomo.ac/*
ということで、トップでなくgoodstreamのフォルダをtemp/importに置いていました。
そでなく、全部importに置いたら概ね取り込めました。
サイト内リンクは相対だし、画像はそれぞれのフォルダのサブディレクトリに入っているので、goodstteamと同列にあるファイルのリンク等はおかしく成るのは当然としても、そうでない画像が表示されないとかページ内のアンカーにリンクがおかしいというのはよくわかりませんが、まあその問題は保留します。

で、現在はほぼ取り込めました。
問題は、文字化けします。やはり変換されていないようです。
ただ変換できても、metaタグのcharset=x-sjisになっているので、そこもUTF8に書き変えないとおかしくなる気がします。

当初はぼちぼち手動でとおもってましたが、実際に取り込んだら1万を超えるコンテンツがあることがわかりました。いままで数えたことはありませんでした。

なので、現状は現状のままとし、今後、追加変更した部分だけmodxのデータベースに入れるのが現実的かなと思ってきました。

その際に、あるページを修正しmodxのデータベースに納めたとき、同じURLにできますでしょうか?
つまり、同じURLで、現状のままHTMLのファイルを一部変更(文章を少し変更したとする)、ただし内容をMODXのデータベースに入れ、デザインはMODXのヘッダーが適用されるようにする。つまり、一見、URLも内容もほぼ同じだが、以前は全部HTMLのファイルで、新しいのはMODXのデータになっているという状態は可能でしょうか。

それか、ファイルを読み込んで、プログラムでデータベースに取り込んで、変換してしまう方法がいいのかもしれません。

そもそもやりたいのは、
1.今後の追加変更はMODXの編集機能でやりたい
2.移行を機会にテーマデザインを変えたい

import_site.static.phpのファイルを変更して、bodyタグ内だけをコード変換して、データベースに取り込んでしまえば一気にできそうな気もしますがどうでしょう。
画像も同一フォルダにあるものをプログラムで再配置しリンクも変更すればいいかなと思っています。
ちなみに変更は、いくつか教えていただければ私でもできると思います。

まずはどうすべきかのアドバイスをいただければありがたいです。
アバター
yama
管理人
記事: 3251
登録日時: 2009年7月29日(水) 02:50

Re: 静的HTMLサイトをMODXに徐々に移行したい

投稿記事 by yama »

tomoac さんが書きました:必要でしたら全データを圧縮したファイルをダウンロードできるようにしてもいいです。
ありがとうございます、もしよければお願いします。できるだけ正確にインポートできるように調整してみます。
tomoac さんが書きました:metaタグのcharset=x-sjisになっているので、そこもUTF8に書き変えないとおかしくなる気がします。
この点も少し変ですね、metaタグの属性もutf-8に書き換えるはずなので。エンコード変換の部分もあまり複雑な判定は行なってないはずですが、何か単純な不具合があるかもしれません。
tomoac さんが書きました:その際に、あるページを修正しmodxのデータベースに納めたとき、同じURLにできますでしょうか?
つまり、同じURLで、現状のままHTMLのファイルを一部変更(文章を少し変更したとする)、ただし内容をMODXのデータベースに入れ、デザインはMODXのヘッダーが適用されるようにする。つまり、一見、URLも内容もほぼ同じだが、以前は全部HTMLのファイルで、新しいのはMODXのデータになっているという状態は可能でしょうか。
可能です。たとえば新しいページのurlを /newdir/index.html というURLでMODXで作成したい時は、newdirというエイリアスのリソースを作ってから、そのサブリソースとしてindexというエイリアスを持つリソースを作成します。
MODX的には、この構成のページを作るのに空リソースをひとつ作るのはあまりスマートではないので、すっきり作りたい場合は、「newdir」というリソースをひとつだけ作って、このリソースにコンテナ属性を与えるだけにします。そうすると「/newdir/」というURLでよければアクセスできます。

今回は、コンテンツごとにディレクトリが切ってあって、その中にはindex.htmlがひとつあるだけというパターンが多いような気がします。この構成で今のMODXが効率よく管理できるかどうか、まずこちらで調べてから(不具合があればそれを修正してから)、よりよいアドバイスができそうに思います。
tomoac
メンバー
メンバー
記事: 15
登録日時: 2013年6月19日(水) 16:16

Re: 静的HTMLサイトをMODXに徐々に移行したい

投稿記事 by tomoac »

以下からダウンロードしてみてください。
http://osukini1.tomo.ac/good-stream.com.zip

調査のほどお願いします。
アバター
yama
管理人
記事: 3251
登録日時: 2009年7月29日(水) 02:50

Re: 静的HTMLサイトをMODXに徐々に移行したい

投稿記事 by yama »

データ確認しました。できればgoodstteamというサブディレクトリを廃止してルートに移動させたいということですね。概ね意図を確認できたと思いますので、週明けになりますが調整してみます。
tomoac
メンバー
メンバー
記事: 15
登録日時: 2013年6月19日(水) 16:16

Re: 静的HTMLサイトをMODXに徐々に移行したい

投稿記事 by tomoac »

いや、現状のままの移行でいいです。
Urlは変更できるようですので
よろしくお願いします
返信する