他人の Movable Type 4 へのコメント投稿で Movable Type 認証を利用する方法
Movable Type 4 のコメント投稿では複数の認証方式が用意されています。その中のひとつに「Movable Type 認証」という方式があります(下)。
これは、その Movable Type にユーザーとして登録されている人が利用するための認証で、他の、全く別にインストールした Movable Type のアカウントで認証できるものではありません。したがって、Movable Type 認証には「認証しようとするユーザーが、その Movable Type にユーザー登録されている」という制限があります。
ただし、厳密には MT の設定方法によって、外部の人間に対し「コメント投稿者」という権限を与えることができるため、「Movable Type」の認証によるコメント投稿が可能になります。以前、「Movable Type の認証では(他の方のブログの)コメント投稿はできません」と、誤解を招く発言をしたことがあるかもしれませんが、その点についてはお詫び申し上げます。
以下、その設定方法および、Movable Type の認証によるコメント投稿方法を紹介します。
1.(コメント投稿対象ブログの)管理画面の設定
システムメニューの「設定」→「全般」画面で、「システムのメールアドレス」を設定し「変更を保存」をクリック。このフィールドを設定しないと、後に説明する「メール通知」が行われません。

システムメニューの「設定」→「ユーザー」画面で、「コメント投稿者がMovable Typeに登録することを許可する」にチェックをして「変更を保存」をクリック。

ブログ別管理画面の「設定」→「ブログの設定」→「登録/認証」で「ユーザー登録」をチェック。

2.コメント投稿側の設定
コメント投稿の認証画面より「Movable Type」を選択して「サインアップ」をクリック。ブログ管理者の設定によっては「Movable Type」が選択できない場合もあります。

必要事項を記入して「登録する」をクリック。

「ご登録ありがとうございます。」という画面が表示され、表示されている(コメント投稿者の)メールアドレスにアカウント登録の確認メールが送信されます。

下のようなメールが届いていたら、表示されている URL にアクセスします。もしメールが届いてないようであればメールアドレス誤りか、MT の設定(本エントリーの一番最初の手順)が完全に行われていない可能性があります。

メールに表示されたURL にアクセスし、次の画面が表示されれば、他人の MT にコメント投稿者として登録されます。

3.Movable Type 管理画面でのコメント投稿者の扱い
登録した「hoge」さんの MT での権限は「コメント登録者」として表示されます。

「コメント登録者として権限を与えると、ブログ管理画面にログインされてしまうのでは?」と思われるかもしれませんが、登録したアカウントで他人の MT にログインしても、次のようなアカウント変更画面しか表示されません。

また、登録が完了していないユーザは、下のように「保留」状態になります。このフィールドは、ブログ管理画面からのユーザー登録では「有効・無効」しか選択できませんので、外部から登録する際の特殊なケースです。

ブログ記事の入力フィールドに初期値を設定するプラグイン
Movable Type 4.1/MTOS で、ブログ記事の入力フィールドに初期値を設定するプラグインです。このプラグインを利用すれば、ブログ記事の新規作成時に、
- タイトル
- 本文
- 追記
- タグ
- 概要
- キーワード
の各フィールドに任意の文字列を初期値として表示することができます。
これは「『タグ』や『キーワード』等にいつも同じ内容を設定するのですが、特定の文字列を予め設定しておくことはできないでしょうか」という質問を頂いたのが作成の発端です。
1.プラグインのダウンロード
下記のリンクをクリックしてプラグインをダウンロードしてください。
2.プラグインのアップロード
ダウンロードしたプラグインを解凍し、中にある、DefaultValueSetter フォルダを plugins ディレクトリに丸ごとアップロードしてください。
ブログ管理メニューの「設定」→「プラグイン」で DefaultValueSetter が表示されればインストール完了です。

