Home > MovableType > mt4 Archive

mt4 Archive

Select Pages:

InstaMTで4.2使ってみた

ローカルでかんたんにMovable Typeが動作するデモ環境を構築する、InstaMTでバージョン4.2を動かしてみました

ダウンロードとインストール

InstaMTのダウンロード・インストールの説明はwww.movabletype.jpの以下のページに記載されています。

MTOS4.2をwww.movabletype.orgからダウンロードします。

4.2へのアップグレード

MT4.2へのアップグレードの具体的な方法が、The blog of H.Fujimotoさまにて紹介されています。

手順のとおり、必要なフォルダを上書きし、[ mt-static ]フォルダは、[ www ]フォルダ内のmt-staticに上書しました。

ログインすると、ウィザードが起動してアップグレードがおこなわれました。

尚、当方アップグレード前にログインしてInstaMT同梱のMTOS4.1テンプレートでブログを構築していましたので、テンプレートの編集のところでRefresh Blog Templateをおこないリビルドしたら、MT4.2のほうのテンプレートが反映されました。

mt.Vicunaとか

あと、mt.VicunaのテンプレートセットもInstaMT環境で使えるようでした。

MTOS4.2ですと、デフォルトでウィジェットセットがセットされてないようなので、空のwidgets.cfgを作らなくてもそのままRefresh Blog Templatesからインストールできました。フォルダを入れる場所は、Vicunaの説明のとおりで、pluginsフォルダはinstamt/cgi-bin/mt/plugins/に、Vicunaのテーマは、instamt/www/mt-static/themesに入れました。

テキストエリアのAYCの件

mt.VIcunaテンプレートで、textareaの初期値にAdd Your Commentを書いてフォーカス時に初期値がクリアされるという動作についてです。

ネタ元は、mt.Vicuna フォーラムのトピック、「コメントプレビュー表示時の Add Your Comment 表示について」です。

コメントを入力して -> プレビュー すると、プレビュー画面下のコメント欄には、自分で入力したコメントではなく Add Your Comment が表示されてしまい、そのままPOSTすると Add Your Comment がコメント投稿されてしまいます。

動作としては、textarea要素の初期値は、「Add Your Comment」として、フォーカスされたとき(onfocus)に初期値が消えるというものです。キーワード検索のテンプレートにおける動作と同じようなもので、基本は以下のような形となります。

*見やすくするために適当な箇所で改行してます

<textarea id="comment-text" class="inputField" name="text" rows="8" cols="50"
 onfocus="if (this.value == 'Add Your Comment') this.value = '';"
 onblur="if (this.value == '')
 this.value = 'Add Your Comment';">
Add Your Comment
</textarea>

で、自分のところでは、上のような処理をいれているのですが、コメントフォームのテンプレートモジュールがシステムテンプレートの場合も兼ねているために、システムテンプレートであったときの処理も併記する必要があるために、以下のような形で使っています。

*実際は改行せずに一行です。

<textarea id="comment-text" class="inputField" name="text" rows="8" cols="50"
<MTIf name="tempName" like="individual"> onfocus="if (this.value == 'Add Your Comment') this.value = '';" onblur="if (this.value == '') this.value = 'Add Your Comment';"</MTIf>>
<MTIf name="tempName" eq="system_comment_preview">
<$MTCommentBody autolink="0" sanitize="0" convert_breaks="0" encode_html="1"$>
<MTElseIf like="individual">Add Your Comment</MTIf>
</textarea>

MTIf name="tempName" eq="system_comment_preview以降の処理がコメントプレビューだったときに、テキストエリアに書き込まれた内容を表示させるためのものです。

MTCommentBodyタグで、コメントの内容をテキストエリアに表示させます。この処理にもちょっと不満なところもあって、コメントに何もかかれない状態でプレビューしますと、Add Your Commentになっちゃいます。ま、あまりありえないんですけど。

<MTElseIf like="individual">Add Your Commentと書いた部分についてですが、「コメントプレビューテンプレート」以外のときに初期値を書くためのものです。もともとは、MTElseIfのところは、MTElseだけで書いていたような気がしたのですが、多分MTElseだけで処理してよさそう(のはず)。

メモ:記事ごとに違う処理したいときのカスタムフィールド

特定記事のみで読み込むコードとかがある場合に、条件処理させたいと思い、カスタムフィールドを使ってやってみました。

1.カスタムフィールドの設定

カスタムフィールドを新規作成します。以下のような感じで、Yes,Noをラベルに使ったラジオボタンを作成します。

  • 名前: 任意
  • 説明: 任意
  • 種類: ラジオボタン
  • オプション: Yes,No
  • 必須?: チェック(チェックにすることで、記事作成画面に常に表示されます)
  • 規定値: NoまたはYesのラジオボタンにチェック

ここで作成されたタグの出力結果は、ラジオボタンにチェックを入れたほうの値となります。

Yes,Noでなくても自分でわかりやすい変数っぽいものでもいいでしょう。

2.ブログ記事テンプレートに変数を定義

