にじ魂>カテゴリー

Movable Type改造

Movable Typeのカスタマイズ方法あれこれ
  1. MTで携帯電話から投稿できるようにする裏技
  2. MovableTypeでリンク集を作る
  3. ブログ独自タグ応用技
  4. コメントをRSSでお知らせ
  5. MTをスレッドフロート型掲示板風にカスタマイズ
  6. Movable Type管理画面もカスタマイズ
  7. 個別記事に月別アーカイブへのリンクを張る方法

MTで携帯電話から投稿できるようにする裏技

Movable Typeは標準では携帯電話からの投稿には対応していないが、ブログを頻繁に更新するなら、やはり携帯からも投稿できた方が便利である。
フルブラウザーなら普通に携帯からも更新できるだろうが、フルブラウザーを使わなくてもケータイから更新する方法がある。

通常だと携帯からMT管理画面にアクセスして記事を「投稿」しても、携帯だとJavaScriptガ無効なのでブログが正常に再構築されない。
だがここで「指定日投稿」機能を使えば話は別だ。
「指定日投稿」で決まった時刻に記事が投稿されれるように指定しておけば、多少の時間差は生じるが携帯からも問題なく投稿できるようになる。

もっとも指定日投降機能はデフォルトでは使えないので、あらかじめCRONなどの設定をしておく必要があるが・・・

2006年11月06日 20:19|コメント0

MovableTypeでリンク集を作る

最近,、掲示板のメニューをムーヴァブルタイプを使ってCMS化した。
MTを使用する事で今まで面倒だったリンク集の編集作業が簡単に行えるようになったんだよ!

一見すると手作りのページにしか見えないだろうが、サイトマップスレッド一覧携帯版はMovableTypeによって構築されている。

普通に手作業で編集する方が楽だったかも知れないが、CMS化する事に意義がある!
これからは個人サイトもどんどんCMSを使って作られるようになってくるんだろうな。

MTのテンプレートをこんな感じにするだけでリンク集を作れるよ↓

<MTArchiveList archive_type="Category">

<p id="p<$MTCategoryID$>">
<$MTCategoryDescription$>
</p>

<ul>
<MTEntries lastn="50">
<li><a href="<$MTEntryBody$>"><$MTEntryTitle$></a>
 <$MTEntryMore$>
</MTEntries>
</ul>

</MTArchiveList>

このタグはリンクをカテゴリー別に表示するタグだからカテゴリーに分類されてないリンクは表示されません。
カテゴリーを自在に並び替えられるようにカテゴリー名には数字を設定して「カテゴリーの説明」をカテゴリーとして表示する仕様なので、「カテゴリーの設定」をしておかないとカテゴリ名が表示されないよ。

リンクの追加は記事の投稿画面で「改行を反映しない」設定にして記事タイトルにリンク名、記事本文にURLを入力するだけでOK。
さらに追記部分にリンク先の説明文を書く事も出来るからCMSとは思えないようなリンク集の作成が可能です。

MTは相対パスを使えば別ドメインのページも書き換えられるから便利やね。
暇な人はこれでリンク集を作ると良いよ。

関連:Movable Typeで複数ブログを統合する

2006年09月01日 09:46|コメント0

ブログ独自タグ応用技

どんなブログにもトラックバックの表示/非表示を切り替える機能が付いていますが、実はこの機能はトラックバック以外にも適用できます。

<MTEntryIfAllowPings>

↑こういう感じのトラックバック用のタグで、例えば個別記事の「サイドバー」や「広告」を括ってしまえば、記事の編集画面でトラックバックをオフにするだけで特定の記事だけサイドバーや広告などを非表示にする事が可能になります。

ブログはページごとにデザインを変えられないのが欠点だったりするのですが、この裏技を使えばちょっとだけデザインに融通が利くようになる。
活用できる機会は殆どないかも知れませんが、いざって時の為に知っておいても損は無いと思います。

2006年05月14日 11:34|コメント0

コメントをRSSでお知らせ

RSSで新しく付いたコメントの内容も確認できるようにしてみました。
コメントをRSSで配信できた方が便利だと思うので、MT使ってる人の為にやり方も書いておきますね。

Movable Typeテンプレートの「RSS1.0」内にある
<MTEntries lastn="15">
↑このタグのに・・・

<MTEntries recently_commented_on="1" sort_order="ascend">
<MTComments lastn="1">