3.使用方法
ブログ別にブログ記事用の初期値を設定します。ブログ管理画面の「設定」→「プラグイン」で「DefaultValueSetter 0.01」をクリックし、さらに「設定」をクリックすると次のような設定画面が表示されます。
![]()
このような感じで設定し、一番下の「変更を保存」をクリック。
![]()
ブログの新規作成画面に設定した内容が反映されます。
4.ライセンス
デュアルライセンスです(The blog of H.Fujimoto の藤本さんのライセンス内容を勝手ながらそのまま適用させて頂いてます)。なお、プラグイン開発やサポート等にご支援・ご賛同くださる方からの寄付をお待ち申し上げます。
上記の「Make a Donation」のリンクをクリックすると Paypal によるお支払いページにジャンプします。
4.1 MT4.1個人ライセンス/MT4.1商用ライセンスと組み合わせる場合
- 無料で利用できます。
- 改変・再配布は自由ですが、改変して再配布する場合、原作者のクレジットを必ず残してください。
4.2 MTOSと組み合わせる場合
- 無料で利用できます。
- GPLv2に従います。
CORESERVER にcron ジョブ(Movable Type 4 の run-periodic-tasks)を設定する
CORESERVER では crontab コマンドでは cron を設定できない(一瞬できますが削除されます)ので、管理画面より設定します。
ここではMovable Type 4 の run-periodic-tasks を例に手順を紹介します。
1.シェルスクリプトの作成
「シェルスクリプト」とは、Linux上のコマンドを制御するプログラミング言語が記述されたファイルを指します。
まず、以下のような内容のシェルスクリプトを任意のテキストエディタで作成します。
#!/bin/sh
cd /virtual/***/public_html/mt
/usr/bin/perl ./tools/run-periodic-tasks
exit
2行目の赤色の部分、*** はユーザによって異なります。また、「mt」は Movable Type のアプリケーションディレクトリ(mt.cgi があるところ)を指定してください。
1行目と3行目、4行目の記述内容は固定です。
この内容を cron.sh というファイル名で保存します。ファイルの名前は任意ですが、拡張子は必ず .sh にしてください。
なお改行コードは必ずLFで保存してください。Windows のメモ帳では改行コードは CR+LF になってしまうので、他のフリーのエディタを使いましょう。
2.ファイルのアップロード
FTPツールで cron.sh をアップロードします。ここではユーザディレクトリ(public_html のひとつ上の階層)にアップロードします。
アップロード後、cron.sh のパーミッションを 705 に変更してください。
3.cron ジョブの設定
CORESERVERの管理画面ログイン

「CORESERVERアカウントの登録・管理・購入」をクリック

「サーバー設定」をクリック。

「入室」をクリック(ブラウザによっては自動で画面遷移します)

サイドメニューの「CRONジョブ」をクリック

アップロードしたファイルをCRON ジョブに登録します(画面から切れてますが、曜日の部分も * を設定)

これは毎時0分に cron.sh を実行する設定です。数字は時間、* は全ての期間に対応する意味です。「時」に * をつけると「毎時実行する」という意味になります。
設定後、「保存」をクリックしてください。
4.エラーメールを送信しない
cron ジョブにエラーがあると、登録しているメールアドレスにエラーメールが送信されます。このエラーメールの送信を行いたくない場合は、シェルファイル名の後に「 >/dev/null 2>&1」を付けます。

最初はこの設定を行わず、エラーメールが送信されないことを確認してからの方がいいでしょう。
5.その他
CORESERVER での cron ジョブ実行については以下の条件があります。
- ジョブの最大実行時間は3分です。それを超えるものは強制停止されます
- CORESERVER でのジョブの実行間隔は最短で1時間に1回です
- 削除する場合は、「/virtual/***/~」を空にし保存して下さい
- ジョブの負荷はCGI負荷として加算されます
Movable Type 4 の管理画面で詳細メッセージのないエラーが発生する不具合について
Movable Type 4 のブログ管理画面操作中、下のような、詳細メッセージのないエラー画面に時々遭遇することがあります。

感覚的には、管理画面にグインした後、長時間(といっても数十分程度)何も操作しない状態の直後の操作で発生するようです。
根本的な解消策はみつかってませんが、この画面が表示された場合は、ブラウザの「戻る」をクリックしてリロードすれば元の操作に戻ることができます。
ちなみに、セッションタイムアウト(UserSessionTimeout)は、デフォルトで4 時間 (14400秒)に設定されていますが、それより短い時間で遭遇するので、セッションのタイムアウトではないようです。
また、この設定にひっかかった場合は、エラー画面ではなくログイン画面に遷移します。
ブログ記事の画像挿入時に表示位置を指定しないプラグイン
ブログ記事の投稿で、記事内に画像ファイル等を挿入する場合、ファイルの表示位置を指定しないオプションがありません(下)。

このプラグインでは表示位置を指定しないラジオボタンを追加します。

このプラグインは、crema さんの記事を元に作成したものです。
が、やや先に Junnama さんがよりリッチなプラグインを投稿されていました。
私の作成したプラグインは簡素なので、style 属性が設定されなくなるだけです。class 属性の設定は残ります。
1.プラグインのダウンロード
下記のリンクより、プラグイン InsertAssetWithoutStyle をダウンロードしてください。
2.プラグインのアップロード
アーカイブを解凍し、解凍した内容を plugins ディレクトリおよびスタティックディレクトリに、それぞれ下記のように配置してください。
mt-static/
plugins/
InsertAssetWithoutStyle/
images/
align_none.gif
styles/
app.css
plugins/
InsertAssetWithoutStyle.pl
システムメニュー→プラグインで「InsertAssetWithoutStyle 0.0x」が表示されていればOKです。

