blue

MTの編集ボタンを追加・改造(3.3対応プラグイン版)

  • Posted by: SOMA Hitoshi
  • September 5, 2006 7:26 PM
  • mt

「v1.01」の不具合を修正した「v1.02」をリリースしました。「v1.0」からの変更点は「MT3.3以上でBigPAPIにも対応」ということだけなので、導入にあたってはこのページの説明をそのまま適用いただけます。このページにあるダウンロードファイルのリンク先も「v1.02」に修正済みです。

MT3.3以上でBigPAPIにも対応させた「v1.01」をリリースしました。詳しくは「TFforEditButtons v1.01(BigPAPIと両対応バージョン、但しMT3.3専用、動作未確認)」を参照ください。

1年ちかく前に「MTの編集ボタンを追加・改造する」という記事を書いたが、それはMT 3.2までを対象としたカスタマイズの手順になっている。MTは3.2→3.3でだいぶ変わっているので、書いてある手順どおりに作業しようとすると3.3以上の環境ではそぐわない内容が多い。

また、前掲の記事にある手順は「edit_entry.tmpl」などのファイルを直接書き替えるタイプのものだが、そうするとアップグレードのたびに同じカスタマイズを施さなければならないから厄介なのである。3.3から追加された「Transformer」機能によって管理画面を修正・変更するプラグインの開発が容易になったこともあり、まあ世の中「MTの機能追加はプラグインで」ということになってきている。

といったわけで、「MTの編集ボタンを追加・改造する」で実現していたカスタマイズ内容をMT3.3に対応させ、それをプラグイン化してみた。導入手順は以下のとおり。

とその前に、もう一度カスタマイズ内容を説明しておくと、

MTの記事投稿画面にはタグの入力補助をするボタンが付いているが品揃えがいまいちで、かえって便利さよりも「ほしいタグがない」不便さのほうが勝っている。それとこれは Firefox で動作させた場合なのだが、文章をたくさん書いて入力欄(textarea)にスクロールバーが出ているとする。その文章の下部(スクロールバーが下りている状態)で入力しているときにこのボタンを使うと、タグが挿入されるたびにいちいちスクロールバーが上まで戻ってしまい、ひどく不便なのである。web-conte.com | MTの編集ボタンを追加・改造する

というこの2点の改善が目的。

ダウンロード

まず、プラグインファイル(v1.02)をダウンロード。

アップロード

解凍すると、

  • editbuttons.css
  • editbuttons.js
  • TFforEditButtons.pl

の3ファイルが出てくるので、これをそれぞれ、

  • MT/mt-static/plugins/TFforEditButtons/editbuttons.css
  • MT/mt-static/plugins/TFforEditButtons/editbuttons.js
  • MT/plugins/TFforEditButtons.pl

にアップロード(上のふたつを入れる /TFforEditButtons というディレクトリは自分で作ってください)。

以上。

プラグインなので、導入は以上。記事編集画面に行くと、こんな感じになっていると思います。

060905_editbuttons.png

「TFforEditButtons.pl」をカスタマイズする

キャプチャ画像にあるとおり、提供しているプラグインのデフォルトでは「h4」「p」「ul」「ol」「li」「dl」「dt」「dd」「cite」「pre」「xmp」「br」という私の追加したかったタグが追加されますが、これ以外にもっと追加したい、あるいは class 指定を含めたかたちでタグを挿入したいという場合には、「TFforEditButtons.pl」を自分でいじっていただくことによりカスタマイズが可能です。

以下の説明は「まあ、ソース見ればなんとなくわかるでしょ?」という態度で書かれているために多少親切さを欠きますがご了承ください。

ボタンを追加する場合、「エントリーの内容(body)」の上に付くものと「追記(more)」の上に付くものとふたつあるため、ソースの2箇所に追加する必要があります。

「エントリーの内容(body)」の上

まず「エントリーの内容(body)」の上ですが、「TFforEditButtons.pl」の69行目〜87行目、JavaScriptの document.write() がずらっと並んでいるここをいじれば反映されます。たとえば76行目の、

       write('<a class="textbuttons" title="" href="javascript:void(0);" onclick="return markup_html(document.entry_form.text, \\'h4\\', \\'\\');">h4</a> ');

とあるのが「h4」ボタンを追加する部分ですが、これをもとにして要素名のところだけ変え、

       write('<a class="textbuttons" title="" href="javascript:void(0);" onclick="return markup_html(document.entry_form.text, \\'div\\', \\'\\');">div</a> ');

という行を追加してやれば「div」ボタンができます。また、挿入されるタグに好みの class 指定を加えたいという場合には、

       write('<a class="textbuttons" title="" href="javascript:void(0);" onclick="return markup_html(document.entry_form.text, \\'div\\', \\'image\\');">div</a> ');

というふうに利用します(上記例で作ったボタンをクリックした場合、<div class="image"></div> というタグが挿入されます)。

それから、「br」「hr」などの空要素タグの場合には、空要素タグであることを指定する部分が加わります。デフォルトで入っている「br」ボタンのソース(87行目)をもとにしてください。

       write('<a class="textbuttons" title="" href="javascript:void(0);" onclick="return markup_html(document.entry_form.text, \\'br\\', \\'\\', \\'empty\\');">br</a> ');

赤字の部分が加わっていて、これが「空要素タグである」という共通の指定になります。それ以外の書式はいっしょです。

       write('<a class="textbuttons" title="" href="javascript:void(0);" onclick="return markup_html(document.entry_form.text, \\'br\\', \\'clear\\', \\'empty\\');">br</a> ');

というふうにすれば <br class="clear" /> が挿入できる、といった具合。

「追記(more)」の上

「TFforEditButtons.pl」の126行目〜144行目がそれにあたります。

       write('<a class="textbuttons" title="" href="javascript:void(0);" onclick="return markup_html(document.entry_form.text_more, \\'h4\\', \\'\\');">h4</a> ');

赤字にしたtextareaのnameがちがうだけで、あとは「エントリーの内容(body)」の場合とまったく同じです。

以上。

関連記事

トラックバック(1)

トラックバックURL: https://web-conte.com/blue/mt-tb.cgi/126

以下のリストにある記事は、当記事 " MTの編集ボタンを追加・改造(3.3対応プラグイン版) " を参照しています :

SOMA Hitoshi様が公開されている「TFforEditButtons」と...

2007年5月 7日 00:24