Checkboxという名前でできたカスタムフィールドですと以下のような形となります。

場所は、ブログ記事テンプレートの上の辺りにでも

<MTIfNonEmpty tag="Checkbox">
<MTSetVarBlock name="check"><MTCheckbox></MTSetVarBlock>
</MTIfNonEmpty>

MTIfNonEmptyタグは念のため記述してありますが、「必須」にしてあるのでもしかしたら要らないかもしれません。

3.処理を行いたい箇所のコード

条件分岐したい場所に以下のようにeq=...にて判断をおこないます。この場合は、Yesにチェックが入っていた場合の条件での処理になります。MTElseなどを入れることも考えられるでしょう。

<MTIf name="check" eq="Yes">
do something...
</MTIf>

カスタムフィールドと条件分岐についてはだいたいこのような感じです。

Custom Editor Buttonで記事作成の効率アップ

  • Posted by: maRk
  • mt4 | plugins
  • このエントリーを含むはてなブックマーク
  • ブックマークに追加する

MovableTypeの記事作成画面に、任意の機能を持つボタンを追加させるプラグイン、「Custom Editor Button」がなかなか便利です。

MT4ではさまざまなフォーマットに対応して記事を作成することができますが、使っていてこんな操作が欲しい、というのがあります。そんなときに、Custom Editor Buttonは、自分の欲しい操作を追加することができるので便利ではないでしょうか。

CustomEditorButton2 より

管理画面のブログ記事投稿画面に、任意の機能を持ったボタンを追加できるプラグインです。

関連ページは以下のとおりです

投稿時間に置き換えるボタンなど欲しい動作なので重宝します。自分が記事を書くスタイルにあわせて利用できるのがいいですね。ちょっと真似してタブ文字追加するのと、タブインデントつきliタグをつけるというのを作ってみました。配布するほどのものでないんでソースだけ紹介します。ボタン用の画像は、プラグインの中にプレーンなボタンが同梱されてましたので、それを使ったら簡単に作成できました。


    tabindentlist:
        image: <ボタン画像へのパス>
        title: tabindent-li
        code: |
            function ceb_tabindentlist ( text ) {
                return '\t<li>' + text + '</li>\n';
            }

MT:コメントの一覧表示のクイックフィルタのところ

  • Posted by: maRk
  • mt4
  • このエントリーを含むはてなブックマーク
  • ブックマークに追加する

MT4.1コメントの一覧の「クイックフィルタ」に「スパムでないコメント」というのがあるのですが、どうもこの表現がしっくりとこないのです。

コメントの管理では、ブログへのコメントの一覧(もしくはシステム全体へのコメント一覧)が、表示されます。

右側にあるフィルターにて、いろいろと絞り込むことができるようになっています。

参考: 

このドキュメントで、「スパムでないコメント」という説明は、「ブログに投稿されたスパムではないコメントのみを一覧します。(一覧する内容の絞り込みより)」とあるように、読んで字の如くなんですけど、どうもこの「スパムではない」という表現がしっくりときません。

URLのパラメータのとこみると、key=defaultとあることから、コメント一覧の基準となる一覧のことが、「スパムでないコメント」なのかと。

おそらく、「スパムコメント」を絞りこんだあとに、「スパムコメントでない」という条件にもどすという操作に移るためのものかと勝手に解釈しています。でも例えば、メーラーなどは、「Inbox」、「受信箱」というのがデフォルトの位置だったりしますので。「スパムメールではないメール」というフォルダなんてわざわざ作らないですよね。
#フォルダ違うし、てのはあるけど。(汗;

・・・・・・と揚げ足取りでもうしわけない。でもなんだかモヤッとしたのでした。おわり。

MT:トップページのパンくずリストについて

MT4でパンくずリストをMTIfタグで分岐させていることかと思いますが、トップページについての条件式をはずすというのをやってみました。

以下の方法は好みの問題でもありますので、自分はこうやるということで紹介しておきます。

1. トップページのパンくずは直書きに

たいていは、パンくずリストを一元管理するため、共通のテンプレートとしてインクルードさせることが多いようです。

ブログのトップページのパンくずリストは、プログのトップページへのリンクのみとなっていますから相対パスを利用すれば、トップページ(メインインデックス)ではパンくずリストのテンプレートはインクルードせずに、以下のようなものを直接埋め込むことで済むのではないでしょうか


<p class="topicPath><a href="./">HOME</a></p>

パンくずリストのテンプレートからトップページかどうかの条件式をはずす


<MTUnless name="main_index">
<p class="topicPath"><a href="">HOME</a>
do something...
</MTUnless>

のような形であったとしますと、先述したとおりメインインデックスページで直接かいてあれば、name="main_index"のようにメインインデックスかどうかを判断する条件式をはずすということができるというわけです。

Index of all entries

Home > MovableType > mt4 Archive

Search
Feeds
Elsewhere

Action Streams

logo

Mozilla Firefox ブラウザ無料ダウンロード

Movable Type

TypePad AntiSpam

Return to page top