3.利用方法
画像の表示位置を指定したくない場合、冒頭のスクリーンショットのように、位置欄より「なし」を選択します。「設定を記憶」をチェックすれば選択状態を保存することができます。
Movable Type のスケジュール・タスク実行(Windows 編)
Windows のタスク・スケジューラを利用した、Movable Type のスケジュール・タスク実行方法を紹介します。スケジュールタスクを実行することで、MT4 であれば指定日投稿・迷惑コメント(トラックバック)削除・公開キュー等のスケジュール処理が可能になります。
MT3 も同じ設定方法です(公開キューはMT4のみ)。
この設定は自宅サーバで Windows XP 等を利用している場合の設定方法です。レンタルサーバの場合は Linux 上で同様の設定を行います。
以下、設定手順です。
「スタート」→「設定」→「コントロール パネル」→「タスク」→「スケジュールされたタスクの追加」を選択。

タスク ウィザードで「次へ」をクリック。

「参照」をクリック。

perl プログラム(ここでは C:¥usr¥bin¥perl.exe)を選択して「開く」をクリック。拡張子を表示しない設定の場合は「perl」を選択。

日単位を選択して「次へ」をクリック。

開始時刻を設定し、このタスクの実行から「毎日」を選択して「次へ」をクリック。

表示されたユーザーのパスワードを設定して「次へ」をクリック。

「[完了]をクリックしたときに詳細プロパティを開く」をチェックして、「完了」をクリック。

ここからの設定が重要です。開いたプロパティ画面で
- 実行するファイル名:C:¥usr¥bin¥perl tools¥run-periodic-tasks
- 開始:アプリケーション・ディレクトリのパス(例はC:¥web¥mt)に書き換える
を設定し、「OK」をクリック。実行するファイル名の tools¥run-periodic-tasks の前には半角空白を入れてください。「開始」のアプリケーション・ディレクトリとは、mt.cgi があるディレクトリです。

とりあえずこれで「OK」をクリックすれば設定完了です。
ただしこのままでは日に1回しか実行されないので、実行周期を短くする場合は「スケジュール」タブの詳細設定をクリック。

オプションの詳細設定で「タスクを繰り返し実行」で間隔を設定します。継続時間は間隔より長く設定してください。
スケジュールを変更するとパスワードの設定が求められる場合があります。

作成したタスクは最初の「スタート」→「設定」→「コントロール パネル」→「タスク」→「XX」で起動することができます。

管理画面のページ遷移を簡単にする Bookmarks プラグイン
MT4 専用の最初のプラグインがリリースされたというアナウンスがありましたので、便乗して紹介します。
First Movable Type 4 Plugin released
This weekend, Kevin Shay, the developer behind several of Movable Type's most popular plugins, release the first Movable Type 4 plugin.
Bookmarks プラグインは、管理ページの任意のページ(例えばテンプレートのインデックスページ編集画面)をブックマークすることで、ページにダイレクトに遷移できるようにするためのものです。
以下設定と操作方法です。
1.プラグインのダウンロード
下記のサイトよりプラグインをダウンロード(スクリーンショット下の「here」をクリック)。
New Plugin for MT 4: Bookmarks
2.プラグインのアップロード
解凍した中にある Bookmarks フォルダを丸ごと plugins ディレクトリにアップロードします。下のような構成になっていればOKです(1.0b2 現在。プラグインのバージョンアップで構成が変わる可能性があります)。
/Bookmarks
/lib
/Bookmarks
App.pm
Util.pm
/MT
Bookmark.pm
/tmpl
/dialog
edit_label.tmpl
list_bookmark.tmpl
Bookmarks.pl
3.インストール
管理ページにアクセスするとアップグレード開始画面になりますので、「アップグレード開始」をクリック。

サインインします。

アップグレードが開始され、データベースに Bookmark プラグインに必要な情報が生成されます。完了したら「MOvable Type に戻る」をクリック。

管理画面に「Bookmarks」というメニューが追加されました。
4.利用方法
例として、インデックスページのテンプレート編集画面をブックマークします。
インデックスページのテンプレート編集画面に遷移したところで Bookmarks のメニューより「Bookmark "My First Blog: Edit Template 3"」を選択。この名称はブログ名+画面名です。
ブックマーク画面が表示されるので「Done」をクリック。
これで Bookmarks メニューの一番下に「My First Blog: Edit Template 3」が追加されました。このメニューを選択すると、どのページにいても、インデックステンプレート編集画面に直接ジャンプすることができます。
メニューの「Manage Bookmarks」を選択するとブックマーク管理画面に遷移します。
タイトルをクリックするとタイトル名を変更することが出来ます。
日本語も利用することができるので、ここでは「インデックスページ編集」に変更し、右下の「Save Changes」をクリック。
ブックマークメニューが日本語になりました。
![]()
カスタマイズされる方は下のように各テンプレート編集画面をブックマークしておくと便利でしょう。
![]()
お分かりと思いますが、追加したブックマークに「My Firlst Blog」というブログ名を残しているのは、このブックマークがシステムでひとつだからです。
言い換えると、あるブログから他のブログの特定の画面に直接ジャンプすることもできます。
「このテンプレートにリンクするファイル」の使い方 for Movable Type
Movable Type のテンプレート編集画面を開くと、下に示すスクリーンショット赤枠の「このテンプレートにリンクするファイル」がありますが、このフィールドについての利用方法をご存知ない方が少なくないのではないでしょうか。

