Site icon Tips Note by TAM

【Movable Type】ウェブサイト・ブログで共通の定型文を設定する

Movable Type 6 では定型文として事前に入力しておいた記事の一部を記事入力で再利用できます。
この定型文の設定はブログ単位で保持されるため、別のブログで同じ定型文を利用したい場合、各ブログに登録が必要になります。

ブログや定型文の数が多くなる場合、少し手間がかかります。
また、定型文に修正を行う場合、各ブログの更新が必要になりこれまた時間がかかります。

こういった手間を省くため、全ウェブサイト・ブログで共通の定型文を事前に設定する方法をご紹介いたします。

確認したバージョン

Movable Type Pro Ver. 6.3.2

手順

  1. 標準とは別にプラグイン用フォルダを作成する。
    例)フォルダ構成:

    $MT_HOME/
        plugins/
            TinyMCE
            MultiBlog
            ...他、MT標準のプラグイン
        <任意のプラグイン用フォルダ名>/ <- これを作ります。

    標準のプラグインフォルダ1個で今回の対応を行う場合、プラグインの読み込み順によって動作が変わる可能性があります。
    読み込み順を保障するため、別プラグインフォルダを作成しております。

  2. PluginPath 環境変数を mt-config.cgiに追記します。

    PluginPath plugins <- 標準のTinyMCEプラグインがここに入っています。
    PluginPath <任意のプラグイン用フォルダ名>

    1.で作成したプラグイン用のフォルダは標準のpluginsの下に追記するようにしてください。ここで設定した順にプラグインが読み込まれます。
    環境変数リファレンス PluginPath

  3. ExtendTinyMCEWithCommonTemplateを展開する。
    ダウンロード

  4. 1.で作成したプラグイン用フォルダにExtendTinyMCEWithCommonTemplateをアップロードします。
    例)アップロード後のフォルダ構成:

    $MT_HOME/
        <任意のプラグイン用フォルダ名>/
            ExtendTinyMCEWithCommonTemplate/
        mt-static/
            plugins/
                ExtendTinyMCEWithCommonTemplate/
  5. 各ブログ共有で利用したいテンプレート設定をtemplate_list.jsに書きます。
    また、テンプレートとして利用したいhtmlを作成します。

    /**
    * ex. ExtendTinyMCEWithCommonTemplate/tmpl/template_list.js
    */
    var tmpl_base_url = parent.window.StaticURI + 'plugins/ExtendTinyMCEWithCommonTemplate/tmpl/',
    tinyMCETemplateList = new Array(
    // [Name, URL],
    // [Name, URL, Description]
    // ..Description is optional parameter.
    
    ["Image Left", tmpl_base_url + "image_left.html"],
    ["Image Right", tmpl_base_url + "image_right.html", "テキストの右に画像を配置する定型文です。"]
    );
    <!-- ex. ExtendTinyMCEWithCommonTemplate/tmpl/image_right.html -->
    <div class="image-right">
    <div class="image">
    <p>ここに画像を挿入します</p>
    </div>
    <div class="text">
    <p>ここにテキストを挿入します</p>
    </div>
    </div>
    <p></p>

補足

MTのWYSIWYGはTinyMCEを利用しており、javascriptで設定を変更することが可能です。
http://archive.tinymce.com/wiki.php/Configuration3x

そしてMTの定型文機能は、FormattedTextForTinyMCEプラグインでMT管理画面で登録した内容をTinyMCEのtemplateにjavascriptで設定することで実現しています。

実は上記手順で導入したプラグインを使用せずとも、標準のFormattedTextForTinyMCEプラグインの処理を変更することで今回の内容は実現できます。
しかし、MTアップデート時の問題発生の可能性を考慮して、標準のプラグインを変更しない方法をとっております。

参考

MT5.2に搭載されたTinyMCEのカスタマイズ(「Extend TinyMCE」プラグインの紹介)