<item rdf:about="<$MTEntryPermalink encode_xml="1"$>">
<title><$MTCommentAuthorLink default_name="匿名さん" spam_protect="1"$> が「<$MTEntryTitle encode_xml="1"$>」にコメントしました</title>
<link><$MTEntryPermalink encode_xml="1"$></link>
<description><![CDATA[<p>「<$MTEntryTitle encode_xml="1"$>」へのコメント</p><p>名前: <$MTCommentAuthorLink default_name="匿名さん" spam_protect="1"$><MTCommentAuthorIdentity><br />コメント:<br /><p><$MTCommentBody$>]]></description>
<dc:subject><$MTEntryCategory encode_xml="1"$></dc:subject>
<dc:creator><$MTCommentAuthorLink default_name="匿名さん" spam_protect="1"$><MTCommentAuthorIdentity></dc:creator>
<dc:date><$MTCommentDate format="%Y-%m-%dT%H:%M:%S" language="en"$><$MTBlogTimezone$></dc:date>
</item>

</MTComments>
</MTEntries>

↑これをコピペすればOK

なおムーヴァブルタイプでは自動的にRSS2,0やATOMなど四種類のRSSが自動生成されるますが、他のヴァージョンのRSSでもコメント配信したい場合は、このRSS1.0用のテンプレートを参考にして各バージョンに合わせてテンプレートを書き換えてください☆

2006年02月16日 10:37|コメント0

MTをスレッドフロート型掲示板風にカスタマイズ

ムーヴァブルタイプをカスタマイズして、この最新のコメントのページではスレッドフロート型掲示板のようにコメントが付いた記事を一番上に表示するようにしてあるのですが、今回はそのカスタマイズ方法を教えちゃいます。

やり方はいたって簡単です。基本的にサイドバーなどで新着コメントにリンクする為の特殊タグにリンクだけでなく本文その他全てを表示するようにしただけですから。
この方法だと記事に最大でコメントをいくつ表示させるかまで設定できるのでコメントばが大量に付いたとしてもページが長くなりすぎないので安心です。

まずはMTの「テンプレート」編集ページで「新しいインデックス・テンプレートを作る」で適当にテンプレートの名前を付けて「テンプレートの中身」に以下の内容を貼り付けてください。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=<$MTPublishCharset$>" /> <title><$MTBlogName encode_html="1"$></title> <link rel="stylesheet" href="<$MTBlogURL$>styles-site.css" type="text/css" /> </head> <body> <div id="container"> <div id="banner"> <h1><a href="<$MTBlogURL$>" accesskey="1"><$MTBlogName encode_html="1"$></a></h1> <h2><$MTBlogDescription$></h2> </div>

<div id="center">
<div class="content">

<h3 id="e">タイトル一覧</h3>
<ol>
<MTEntries recently_commented_on="7" sort_order="ascend">
<li><a href="#a<$MTEntryID pad="1"$>"><$MTEntryTitle$></a> (<MTComments lastn="1"><$MTCommentAuthorLink default_name="無記名" spam_protect="1"$></MTComments>)</li>
</MTEntries>
</ol>

<MTEntries recently_commented_on="7" sort_order="ascend">
<h3 id="a<$MTEntryID pad="1"$>"><$MTEntryTitle$></h3>

<$MTEntryBody$>
<MTEntryIfExtended>
<p class="extended"><a href="<$MTEntryPermalink$>#more">続きを読む "<$MTEntryTitle$>"</a></p>
</MTEntryIfExtended>

<p class="posted">投稿者 <$MTEntryAuthor$> : <$MTEntryDate format="%Y年%m月%d日"$> <$MTEntryDate format="%X"$></p>
<MTComments lastn="10">
<p class="posted"><$MTCommentAuthorLink default_name="匿名さん" spam_protect="1"$> <MTCommentAuthorIdentity> : <$MTCommentDate$></p>
<$MTCommentBody$>
</MTComments>
<MTEntryIfCommentsOpen>
<MTIfCommentsAllowed>

<a href="<$MTEntryPermalink valid_html="yes"$>">全部読む (<$MTEntryCommentCount$>)</a>
<MTEntryIfAllowPings> <a href="<$MTEntryPermalink archive_type="Individual"$>#trackbacks">トラックバック (<$MTEntryTrackbackCount$>)</a></MTEntryIfAllowPings>
<MTParentCategory> <a href="<$MTEntryLink archive_type="Category"$>"><$MTCategoryLabel$></a></MTParentCategory>
 <a href="#e">タイトル一覧▲</a>

<form method="post" action="<$MTCGIPath$><$MTCommentScript$>">
<input type="hidden" name="static" value="1" /><input type="hidden" name="entry_id" value="<$MTEntryID$>" />
<input type="submit" name="post" value="書き込む" />名前:<input name="author" />URL:<input name="url" /><br />
<textarea name="text" rows="5" cols="60" wrap="OFF"></textarea>
</form>