このフィールドはオーサリング・ツールを利用する方、あるいはテンプレートをカスタマイズする方にとってはかなり役に立つ機能を有しています。
ということで、本エントリーではこの「このテンプレートにリンクするファイル」の使い方を紹介します。
1.外部ファイルを Movable Type と同期させる
このフィールドの本来的な使い方は、Dreamweaver、GoLive等のオーサリング・ツールで作成したテンプレートを Movable Type の再構築あるいはテンプレート編集と同期させることです。オーサリング・ツールで作成したテンプレートは編集画面のテキストエリアにペーストするのではなく、このフィールドに外部ファイル名として指定するだけで自動的に読み込ませることができます。
以下、「このテンプレートにリンクするファイル」を設定されたファイルを、便宜上「リンクファイル」と記します。
例えば、作成したテンプレートを下記のようにリンクファイルとして指定します。指定する時にファイルの実体はなくても構いませんが、後で「リンクファイル」となるファイルは指定したパスにアップロードします。

この状態で、Movable Type の管理画面から(いきなり)再構築を実行すると、リンクファイルの内容をHTMLページやCSSに反映することができます。
またテンプレート編集画面を開くと、リンクファイルの内容がテキストエリアに反映された状態で表示されます。もちろんデータベースにも反映されます(編集画面を表示した時にデータベースに設定されるようです)。
上記をまとめると、次のような振る舞いになります。
| リンクファイル | 操作時に優先されるデータ | |
|---|---|---|
| 再構築 | 編集画面 | |
| あり | リンクファイル | リンクファイル |
| あり(空)*1 | データベース | データベース |
| なし | データベース | データベース |
*1:リンクファイルの実体があり、その内容が空(0 バイト)のファイル
つまり、データベースの内容とリンクファイルに差分がある場合は、リンクファイルの内容が空でない限り、リンクファイルが優先されます。
改めて図で示します。
リンクファイルがない場合のテンプレート編集や再構築時の動作は次の通りです。

上図のように、テンプレート編集や再構築を実行すると、Movable Type のテンプレート情報は基本的にデータベースから取得し、そのデータを元に HTML や CSS ファイルを出力します。
これと異なり、リンクファイルが存在する場合は、リンクファイルの情報を先に取得してページを生成し、同時にリンクファイルの内容をデータベースに反映する、という訳です(下図)。

リンクファイルは、インデックス/アーカイブ/システム/モジュール、すべてのテンプレートに設定することができます。またこのフィールドにはファイル名だけでなく、パスを設定することができます。Movable Type 配布元の Six Apart は、絶対パス("/"から開始)による指定を推奨しています。
この仕組みを理解しておけば、テンプレート編集画面を利用せずに、テンプレートの内容を効率的にHTMLやCSSの内容に反映させることができます。
オーサリング・ツールとの具体的な連携方法例については下記のサイトが参考になるでしょう。
- Mathatelle:Movable Type のテンプレートを Dreamweaver で編集する
- 21世紀のアフィリエイト通販生活:DreamweaverでMovableTypeのテンプレートを編集!
2.テンプレートをバックアップする
本来の利用方法ではありませんが、このフィールドを利用してテンプレートをバックアップする方法がかなり有名です。他のサイトでこのフィールドをそのように利用する方法が多く紹介されてますし、私自身、当初はそういう使い方をするフィールドと思い込んでました。
設定方法は1項と同様、「このテンプレートにリンクするファイル」に任意のパスを設定するだけです。ファイル名はテンプレートと対応がとれるよう、分かりやすい名称にしておくと良いでしょう。まバックアップ用のパス(tmpl 等)を作っておき、そこに出力するようにしておくとサーバ上にファイルが煩雑にならずにすみます。

