MovavleType のプラグイン開発をされているアークウェブさんから、面白そうなプラグインが出ていたので紹介します。

範囲内のMTタグを解釈させずにそのまま出力させるプラグイン - NoProcess

用途としては、当該ページに書いてあるように、

MT::BootstrapなどMTタグを解釈して動作するCGIアプリケーション等が利用するテンプレートファイルをMTを使って生成したい場合に便利に使えます。

ということですが、このサイトでは、検索結果に代替テンプレートを使っているので、そのテンプレートファイル(MT/search_templates/altsearch.tmpl)を出力させるために使っています。

「わざわざそんなことしなくてもFTPでアップロードすればいいじゃyないか!」というご意見もあるでしょうが、MovavleType のアップグレード時にファイルのアップロードを忘れてしまったり、あるいは、テンプレートを修正するときに、わざわざFTPを立ち上げなくても、他のテンプレート同様に管理画面で修正できるという利点もあるのです。

関連エントリー

このサイトは、Movable Type 4.27 ですが、他に運営しているサイトを、Movable Type 5.01 へアップグレードしました。その際の注意点を備忘録として書き記します。

アップグレードの注意点

具体的な方法は、Movable Type 5 ドキュメンを読んでいただくとして、基本的な手順はこれまでのアップグレードと同じです。ただし、いくつかの注意点があります。

  1. Movable Type 5.0 の変更点、注意事項、および既知の問題 | Movable Type 5 ドキュメントに記載の通り、mt-config.cgi に DefaultLanguage の記述がない場合は、"DefaultLanguage ja" を追記しないと、インストール画面が英語になったり、ダッシュボードでのテンプレート名が英語表記になったりします。
  2. 同じく、Movable Type 5.0の内部処理は、PublishCharsetによらず必ずUTF-8でおこなわれます。外部のサイトからフィードを取得するプラグインなどは、UTF-8へのエンコード、デコード処理が必要になります。このため、Feeds.App Liteで外部のフィードを取得するときに、文字化けすることがあります。

前述の2については、Feeds.App Liteを使ってBBSのFeedを表示させていたので、見事に文字化けしました。これを回避するため、jsRSS.cgiを利用した方法に変更しました。

プラグインの対応状況

前述の光陽マーリンズ Websiteではほとんどのプラグインが問題なくつかえましたが、対応バージョンが出ていないものでも、利用者による暫定対応版やTipsが紹介されていたので掲載します。

  1. Google Sitemapsへの更新通知を自動化するMovableTypeプラグイン:MTGoogleSitemapsPingは、Vicuna :: トピックを表示 - mt.Vicuna Simple 2.3を公開しましたに修正版についての情報があります。

    Vicuna :: トピックを表示 - mt.Vicuna Simple 2.3を公開しました

    Sitemap XMLテンプレートの追加
    GoogleやYahooにクロールされる為の、SiteMap 0.9(XML)ファイルのテンプレートを追加しました。
    一般的に見かける sitemap.xml では、カテゴリーアーカイブや月別アーカイブも記述されている為、検索された時に同じ情報が複数URlに表示され、LandingPageがバラけてしまう事になると考えます。その為この中に記述されるファイルは、メインインデックス・ブログ記事・ウェブページ・アーカイブインデックス(アーカイブインデックスは削除した方が良いのかもしれません)のみとし、ブログ記事とウェブページの重みを大きく設定しています。
    MTGoogleSitemapsPingを併用する事により、作成されたサイトマップファイルをクロールしてもらうよう、Googleに更新Pingを打つ事が可能になります。
    私が試した範囲では、MTGoogleSitemapsPingはMT5環境では動作しませんでした。
    GoogleSitemapsPing - oscar's CODEに、私のMT5環境で動作するMTGoogleSitemapsPingプラグインを公開しています。
    修正済みプラグインダウンロード
    MTGoogleSitemapsPingプラグインをインストールする事により、自動的にGoogleへの更新Ping機能が有効になります。

    /HA oscar WolaWola

  2. Custom Editor Button 2のMT5でポケットボタンが表示されない対処法は、MT:Custom Editor Button 2の小技をいくつかに対処方法が掲載されていました。

    MT:Custom Editor Button 2の小技をいくつか « maRkのMyOwn

    その5.MT5でポケットボタンが表示されない対処

    MT5(b1)で四次元ポケットが表示されていないのを確認しました。実際は表示されているのですが、スタイルの位置が原因で表示されていないように見えるというものです。

    具体的にはCustomEditorButton2.pmファイルの最後のほうのスタイルシートの箇所で、div#ceb-containerと、div#ceb-boxに対するwidthプロパティの指定をコメントアウトすれば表示されるようになりました。

