Movable Typeをハックする。MTHacks

2007年5月19日

MovableTypeで再構築できないときの対処法

MovebleTypeで再構築に時間がかかり、Script Errorなどのエラーが出て再構築できない場合の対処法です。

いろいろと調べたところ、2つの方法があります。

1.mt-config.cgiの値を変更する。

mt-config.cgi
【変更前】# EntriesPerRebuild 40
【変更後】EntriesPerRebuild 10

これは一回で再構築するファイル数を設定しているようです。少なくすると軽くなるというわけですね。

■参考記事
» Movable Type で再構築エラーになる場合の原因と対処

2.トラックバック自動検知の設定をオフにする

MovebleTypeの設定で、「外部のリンクに対するトラックバック自動検知を有効にする」が有効になっている場合、リンクがあるとそこにトラックバックしようとします。10以上リンクがある場合、サーバのスペックにもよりますが、すべてにトラックバックしようとし、そのせいで再構築に時間がかかり、Script Errorで再構築に失敗することがあるようです。

対策としては、「外部のリンクに対するトラックバック自動検知を有効にする」のチェックをはずします。

2006年11月25日

RSSフィード(atom.xml,index.xml)に改行を入れる方法

自分のブログのRSSフィードを読んだことはあるだろうか?
RSSを読んでもらうことを期待するなら、是非一度チェックしてみてほしい。どんな風に読まれているか、画像の表示のされ方は?など、チェックすべき点がある。

今回紹介するのは、RSSフィードに改行を入れる方法だ。

困ったことに、MovableTypeのデフォルトでは、フィードに改行が入っていない。RSSリーダーで読んだ時に、改行がないまま文字がずらっと並んでしまうのだ。

設定方法は下記の通り。

対象ファイル:atom.xml , index.xml
【変更前】
convert_breaks="0"
【変更後】
convert_breaks="1"

0と1を変えるだけなのだが、デフォルトで改行の設定にしておいてほしいものだ。
改行されていないままだと、読みにくくてしょうがない。

自分のブログがどう読まれているか、ユーザを意識してエントリーを書いていきたいですね。

2006年10月24日

MovableTypeのショートカット

保存、再構築のショートカットがあります。

保存 :Ctrl + S
再構築:Ctrl + R

作業が結構スピードアップしますよ。

2006年10月20日

MovableTypeで特定のファイルの書き込み権限(パーミッション)を変更する

MovableTypeでMovableTypeで特定のファイルだけ再構築したくない、という場合、
mt-config.cgiに一行追加することで、特定の書き込み権限を変更でき、再構築時に再構築不可のアラートが出せるようになります。

NoTempFiles 1

デフォルトではファイルのパーミッションの書き込み権限をなしにしても、強制的に書き込みされてしまうんですね。

ただ、上記の設定をしても、書き込み権限をなしにした特定のファイルをスルーして、全体を再構築、というのはできないようです。
あくまでも再構築したくない特定ファイルのリマインドとしてアラートを出す、という対策です。

下記、sixapartからの返答:

お問い合わせいただきました、Movable Type で出力されたファイルに対して、直接パーミッションを変更し、今後、再構築を行っても変更したファイルのパーミッションの値が変更されないようにする方法についてですが、環境設定ファイル「mt-config.cgi」内に、環境変数「NoTempFiles」を追記し、有効にしていただくことで、実現可能です。ただし、「NoTempFiles」を有効にした場合、無効の状態と比べて、再構築時にかかる負荷が大きくなるため、処理速度が低下する可能性があります。ご注意ください。 「NoTempFiles」を有効にする場合は、「mt-config.cgi」内に、以下の行を追記してください。

NoTempFiles 1

以下の Movable Type マニュアルにも、「NoTempFiles」について記載があります。ご参照ください。
また、Movable Type で生成されるファイルのパーミッションについても、必要であれば、以下のMovable Type マニュアルの各環境変数を「mt-config.cgi」内に追記して有効にすることで変更が可能です。

■ Movable Type 3.3 マニュアル: 環境変数 >> システム
http://www.sixapart.jp/movabletype/manual/3.3/d_configuration_directives/#index-system

ただし、ファイルの所有者に対して、書き込み権限が与えられていない場合は、再構築時にエラーが発生する場合があります。その場合は、ファイルの所有者に書き込み権限を付与してください。

また、Movable Type の標準機能として、再構築時にファイルを出力する際、特定のファイルのみパーミッションを変更して出力するといった機能には対応しておりません。ご了承ください。


2006年10月19日

MovableTypeサーバ移行時のインポート・エクスポート方法