この設定をしておくことで、テンプレート編集画面上での修正内容がデータベース以外に、リンクファイル、つまり物理的なファイルをサーバ上に保存しておくことができます。
リンクファイルはテンプレート編集画面の「保存」または「保存および再構築」をクリックした時に更新されます。MTタグも変換されず、そのまま出力されます。
万が一、データベースが壊れて、Movable Type にアクセスできなくなってしまっても、テンプレートはファイルに残ってますので、Movable Type を改めてインストールした時に、リンクファイルの内容をテキストエリアにペーストするか、「このテンプレートにリンクするファイル」に保存されているリンクファイルのパスとして設定すれば、簡単に復活させることができます。
インデックステンプレートにパスを設定する
意外に知られていない技で、Movable Type のインデックステンプレートにはパスを設定することができます。
アーカイブファイルは管理画面の「設定」→(3.3では詳細モードに切り替え)「公開」→「アーカイブマッピング」でパスが表示されているので、直感的にパスを設定することがイメージできますが、インデックステンプレートは「出力ファイル名」欄にファイル名しか記述されていないことと、そもそも「出力ファイル名」と書かれているので、パスの設定ができないように感じてしまいます。
以下、パスの設定方法です。
テンプレート編集ページで「メインページ」のデフォルト状態は左のようになっています。 |
メインページを hogehoge というディレクトリの下に作成したい場合は、左のように「出力ファイル名」欄の index.html の前に「hogehoge/」を追加します。記述したディレクトリは自動的に作成されます。例は「相対パス」で記述していますが、「絶対パス」で記述することも可能です。 |
ひとつ上のディレクトリに出力する場合は、「../」をファイル名の前に付与します。 |
画像のポップアップウィンドウをカスタマイズする
このエントリーでは、ディスプレイより大きなサイズの画像を全部閲覧できるようにするためのカスタマイズを2つ紹介します。いずれかお好きな方をお選びください。これらは通常のポップアップのカスタマイズとしても利用することができます。
1.ポップアップウィンドウのスクロールやリサイズを有効にする方法
CMS.pm を任意のエディタで開き、「window.open」で検索すると下記の行がみつかります。
ちなみに、3.2 では3600行目あたり、3.3b2 では4700行目辺りです。
<a href="$url" onclick="window.open('$url','popup','width=$width,height=$height,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false">$link</a>
この中の window.open? のカッコの部分がポップアップウィンドウの詳細設定になります。
赤色の部分を下記のように yes に修正します。
<a href="$url" onclick="window.open('$url','popup','width=$width,height=$height,scrollbars=yes,resizable=yes,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false">$link</a>
- scrollbars=yes
は、画面サイズにスクロールバーが表示する設定です。
- resizable=yes
は、表示されたポップアップウィンドウのリサイズを可能にします。
なお、スクロールバーを表示する設定にした場合、スクロールバーが画像にやや被ってしまうので、下記のリストのように先程修正した行の少し上に青色の行を追加してください。
:
}
$width += 17;
my $link = $thumb ? qq(<img src="$thumb" width="$thumb_width" height="$thumb_height" alt="" />) : q{<MT_TRANS phrase="View image">};
return $app->translate_templatized(<<"HTML");
<a href="$url" onclick="window.open('$url','popup','width=$width,height=$height,scrollbars=yes,resizable=yes,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false">$link</a>
:
これでポップアップウィンドウの横幅がやや広くなります。17 という数値は場合は自分で試した結果ですので、修正してもらっても構いません。
高さをひろげたい場合は
$height += xx;
を同じように追加してください(xx には任意の値を設定します)。
2.ポップアップウィンドウに画像を縮小して表示する方法
画像サイズを自動的に縮小するカスタマイズが下記のサイトで紹介されています。
以上です。「見れればいい(というのは語弊がありますが)」という場合は2項、原寸で閲覧させたい場合は1項をお勧めします。
MovableType のテンプレートを簡単にバックアップする Template Backup and Refresh プラグインの使い方
Movable Type のデフォルトプラグインである Template Backup and Refresh の説明です。機能は名称の通り、テンプレートのバックアップおよびリフレッシュを行ってくれます。
1.操作方法
このプラグインで行う操作は下記の通りです。
|
|
メインページ (Backup from 2006-04-12 00:25:00)
2.プラグインの動作
上記の操作を行うことで、プラグインは下記の動作を実行します。- チェックしたテンプレートをリフレッシュ、つまり原本であるデフォルトテンプレートで上書きされる(Refresh)
- 現在使っているテンプレートは別の名前のテンプレートで保存される(Backup)
要するに、プラグインを実行することで現在使用中のテンプレートが別の名前で保存され、使用中のテンプレートがデフォルトテンプレートで上書きされる、という仕組みになっています。
バックアップ機能だけであれば、カスタマイズをしている途中のテンプレートを別名で残しておき、使用中のテンプレートに対して次のカスタマイズ作業に進めるのですが、リフレッシュも同時に行われるため、使用中だったテンプレートを再度使用するためには元のテンプレート(の「テンプレートの内容」)に貼り付け直す必要があります。
3.原本について
リフレッシュの原本となるテンプレート(デフォルトテンプレート)は、default-templates ディレクトリ配下の下記の名称で配置されています。- atom_index.tmpl
- category_archive.tmpl
- comment_error_template.tmpl
- comment_listing_template.tmpl
- comment_pending_template.tmpl
- comment_preview_template.tmpl
- datebased_archive.tmpl
- dynamic_pages_error_template.tmpl
- dynamic_site_bootstrapper.tmpl
- individual_entry_archive.tmpl
- main_index.tmpl
- master_archive_index.tmpl
- rsd.tmpl
- rss_20_index.tmpl
- site_javascript.tmpl
- stylesheet.tmpl
- trackback_listing_template.tmpl
- uploaded_image_popup_template.tmpl
4.利用方法
前述の通り、テンプレートを編集前の状態に戻す機能があるので、テンプレートの編集に失敗した時などに利用することができます。また、現在編集中のテンプレートをバックアップとして保存するために使うこともできます。ただし同じテンプレートを引き続き使う場合、テンプレートを貼り付け直す必要があります。もうひとつ、新しいテンプレートを default_template に直接アップロードし、Template Backup and Refresh プラグインを利用してテンプレートを入れ替えるという利用方法があります。
ただしこの使い方ついては日本語の問題があり、登録されたテンプレートで使用する日本語は全て ja.pm に登録し直す必要があります。例えば、当サイトで配布しているテンプレートを default_template にアップロードしてプラグインを実行すると、テンプレートはきれいに差し替えられますが、テンプレートに記述された全ての日本語が文字化けします。
ということで、このような利用をする場合は注意が必要です。
5.その他・注意事項等
- 「システム」テンプレートのバックアップは「モジュール」に作成されます
- デフォルトテンプレートの「テンプレート名」を変更するとプラグインの実行対象となりません
- インデックステンプレートの場合、出力ファイル名を変更しても問題なく動作します
- 新たに作ったテンプレートはプラグインの対象になりません(テンプレート名をデフォルトテンプレート名と同一にすれば実行対象となります)
- プラグインの操作を繰り返すとバックアップのテンプレートがどんどん増えていきます。つまりバックアップテンプレートが上書きされることはありません
- デフォルトテンプレートを誤って削除した場合、同じテンプレート名を付与すればプラグイン実行対象となります
ということで、このプラグインをうっかり実行してしまってもテンプレートが消失することはありませんので、ご安心ください。
6.間違ってプラグインを実行してしまったら
Template Backup and Refresh プラグインにはアンドゥ(元に戻す)機能はありません。したがって間違ってプラグインを実行してしまった場合、初期化されたテンプレートに対し、バックアップされたテンプレートの内容を手作業でコピー&ペーストします。例えば「メインページ」の場合、ブラウザを2つ開き、片方はテンプレート一覧画面で「メインページ」のテンプレート編集画面(A)、もう一方は、「メインページ(Backup from ?と書かれたもの)」のテンプレート編集画面(B)を表示させます。そしてBの「テンプレートの内容」をAの「テンプレートの内容」にコピーします。そのあと保存・再構築してください。
コピーする方向を間違えると取り返しのつかないことになりますので、自信のない方はそれぞれの「テンプレートの内容」を他のテキストエディタ等に貼り付ける等して保存しておきましょう。
「テンプレートの名前」は、元の名前と全く同じものを設定してください(上記の作業で余計なことをしなければ大丈夫です)。メインページは「メインページ」、エントリーアーカイブは「エントリー・アーカイブ」とします。
2006.06.19 追記
6項を追加しました。
2006.09.07 追記
3.3 用の記述を追加しました。
2007.04.26 追記
タイトルを変更しました。またシステムテンプレートのバックアップについて記述を追加しました。
TinyMCE Plugin for Movable Type Ja でエントリーを編集する
世界中の1%の人々へ:TinyMCE Plugin for Movable Type Ja Beta4 で提供されているプラグインのご紹介です。
このプラグインはAjaxify/EnhancedEntryEditingに機能追加をして配布されていたAjaxify/EnhancedEntryEditing日本語版の後継システムで、エントリー編集画面をスクリーンショットのようなWYSIWYGエディターに変換します。
ちなみにTinyMCEとはJavaScriptによるHTML WYSIWYGエディター(オープンソースプラットフォーム)で、CMSと非常に親和性があります(というようなことが配布元サイトに書かれています)。
TinyMCE Plugin for Movable Type Ja の特徴は下記の通りです。
- エントリー編集画面の「エントリーの内容」「追記」「概要」画面がWYSIWYGエディタになります。
- WYSIWIGのON・OFFを切り替えられるので Movabl Type デフォルトの編集画面も使用可能です。
- 編集画面の縦幅をドラッグ(または伸縮用アイコン)変更することができます。
ということで以下利用方法です。詳細については配布元に書かれておりますのでそちらを参照ください。
1.ダウンロード
TinyMCE Plugin for Movable Type Ja Beta4の「インストールについて」の説明文のリンクをクリック。ジャンプしたページのやや下にある「TinyMCE Plugin for Movable Type Ja」のリンクをクリックするとアーカイブをダウンロードできます。
2.インストール
ダウンロードしたアーカイブを解凍して、中にある ReadmeJa.txt 以外のディレクトリをそのまま mt.cgi のディレクトリにアップロードします。アップロード後、「メイン・メニュー」→「システム・メニュー」→「プラグイン」を順にクリックして、TinyMCEforMT バージョン Beta4 Ja が表示されていればOKです。
3.利用方法
管理画面の「新規エントリー」または「エントリー」→任意のエントリーをクリックして編集画面に進みます。タグ挿入ボタンの右側に新しいボタンが増えていますが、それをクリックする前に下方にある「改行設定」を「なし」に変更してください。
次に「WYSIWYG」をクリックするとスクリーンショットのようなWYSIWYG画面に切り替わります。そのボタンの左側にあるアイコンは編集画面の高さを変更するものです。またWYSIWYG画面でも編集画面右下をドラッグすると画面の高さを調節することができます。
4.InvalidateLinkOfInsertTag.pl をご利用の場合の修正
当サイトで公開している InvalidateLinkOfInsertTag.pl プラグイン(エントリー編集画面のHTMLタグ挿入ボタンクリックでバックスクロールする不具合を解消)をご利用の場合、TinyMCE Plugin for Movable Type Ja が正常に動作しませんので、InvalidateLinkOfInsertTag プラグインを無効にするか、ファイル自体を削除し、
plugins/TinyMCEforMT/TinyMCEforMT.pl
を任意のエディタで開き、青色部分を追加してください。
HTML
chop ($old); $old = quotemeta ($old);
chop ($add1);
chop ($add2);
$$template =~ s/($old)/$add1$1$add2/;
$$template =~ s/href="#"/href="javascript:void(0);"/g;
}
1;
__END__
修正後、同じディレクトリにアップロードしてください。
大丈夫と思いますが TinyMCE Plugin for Movable Type Ja の動作を完全に保証するものではありませんので予めご了承ください。
エントリー編集画面に文字列選択なしでHTMLタグを挿入できるようにする
エントリー編集画面でテキストエリアの右上にある 