このサイトでも、Movable Type 5.01 へのアップグレードを検討していますが、プラグインのいくつかが未対応なので、状況を見守っています。今のところ懸案は、

  1. リアルタイム再構築を利用してページ分割で利用する、ページ分割プラグイン(DivPages_1_10
  2. MT4iと連携した携帯サイトの構築で利用する、I18N Helper Plugin

です。

ページ分割は他の手段もありますが、2のI18N Helper Pluginは他に代替手段がないので困っています。MT5・プラグインの皆さん動いてますか - WolaWolaにヒントがあったので、時間があれば取り組んでみたいと思います。

【2010-01-15 追記】
MT5・プラグインの皆さん動いてますか - WolaWola では、I18N Helper 0.10については、「MT::I18N::encode_text」とかが、無くなってるみたいです。名前が変わったのかな?「encode_text_encode」とかにすればいいのかも。となっていましたが、5.01で動作確認できました。
【2010-01-28 追記】
MT4i3.1 alpha2 は、ロリポップ・チカッパでは、Movaable Type 5.01でEncode.pmがらみでエラーがでるようですが、SAKURAでは動作確認できました。
【2010-02-08 追記】
ページ分割プラグインについては、MT5対応版が公開されました。Perl版ダイナミックパブリッシング用ページ分割プラグイン(MT5対応版)

1月6日付で、シックス・アパート社から、セキュリティアップデートとして Movable Type 5.01 と 4.27の提供が開始されました。

このサイトは、Movable Type 4.261 で構築しています。Movable Type 5.01 への移行も検討していますが、プラグインのいくつかが対応していないのでもうしばらく様子を見守ろうと思いますが、セキュリティアップデートとのことですので、どのバージョンにせよ、早めのアップデートをお勧めします。

このサイトでも利用させてもらってる、Movaable Type をモバイル対応にするCGIが、MT5に暫定ながら対応して公開されました。

検索機能などもついてパワーアップしています。

【2009-12-28 追記】
現在は、MT4i version 3.1 alpha2 が公開されています。
【2010-01-28 追記】
ロリポップ・チカッパでは、Movaable Type 5.01でEncode.pmがらみでエラーがでるようですが、SAKURAでは動作確認できました。

Movable Type 4.1からテンプレートセット機能が搭載されましたが、これを作成するのは若干のスキルが必要になります。

そこで、ブログごとのテンプレートをテンプレートセットとして作成できる、TemplateSetExporter Plugin を導入してあります。

MovableType用TemplateSetExporter Plugin Ver.0.50 (エムロジック放課後プロジェクト)

また、次のサイトでは、さらに使いやすくするTipsが掲載されています。

Movable Type のテンプレートをカスタマイズするときのバージョン管理 - かたつむりくんのWWW

なお、Movable Type 5 には対応していません。

複数ブログで構成されたサイトで、検索結果のテンプレートを共通化したい場合は、mt-config.cgiに環境変数

SearchAltTemplate altsearch altsearch.tmpl

と記述し、代替の検索結果のテンプレートを指定(MT/search_templates/altsearch.tmpl)しますが、ここで落とし穴。

このままだと、検索結果のFeedが出力されません。

検索結果のFeedをクリック
検索結果のFeedをクリック

検索結果Feedテンプレートが無いエラー
検索結果のFeedテンプレートが無いエラー

そこで、検索結果のFeedテンプレートも次のように環境変数に記述します。

SearchAltTemplate altsearch altsearch.tmpl
SearchAltTemplate feed results_feed.tmpl

MT4iの作者、太鉄さんにご指摘頂き気付きました。ありがとうございます。

冗長になりがちな Movable Type の出力ページの、余分な改行・空行などを全部取ってくれる「Source Code Cleaner(ソースコード・クリーナー) - Movable Type プラグイン」がバージョン 2.0 にアップデートされたのを機会に導入してみました。

バージョン 2.0 からの便利機能として、tabindex 属性、accesskey 属性、外部リンクに class 属性まで付けられます。

JavaScriptやCSSのMinify機能を実現するプラグイン、Minifier Pluginを導入しました。

膨れ上がっていたCSSファイルのサイズが小さくなりました。読み込み速度もあがるかな?

「Movable Type 4.2 パーフェクトガイド」(小粋空間の荒木勇次郎著:毎日コミュニケーションズ)に、メールマガジンを発行する方法について解説がありました。

具体的には、本を読んでいただくとして自分自身の覚書。

手順

1.購読・購読解除用のインデックステンプレートを新規に作成し、次のフォームを埋め込む。

<div class="section">
<h3>メールマガジンの購読</h3>
<div class="asset-content">
<p>次のフォームからメールアドレスを登録するだけで、このサイトのブログをメールで受け取ることができます。どうぞご利用ください。</p>
<form method="post" action="<$mt:CGIPath$>mt-add-notify.cgi">
<div id="comments-open-data">
<input type="hidden" name="blog_id" value="<$mt:BlogID$>" />
<input type="hidden" name="_redirect" value="<$mt:BlogURL$>" />
<div id="comment-form-email">
<label for="registry-email">登録するアドレス:</label><br />
<input name="email" for="registry-email" size="30" />
</div>
</div>
<div id="comments-open-footer">
<input type="submit" class="submit" value="購読する" />
</div>
</form>
</div>
<h3>メールマガジンの購読を解除</h3>
<div class="asset-content">
<p>メールマガジンの購読を解除するには、次のフォームにメールアドレスを入力して「購読を解除」をクリックしてください。</p>
<form method="post" action="<$mt:CGIPath$>mt-add-notify.cgi">
<div id="comments-open-data">
<input type="hidden" name="__mode" value="unsubscribe" />
<div id="comment-form-email">
<label for="deregistration-email">解除するアドレス:</label><br />
<input name="email" id="deregistration-email" size="30" />
</div>
<div id="comments-open-footer">
<input type="submit" class="submit" value="購読を解除する" />
</div>
</div>
</form>
</div>

2.システムの「ブログ記事の共有」テンプレートを次のように書き換え。

富山市議会議員 しきだ博紀 メールマガジン「<$mt:EntryTitle$>」
<$mt:EntryDate mail="1" format="%x"$>
<mt:If name="object_type" eq="entry">表示する<mt:Else>表示する</mt:If>: <mt:SetVarBlock name="entry_status"><$mt:EntryStatus$></mt:SetVarBlock><mt:If name="entry_status" eq="Publish"><$mt:EntryPermalink$><mt:Else><$mt:Var name="entry_editurl"$></mt:If>
-------------------------------------
<mt:If name="send_excerpt">
<$mt:EntryExcerpt wrap_text="72"$>
-------------------------------------</mt:If>
<mt:If name="message">メッセージ: 
<$mt:Var name="message"$>
-------------------------------------</mt:If>
<mt:If name="send_body">
<$mt:EntryBody remove_html="1" wrap_text="72"$>
-------------------------------------</mt:If>
■ 富山市議会議員 しきだ博紀
e-mail info@shikidahironori.jp
Twitter http://twitter.com/h_shikida
公式サイト http://<$mt:BlogHost$>
購読と解除(PCから) http://<$mt:BlogHost$>/blog/mail_magazine.html
購読と解除(携帯から) http://<$mt:BlogHost$>/blog/m/mail_magazine.html

3.必要に応じ、lib/MT/L10N/ja.pmを書き換えて読確認メールのメッセージと、メールマガジンのタイトルを変更することもできます。このサイトでは、タイトルに関するの982行目のみを変更していますが、詳しくは書籍をご覧ください。

'[_1] Update: [_2]' => 'メルマガ: [_1] - [_2]',

4.あとはブログ記事の編集画面で「共有」をクリックすれば、アドレス帳に登録されたメールアドレスへ、ブログ記事を送ることが出来ます。

履歴が残らないなどの点はありますが、とりあえず手軽にメールマガジンを発行したい場合に使えます。本当はプラグインがあればいいのだけれど。

photo
Movable Type 4.2 パーフェクトガイド
毎日コミュニケーションズ 2008-07-31

by G-Tools , 2009/11/09

オリジナルのcssでデザインした場合、コメントのサインイン画面でロード中の画像が表示されない場合は、次のような画像を用意し(以前書いたように、このサイトでは、ajaxload.infoというサイトで作成したものを使用しています。)

ロード中の画像(ajax-loader.gif)

スタイルシートに次の記述をします。

.status-indicator {
    display: inline;
    height: 16px;
    width: 16px;
    background: url(../images/ajax-loader.gif) no-repeat left center;
    padding: 2px 7px;
}

当然のことながら、heightとwidthは画像の大きさに合わせてください。backgroundのurlも画像へのパスもか各自の環境にあわせて書き換えを。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

アイテム

  • 検索結果Feedテンプレートが無いエラー
  • 検索結果のFeedをクリック
  • ブログ記事の編集画面(EasyTagSelector)
  • 遷移後の画面
  • ReTweet 0.3 プラグイン設定画面

Twitter Updates

OpenID対応しています OpenIDについて
Powered by Movable Type 4.27-ja