MT更新でmixiボイスに自動的につぶやく
以前、紹介したエムロジックさんの『PostToTwitter』が新しくOAuthに対応して、『PostTweet』として公開されていました。基本的な使い方は『PostToTwitter』と一緒ですがプラグインの設定でOAuthの認証作業が必要になっています。
『MovableType用PostTweetプラグイン v1.0.0』
さて、これを使うとMovable Typeを更新すると自動的にTwitterにつぶやかれるわけですが、mixiボイスがTwitterと同期できるようになっていました。もしかしてこれを利用すれば「MT→Twitter→mixiボイス」と自動的に更新出来る? と思って試してみました。結果成功しました!
続きを読む »
方法はとても簡単です。まず『PostTweet』を導入し設定を済ませます。導入できたら、mixiボイスの設定をするだけです。mixiの「設定変更」から「ボイスの設定」に行き「Twitter連携」をクリックするとTwitterの認証画面が出るので「許可」すればいいだけです。
因にデフォルトテンプレートでは、タイトルとURLだけが投稿されますが、本文を含めて140文字以内にすることもできます。
タイトル、本文、アドレス

作り方は『MTのエントリーを自動でtwitterに投稿 PostToTwitter』を参照して下さい。
« 元に戻す
MTのエントリーを自動でtwitterに投稿 PostToTwitter
Movable Typeに記事を投稿した時に、自動的にtwitterにも投稿するプラグイン、『PostToTwitter』を導入してみました。皆さんtwitterだとブログよりも気軽にコメントを下さるので、ブログ記事がそのままtwitter上でコミュニケーションに発展し、思っていたよりも良い効果がありました。
『PostToTwitter』は通常のテンプレートだと、記事のタイトルと短縮されたアドレスが投稿されますが、本文も載せる方法をご紹介します。
ダウンロードはエムロジック放課後プロジェクトさんからどうぞ。
Before タイトルとアドレスのみ

After タイトル、本文、アドレス

続きを読む »
『PostToTwitter』は自分で作ったテンプレートをプラグインの設定画面から指定することが出来ます。デフォルトでは mt/plugins/PostToTwitter/tmpl/message_format.tmpl を使用しています。
デフォルトテンプレート
<mt:setvar name="title_len" value="140" />
<$MTEntryExcerpt encode_xml="1"$>
<mt:setvarblock name="title"><mt:entrytitle /></mt:setvarblock>
<mt:setvarblock name="link"> - <mt:entryshortenedpermalink /></mt:setvarblock>
<mt:setvarblock name="link_len"><mt:var name="link" count_characters="1" /></mt:setvarblock>
<mt:setvar name="title_len" op="-" value="$link_len" />
<mt:var name="title" trim_to="$title_len" /><mt:var name="link" />
twitterは140文字という制限があるので、タイトル、本文、アドレスを含めて140文字に収まるようにしなければいけません。このデフォルトテンプレートではタイトル、アドレスを含めて140文字に収まるようになっています。収まらない場合は切り捨てられます。このテンプレートにタグを一つ追加するだけで、本文を含めて140文字に収まるようになります。
<mt:setvar name="title_len" value="140" />
<$MTEntryExcerpt encode_xml="1"$>
<mt:setvarblock name="title"><mt:entrytitle /> - <$MTEntryExcerpt encode_xml="1"$></mt:setvarblock>
<mt:setvarblock name="link"> - <mt:entryshortenedpermalink /></mt:setvarblock>
<mt:setvarblock name="link_len"><mt:var name="link" count_characters="1" /></mt:setvarblock>
<mt:setvar name="title_len" op="-" value="$link_len" />
<mt:var name="title" trim_to="$title_len" /><mt:var name="link" />
- <$MTEntryExcerpt encode_xml="1"$>
はエントリーの概要を表示するタグです。タイトルとの間が分かるように半角ハイフンが入っています。<$MTEntryBody$>だとhtmlも反映してしまうので、こちらを使っています。文字数は「ブログ記事設定」の「概要の文字数」で指定した文字数になりますが、このサイトでは200文字にしています。200文字だと140文字を超えてしまっていますが、エントリーのタイトル、本文、アドレス全て含めて140文字以上になるとそれ以降の本文は切り捨てられます。
このテンプレートをテンプレートモジュールに作成しても良いのですが、当サイトでは複数のブログを運営していて一つずつ設定するのが面倒だったので mt/plugins/PostToTwitter/tmpl/message_format.tmpl を直接書き換えてしまいました。
« 元に戻す
MTOSでMTFeedを使う
MTOSではMTFeedが使えません。
今回はMTOSでMTFeedと同じことを出来るようにする方法をご紹介します。
通常版のMTに付属してくるMTFeedは有料版にアップグレードしないと日付が取得出来ないのですが、この方法では無料で日付取得が出来ます。MTOSではなく通常のMTでも使えます。
MTOSの代表的な弱点はカスタムフィールドが使えないことと、MTFeedが使えないことです。しかしカスタムフィールドに関しては、藤本 壱さんがお書きになっている『MTOS活用テクニック』で解決出来ます。この本はとても分かりやすく説明して下さっているので、プログラムのことなどさっぱり分からない僕でもカスタムフィールド用のプラグインが作成(ほとんどコピー&ペースト)出来ました。

