この記事は「PowerCMS X Advent Calendar 2021」の20日目です。
PowerCMS Xでは、便利なインポート機能もちゃんとあります。
データ移行機能を使うには、まず「DataMigrator」プラグインを使用します。
プラグインを有効化したら、ナビゲーションの「ツール」から「データ移行」を選択してください。
以下のページが表示されます。
標準で WordPress(WXR形式)と Movable Type(MT形式)のフォーマットに対応しています。
モデルは初期状態だと記事とページに対応しています。
他のモデルも対応させたい場合は、モデルのオプションの「インポート&エクスポート」にチェックを入れてください。
PowerCMS 5(エンタープライズ版以上)にもHTMLインポータープラグインはありましたが、
こちらはファイルをサーバーにアップする必要がありました。
PowerCMS Xでは、URLのリストを指定するだけで、HTMLデータ(画像を含む)をインポートすることができます。
「HTMLImporter」プラグインを有効化すると、さきほどのデータ移行のページのフォーマットのリストに「HTML」が追加されます。
オプションから「URL」を選択すると、入力欄が変化します。
「URL」の入力欄にインポートしたいページのURLを記述してください。
※1行につき、1URLとしてください。
その後、「送信する」ボタンをクリックと「1 URLが予約されました。」とメッセージが表示され、下部の「インポート開始」ボタンが押せるようなります。
このボタンをクリックするとインポート開始です。
※初期状態だと、本文「開始点と終了点を指定」になっているのでエラーになります。
Basic認証のかかっているページにも対応しています。
html内の一番最初にでてくる<h1>タグの内容を採用します。
<h1>が存在しない場合は<h2>タグ。それもない場合は<h3>と続く……。
html内の<title>タグの内容を採用します。
オプションでセパレータが指定できます。
例えば以下の場合、セパレータを「|」とした場合、
「"押しがけ"って何? バッテリーがあがった時の必殺技!? どのバイクでもできるの?【ライドナレッジ017】」の部分が採用されます。
<title>“押しがけ”って何? バッテリーがあがった時の必殺技!? どのバイクでもできるの?【ライドナレッジ017】 | ピックアップ | RIDE HI(ライドハイ)/愉しさのためすべてを注ぐライダーのメディア</title>
取り込みたい範囲の「開始点」と「終了点を」カンマ区切りで指定します。
例えば、「<h1>,</h1>」とした場合、この間の部分が採用されます。
もちろん以下のようにしても大丈夫です。
<h1 class="article-head__ttl"><span>,</span></h1>
取り込みたい範囲を正規表現で指定します。
例えば、
以下のようなHTMLの場合「/<h1[^>]*?><span>(.*?)<\/span><\/h1>/」と指定できます。
<h1 class="article-head__ttl"><span>ロードレース第43回大会が日程変更!</span></h1>
取り込みたい範囲をXPathで指定します。
※ マッチしなかった場合は title要素が利用されます。
ちなみに以下のどの指定でも同じインポート結果でした。
含まれるHTMLタグは削除してくれるのかも。
//*/h1[@class="article-head__ttl"]/span/text() //*/h1[@class="article-head__ttl"]/span //*/h1[@class="article-head__ttl"]
メタタグ関連も、自動で抽出してセットしてくれます。
「meta description」を概要欄にインポートします。
「meta keywords」をキーワード欄にインポートします。
「meta keywords」のカンマ区切り文字列をタグとしてインポートします。
「og:image」をアセットとしてリレーション設定します。
記事、ページの「本文」に入る範囲を指定します。
HTML構造を見て自動で指定します。
「タイトル」の部分と同じです。
「タイトル」の部分と同じです。
「タイトル」の部分と同じです。
タイトルや本文などの基本的な項目以外も取り込みたい!
という場合はコチラで指定します。
指定方法は3種類。
例えば、記事モデルに追加で「image_main」「author」というカラムを追加した場合。
指定方法は以下のようになります。
author=<meta name="author" content=","> author=!<meta name="author" content="(.*?)">! author=//meta[@name='author']/@content
image_main=!<meta property="og:image"(.*?)">! image_main=//meta[contains(@property, 'og:image')]
記事やページなどの、テキストフォーマットが選択できる入力欄のフォーマットを指定できます。
記事/ページで選択できます。
ディレクトリのパスからカテゴリ/フォルダを作成し、インポートしたオブジェクトと関連付けます。
既にインポートしたものの中に同一URLまたはパスのオブジェクトがあった場合、新規にオブジェクトを作成しないで、既存のものに上書きします。
リッチテキスト欄やテキストエリア型のカラムへのインポート時にHTMLをMinify(圧縮)します。
モデルのオプション「アセット」にチェックのあるモデルで選択できます。
インポートする内容中の* img要素やその他の要素をアセットとして取り込み、オブジェクトと関連付け*ます。
「インポート開始」をクリックした時点の設定をクッキーに保存します。
「アセットをインポート」にチェックを入れた時に表示されます。
インポートする内容中に、ここで指定した拡張子のファイルへのリンク(a要素)が存在した場合、アセットとして取り込み、オブジェクトと関連付けます。
PowerCMS 4/5からそのままPowerCMS Xにアップデートはできませんが、この「HTMLデータ移行」を使えば、
既存のサイトからの引っ越しもそんなに大変じゃないかもしれません。
PowerCMS 4/5 から PowerCMS Xの引っ越しのご相談もお待ちしております。
「PowerCMS X」は、どんどんバージョンが上がっていって追加機能を把握するのも大変ですが、そのぶん使いやすくなっているので面白いCMSです。オススメです。
MONSTER DIVEでは、おなじみMovable TypeからPowerCMS Xまで構築経験がありますので、ぜひご相談くださいませ。
→ Movable Type カスタマイズ構築サービス