MovableTypeサーバ移行時のインポート・エクスポートする際、ローカルのファイルを選択できるのですが、容量が重すぎたりしてうまくインポートできない場合があります。

そんな時はCGI-PATH/import/に書き出したテキストファイルをアップロード
読み込みを行うとうまくいきますね。

2006年10月11日

トラックバックをコピーしやすくする方法

下記のように、<$MTEntryTrackbackLink$>をinput typeで囲み、javascriptのonclickでonClick="this.select();と指定するとできあがりです。

【変更前】
<MTIfPingsAccepted><p>このエントリーのトラックバックURL: <br /><$MTEntryTrackbackLink$></p>

【変更後】
<MTIfPingsAccepted><p>このエントリーのトラックバックURL: <br /><input type="text" size="70" value="<$MTEntryTrackbackLink$>" onClick="this.select();" /></p>

ちょっとした小技ですが、ユーザビリティを考えるとformのlabelタグくらい重要ではないかと思います。

2006年10月 9日

ブログ名を変更する方法

システムメニューからブログ名を変更できますね。

ブログのディレクトリ名も変更可能です。

システムメニューからブログ名を変更すると、変更後のディレクトリ名で配下のファイルが全てコピーされます。

サーバからは変更前のディクトリごと削除すればOKですね。

月別アーカイブをドロップダウンに変更

モジュールでアーカイブのドロップダウンが提供されていますね。

サイドバーに設置しました。

<ソース変更前>
----------------------------------------------------------------------------------------------------------------
<MTIfArchiveTypeEnabled archive_type="Monthly">
<div class="module-archives module">
<h2 class="module-header"><a href="<$MTBlogURL$>archives.html">アーカイブ</a></h2>
<div class="module-content">
<MTArchiveList archive_type="Monthly">
<MTArchiveListHeader><ul class="module-list"></MTArchiveListHeader>
<li class="module-list-item"><a href="<$MTArchiveLink$>"><$MTArchiveTitle$></a></li>
<MTArchiveListFooter></ul></MTArchiveListFooter>
</MTArchiveList>
</div>
</div>
</MTIfArchiveTypeEnabled>
----------------------------------------------------------------------------------------------------------------

<ソース変更後>
----------------------------------------------------------------------------------------------------------------

<MTIfArchiveTypeEnabled archive_type="Monthly">
<div class="module-archives module" id="monthly-archives">
<h2 class="module-header"><a href="<$MTBlogURL$>weblog/">アーカイブ</a></h2>
<div class="module-content">
<select onchange="nav(this)">
<option>月を選択</option>
<MTArchiveList archive_type="Monthly">
<option value="<$MTArchiveLink$>"><$MTArchiveTitle$></option>
</MTArchiveList>
</select>
</div>
</div>
</MTIfArchiveTypeEnabled>


<script type="text/javascript" charset="utf-8">
function nav(sel) {
if (sel.selectedIndex == -1) return;
var opt = sel.options[sel.selectedIndex];
if (opt && opt.value)
location.href = opt.value;
}
</script>


----------------------------------------------------------------------------------------------------------------

サイドバーをSSIにする方法

MTHacksでは、運用を楽にするため、サイドバー、ヘッダ部分をSSIにしています。

.htaccessの内容は下記。
----------------------------------------------------
Options +Includes
AddHandler server-parsed .html
<Files *.html>
XBitHack full
</Files>
----------------------------------------------------

.htaccessをドメインルートディクトリにアップロードします。
このブログの場合はhttp://blog.creamu.com/.htaccess
ですね、

.htaccessは不可視ファイルなので、OS上でもFTPクライアント上でも見えません。
そのため、ローカルではtest.htaccessなど別名にしておいて、FTPでアップロード後に.htaccessにリネームするのがいいと思います。
※FTPクライアントの設定をすれば.htaccessを可視にできます。

.htaccessの設置が終わったら、テンプレートの下記beta部分をbeta.htmlと外部ファイル化し、SSIの一行に置き換えます。

<変更前>
----------------------------------------------------
<div id="beta">
**************
</div>
----------------------------------------------------

<変更後>
----------------------------------------------------
<!--#include virtual="/beta.html" -->
----------------------------------------------------

MT3.2、MT3.3ではTagwire.plは使えません。

MT3.2、MT3.3ではTagwire.plは使えません。

しかもTagwire.plがあると、MT3.2から標準でついてくるタグクラウドモジュールが機能しません。

そのため、CGI-PATH/plugins/Tagwire.plを削除する必要があります。

過去の記事