あとはMTFeedが使えない弱点を克服すれば、MTOSとMTを選ぶ時にMTOSを選べるシチュエーションがとても増えるのではないでしょうか。
続きを読む »
さて、勿体ぶって書いて来ましたが、MTOSでMTFeedと同等のことをするにはどうするのかというと、作業はとても簡単でプラグインを導入するだけです。Movable Type 備忘録さんで配布されている 『FeedEx プラグイン』というものです。
まずは上記サイトよりプラグインをダウンロードします。使い方も同ページで詳しく書かれていますが、ここではとても単純なテンプレートを作ってみます。
<MTFeedEx uri="フィードのURL">
<MTFeedExEntries lastn="5">
<ul>
<li><a href="<$MTFeedExEntryLink$>"><$MTFeedExEntryDate format="%Y年%m月%d日(%a)"$> <$MTFeedExEntryTitle$></a></li>
</ul>
</MTFeedExEntries>
</MTFeedEx>
上記の例では「2010年 02月10日(水) エントリータイトル」といった感じで五件のエントリーが表示されます。「<MTFeedExEntries lastn="5">」が件数を表しています。
「<$MTFeedExEntryDate format="%Y年%m月%d日(%a)"$> 」で日付のフォーマットを指定しています。MTの日付フォーマットについてはMT公式サイトのドキュメントを参考にして下さい。
MTFeedを使ったことのある方ならお分かりになると思いますが、殆どタグの「MTFeed」を「MTFeedEx」に置き換えるだけです。そしてこのプラグインがMTFeedよりも優れているのが、無料なのに日付が取得出来るということです。なのでMTOSではなく通常のMTの場合でも、こちらを使うとMTFeedにお金を出さずに日付取得が出来ます。
ところでMTFeedもMTFeedExも静的生成のままでは再構築をかけなければ、情報が更新されません。皆さんphp化したりcronを使ったりされていますが、静的生成のままでcronを使わずに外部ブログの更新でリアルタイムに再構築させる仕組みを考えてみました(条件が限られていますが)
『MTFeed 外部ブログの更新で自動的に再構築する(cron未使用)』
« 元に戻す
MTFeed 外部ブログの更新で自動的に再構築する(cron未使用)
今回は、スタティックページでもMTFeedで読み込んだ外部ブログが更新された時に、自動で再構築をかける方法をご紹介します(cronは使いません)
使用例は当サイト『PROFILE』のサイト新着情報のような感じです。
あらかじめ書いておきますが、この方法は外部ブログからのpingを利用して再構築する仕組みのため、MTFeedで読み込んでいる外部ブログが、自分のもの、あるいは親しい人のものである場合のみ有効です。まったくの他人の外部ブログを表示させたい時にはやはりcronを使うしかないと思います。また、インデックステンプレートにしか有効でないためサイドバーなど読み込んで全ページで表示する、という用途にも使えません。その場合もcronを使うしかないと思います。
続きを読む »
さて、Movable TypeではMTFeedを利用して、外部ブログのRSSを読み込んで表示させることが出来ます。これを使えばレンタルブログでもWordPressでも、RSSさえ配信されていれば取り込んで表示させることが出来ます。今回はMTFeedの使い方については割愛させて頂きますが、公式のタグリファレンスに乗っていますのでそちらをご参照下さい。
ここで問題になるのはMovable Typeがスタティックページで構成されている場合です。ダイナミックパブリッシングの場合はリクエストごとに逐次ページを生成するため、MTFeedで読み込んだブログが更新されていた場合、自動的に新しい記事が読み込まれます。
スタティックページでもMTFeedで読み込んだブログが更新された時に、再構築を自動でかける方法がないかと考えていたのですが、あ、これもしかして使えるのでは? と思ったのが、人生迷い箸さんで配布されている『更新Pingを受けて自動RebuildするCGI』です。
あるBlogの更新時に、別BlogのIndexもRebuildしたい。
このBlogでも「別Blogでリンク集」にもあるとおり、別のBlogにしたリンク集の内容をMTOtherBlogプラグインを利用して表示しているのだが、そちらを更新しても、人生迷い箸側のインデックスがリビルドされるまで反映されない。
そこで、更新Pingを受けて自動的にインデックスをRebuidするCGIを作成しました。
ということで、このCGIは外部ブログからの更新Pingを受けて自動的にインデックスを再構築する、という便利なものです。設置はとても簡単です。
手順1
ダウンロードしたファイルをテキストエディタで開き17、18行目を編集する。
my($MT_DIR) = './'; # MTホームディレクトリ
my($blog_id) = ""; # リビルド対象Blog ID
17行目についてはこのCGIをMTと同じディレクトリに保存する場合は変更不要です。他のディレクトリに入れる場合はそのディレクトリからmtディレクトリを指定します。
18行目は自動で再構築したいブログのIDを記述します。
ブログのIDはMTにログインして、一覧→ブログと移動して、自動で再構築したいブログをクリック、そのページのURLの最後についている「blog_id=○」という○の部分です。
編集したら「up-rebuild.cgi」をmtディレクトリにアップロード。
手順2
あとは外部ブログから「up-rebuild.cgi」に更新pingを送る設定をします。この設定はそれぞれのブログの設定方法に従って下さい。pingを送信するURLは普通にMTをインストールしているなら http://www.example.com/mt/up-rebuild.cgi になります。example.comをご自分の環境に合わせて変更して下さい。自分の管理しているブログでない場合で親しい人だったら、「このアドレスにping送信してくれる?」とお願いすると良いと思います。
以上でスタティックページでも、MTFeedで読み込んだ外部ブログが更新された時に、再構築が自動で行われます。
« 元に戻す
mt4iで複数のブログに対応する
ずっと以前に『mt4iで複数のブログの記事を更新順に表示する』というエントリーを書きましたが、その時に「弱点はカテゴリー選択が出来ないのと、「次の記事へ」、「前の記事へ」が使えないこと、表示出来る記事数に限りがあることです。」と書きましたが、「カテゴリー選択」と「次の記事へ」、「前の記事へ」は未解決ですが、表示出来る記事数の限界を無くす方法を発見しましたのでご紹介します。
とりあえずサンプルです。
続きを読む »
手順1
mt4iをインストールして下さい。mt4iのインストールについてはここでは割愛させて頂きますが、公式のMT4iのサイトを参考にして下さい。今回は「m/」というディレクトリを作ってインストールしました。こうするとhttp://www.exnple.com/がアドレスだった場合にhttp://www.exnple.com/m/とすることで携帯用ページになるためです。
手順2
ページを分割するためのプラグインPageButeのインストールをします。SKYARCさんよりダウンロードして下さい。それにしてもこのプラグインは本当に便利です。MTのデフォルト機能として取り込まれても良いのに、と思います。
インストール後PageButeを使うブログは設定→ブログ記事から、
ブログ記事の表示数を「0日分」にすることを忘れないで下さい。
手順3
以前は「新しいブログを作成」と書きましたが、よく考えたら既存のブログにインデックステンプレートを追加するだけでも良いことに気がつきました。テンプレート名は「モバイル用ページ」などお好みでつけて下さい。 テンプレートの設定で出力ファイル名を指定します。出力ファイル名は先ほどmt4iをインストールした場所を指定して「index.html」にします。ドメイン直下にあるブログでしたら「m/index.html」です。肝心のテンプレートの内容は以下のようになります。
<html>
<head>
<title><$MTBlogName$></title>
<meta name="CHTML" HTTP-EQUIV="content-type" CONTENT="text/html; charset=utf-8">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache">
<meta http-equiv="Cache-Control" content="max-age=0">
</head>
<body>
<h1 align="center"><$MTBlogName$></font></h1>
<center>mobile ver.</center>
<hr>
<MTMultiBlog mode="context" include_blogs="1,2,3,4">
<MTPageContents count="10" navi_count="5">
<MTEntries>
<p><a href=http://www.exnple.com/m/index.cg?id=<$mt:BlogID$>&mode=individual&eid=<$MTEntryID$>"><$mt:EntryTitle$></a><br />
(<$MTEntryDate$>)[<$MTEntryCommentCount$>]
</p>
<$MTPageSeparator$>
</MTEntries>
</MTPageContents>
</MTMultiBlog>
<hr>
<ul id="page-navi">
<MTIfPageBefore>
<$MTPageBefore delim="«prev"$>
</MTIfPageBefore>
<$MTPageLists$>
<MTIfPageNext>
<$MTPageNext delim="next»"$>
</MTIfPageNext>
</ul>
<hr>
<p align="center">copyright <a href="mailto:メールアドレス"><$MTBlogName$></a></p>
</body>
</html>
これはあくまでも最小限の記述ですので、デザイン的な要素はご自分で追加して下さい。一応説明しますと、
<MTMultiBlog mode="context" include_blogs="1,2,3,4">
この数字は表示したいブログのIDです。「all」と書くことで全てのブログが表示されます。
<a href=http://www.exnple.com/m/index.cg?id=<$mt:BlogID$>&mode=individual&eid=<$MTEntryID$>">
このアドレスはmt4iを指定します。
手順4
他ブログの更新で再構築がかかるようにMultiBlogの設定をします。
「設定」から「プラグイン」に移動、
プラグイン一覧から「MultiBlog2.0」をクリックします。
次に「再構築トリガーを作成」をクリック。
「すべてのブログ」もしくはテンプレートで指定したidのブログにチェックします。
(「すべてのブログ」でない場合トリガーを複数作成する必要があります)
以上で他ブログ更新→モバイル用ページ再構築が可能になりました。
以上で今回の作業は終了です。
« 元に戻す