</MTIfCommentsAllowed>
</MTEntryIfCommentsOpen>
</MTEntries>
</div>
</div>
<div id="right">
<div class="sidebar">
<h2>最近のエントリー</h2>
<ul>
<MTEntries lastn="10">
<li><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></li>
</MTEntries>
</ul>
<ul>
<h2>アーカイブ</h2>
<MTArchiveList archive_type="Monthly">
<li><a href="<$MTArchiveLink$>"><$MTArchiveTitle$></a></li>
</MTArchiveList>
</ul>
<div id="powered">
Powered by <a href="">0gx.org</a><br />
</div>
</div>
</div>
<div style="clear: both;"> </div>
</div>
</body>
</html>

これを保存して再構築するだけでエントリーがフロートするページが出来上がっている筈です。
デフォルトではコメントが付いた最新7件の記事に最大10個のコメント載せる」設定になってますが
<MTEntries recently_commented_on="5" sort_order="ascend">
これを二つと
<MTComments lastn="10">
上の部分の数字を書き換えれば好みに合わせて変更できます。

2005年12月23日 11:23|コメント0

Movable Type管理画面もカスタマイズ

せっかくMT使ってるのだから、管理画面も自分好みに改造したいな〜ってずっと思ってたんだけど、どこを弄れば良いのか分からなかったので暫く放置していたんだけど、やっと管理画面のカスタマイズの仕方が分かったよ。

俺はとにかく管理画面の無駄なナビゲーション・リンクを削除したかったのだが、そういうナビゲーション部分をカスタマイズするには「tmpl」→「cms」フォルダに入っている「header.tmpl」の内容を書き換えれば良かったんだね。

思い切ってサイドバーごと削除したら凄くスッキリした。
サイドバーの要らないリンクだけ削る事もできたが、ちと厄介だったからね。
頻繁に使うメニューは全てブックマークしておけばサイドバーなんて必要ない。この方が軽くて快適だよ。
あとヘッダー部分もごっそりカットして可能な限り軽くした。

edit_entry.tmpl」も改造しておくと便利。
エントリーの編集画面は「この画面の表示をカスタマイズする」のリンクからある程度、自分の好みに合わせる事ができるが、それだけでは不十分だ。
「通知」機能のフォームとか、「トラバの管理」部分とかはまったく使ってなかったので俺は削除したよ。
管理画面のHTMLとtmplファイルの中のclassやid属性を見比べればどの部分を消せば良いのか分かるからね。

それと、CSSでエントリープレビューのデザインを変更するか、「preview_entry.tmpl」の<TMPL_INCLUDE NAME="header.tmpl">をブログのヘッダー部分と入れ替えてブログのCSSを適用させてプレビュー画面を実際のエントリーとまったく同じデザインにしておくと、記事を書いた後に実際にHTMLでどう表示されてるかを一々チェックしなくて済むので効率が上がるぞ。

2005年10月14日 11:48|コメント0

個別記事に月別アーカイブへのリンクを張る方法

Movable Typeをカスタマイズして個別エントリーの日付部分に月別アーカイブへのリンクを張るようにしてみました!
個別記事のページはリンクが少なくてナビゲーション的に不十分でしたからね。
前々から月別アーカイブにリンクを張って内部リンクを増やしたいと考えていたんだけど、月別アーカイブにリンクする為の独自タグは用意されていないようなので諦めかけていたが、日付表示用の独自タグをURLに転用したら月別アーカイブへリンクできました!
この改造法は中々イケてますよ。便利なので超オススメです!

やり方は個別エントリーの日付表示部分の独自タグを
<a href="<$MTEntryDate format="%Y_%m"$>.html"><$MTEntryDate format="%Y年%m月"$></a>
 <$MTEntryDate format="%d日"$>
このようにするだけ。
ページ内リンクで月別アーカイブのエントリー表示部分へ飛ばしたいなら
<a href="<$MTEntryDate format="%Y_%m"$>.html#a<$MTEntryID pad="1"$>"> <$MTEntryDate format="%Y年%m月%d日"$></a>
こうすればOK。
アーカイブへの相対パスはそれぞれの環境に合わせて変更してください。

なお、これは以前のidを使った形式でのリンクをに合わせてあるので、MT3.0以上で新しい形式のリンクを用いている人は日付タグのフォーマットを調べて独自タグを書き換えてね。
不具合などで上手く動かない人がいたらコメント欄で質問して下さい。責任を持ってお答えします∠(`・ω・´)

【訂正】
月別アーカイブに簡単にリンクするための独自タグありました。
こんなややこしい事しなくても<$MTEntryPermalink archive_type="Monthly" valid_html="1">でリンクすればオッケーだったようです。
一体今まで何をやっていたんだ俺は・・・orz

2005年08月07日 11:05|コメント2

隣接記事

カテゴリー