については、マウス等で文字列を選択状態にしておかないとタグが挿入できない仕様(というほどではありませんが)になっています。
先日「HTMLタグが挿入できません」というご質問を頂き、文字列を選択してくださいという回答を致しましたが、よく考えてみると選択状態でなくてもタグを挿入したい場合(タグを入力してからコンテンツを後で書き込む等)もあるのではないかと思います。
ということで、スクリーンショットのように非選択状態でもこれらのタグを挿入できるようにするカスタマイズです(例は blockquote タグを挿入)。
1.mt_ja.js の変更
HTMLタグの挿入は JavaScript で行っていますので、該当のスクリプトが書かれているファイル(mt_ja.js)の一部を修正します。
mt_ja.js はアップロードしている Movable Type のディレクトリ mt-static (index.html と同じパスにあると思います)の配下にありますので、それをダウンロード(ローカルに同じファイルがあればそれを利用)し、下記のパッチをあててください。
--- mt-static/mt_ja.js.bak Thu Mar 02 23:50:16 2006
+++ mt-static/mt_ja.js Thu Mar 02 23:51:11 2006
@@ -236,7 +236,6 @@
function formatStr (e, v) {
if (!canFormat) return;
var str = getSelected(e);
- if (!str) return;
setSelection(e, '<' + v + '>' + str + '</' + v + '>');
return false;
}
パッチがよくわからない、または面倒という方は、mt_ja.js を任意のエディタで開き、240 行目辺りを探して
function formatStr (e, v) {
if (!canFormat) return;
var str = getSelected(e);
// if (!str) return;
setSelection(e, '<' + v + '>' + str + '</' + v + '>');
return false;
}
と赤色のコメント用の文字を追加するか、その行を丸ごと削除して
function formatStr (e, v) {
if (!canFormat) return;
var str = getSelected(e);
setSelection(e, '<' + v + '>' + str + '</' + v + '>');
return false;
}
としてください。
どちらの方法も、修正が終わったら元のディレクトリにアップロードしてください。
2.ページのスクロールバックを防止する
3.2-ja-2 ではタグ挿入ボタンをクリックした後、ページの先頭に戻ってしまう(スクロールバック)という問題があります。それを避けるためにはエントリー編集画面のHTMLタグ挿入ボタンの不具合を解消するプラグインを併用ください。
以上です。
アップロード方法を指定するプラグイン
Movable Type のファイルのアップロード先等の指定は手入力で行っていたのですが、Better File Uploader というプラグインを導入しました。BigPAPI を利用したプラグインですので、バージョンアップによる修正は(多分)不要です。
以下設定方法です。
1.プラグインのダウンロード
Plugin: Better File Uploader のサイトより Installation の1項にある BetterFileUploader.zip のリンクをクリックして、アーカイブをダウンロードします(2/12付で Photo Gallery 関連のバグが改修されています)。
2.プラグインのアップロード
アーカイブを解凍して、中にある BetterFileUploader というフォルダを丸ごと plugins ディレクトリ配下にアップロードします。
- plugins/BetterFileUploader/BetterFileUploader.cgi
- plugins/BetterFileUploader/BetterFileUploader.pl
- plugins/BetterFileUploader/BetterFileUploader.pm
となればOKです。BigPAPI.pl が plugins ディレクトリにない場合、つまり BigPAPI を使ったことがない場合は、このファイルを plugins ディレクトリにアップロードします。
- plugins/BigPAPI.pl
また、BetterFileUploader.cgi のファイル属性を 755 等に変更します。
3.設定
- Override weblog-specific settings with the settings below:チェックすることでここでの設定がデフォルトの設定に上書きします。
- Default upload directory:アップロード先のディレクトリを指定します(アップロード画面の「アップロード先」に対応)。
- Append:チェックボックスにチェックすると、現在の年月のディレクトリが追加されます。
- By default, upload to:でアップロード先をアーカイブ・パス/サイト・パスのいずれかを選択します(アップロード画面の「アップロード先を指定」に対応します)。
- By default, publish as:のCreate a new entry using this uploaded file.がアップロード後画面の「エントリーを投稿」、Show me the HTML.が「HTMLを表示」に対応します。
- After uploading an image, a thumbnail can be built. How should the thumbnail size be calculated? はアップロード画像のサムネイルサイズを指定します(アップロード後画面の「サムネイル」部分に対応します)。The longest side should be pixels long:はピクセル指定した値が画像の長い方に適用されます。The thumbnail should be a fixed size:は画像の高さ・幅いずれかのサイズを指定します。
- Photo Gallery Creation Options:については同サイトで公開されている Basic Photo Gallery Templates との連携のための設定です。利用する場合は Enable easier photo gallery creation mode. にチェックします。Place the photo path in the Entry Body field. はエントリーフィールドに画像パスを設定、Place the photo path in the Extended Entry field. は追記フィールドに画像パスを設定します。
全て設定したら「変更を保存」をクリックします。ファイルのアップロード画面で設定が反映されていればOKです。
このプラグインや Photo Gallery Templates についての詳細は Movable Type 4989:Photo Gallery Templates で詳しく解説されていますのでそちらを参照されると良いでしょう。
管理画面のエントリーリストにパーマリンクを表示する
完成画面はスクリーンショットでお分かりのように、リンク画像をエントリータイトルの後方に表示するようにしています。これをクリックすることで該当のエントリーを表示することができます(URLを取得するだけであれば、IEの場合、リンクを右クリックして「ショートカットのコピー」を選択することでコピーできます)。 以下、カスタマイズ方法です。 |
1.CMS.pm の修正
エントリー一覧ではパーマリンク情報を取得していないため、これを取得できるよう、lib/MT/App/CMS.pm をダウンロードし、下記のパッチをあてます。パッチのあて方についてはパッチをあてる(その1:適用方法)をご覧ください。パッチがよく分からない&面倒という方はパッチをあてる(その1:適用方法)の4項をご覧ください。
--- CMS.pm.bak Thu Jan 29 23:24:40 2006
+++ CMS.pm Thu Jan 29 23:26:58 2006
@@ -5038,6 +5038,7 @@
$row->{author_name} = $author ? $author->name : $app->translate('(author deleted)');
$row->{category_name} = $obj->category ? $obj->category->label : '';
$row->{title_short} = $obj->title;
+ $row->{entry_permalink} = $obj->permalink;
if (!defined($row->{title_short}) || $row->{title_short} eq '') {
my $title = remove_html($obj->text);
$row->{title_short} = MT::I18N::substr_text($title||"", 0, MT::I18N::const('DISPLAY_LENGTH_EDIT_ENTRY_TITLE')) . '...';
パッチをあてた後はアップロードして元の CMS.pm に上書きしてください。
2.エントリーリスト表示用テンプレートを修正する
BigPAPI用プラグインを利用する方法と、テンプレートを直接修正する方法の2通りを紹介します。2.1項または2.2項のいずれかお好きな方を選んでカスタマイズしてください。
テンプレート編集ページで「メインページ」のデフォルト状態は左のようになっています。
メインページを hogehoge というディレクトリの下に作成したい場合は、左のように「出力ファイル名」欄の index.html の前に「hogehoge/」を追加します。記述したディレクトリは自動的に作成されます。
ひとつ上のディレクトリに出力する場合は、「../」をファイル名の前に付与します。
管理画面でエントリーリストを表示した時にそのエントリーのパーマリンク(エントリーアーカイブページのURL)も同時に表示するカスタマイズです。