MTでページ毎にclassを設定する。

MTにてページ毎に何らかのclassを割り当てて、そのページ独自のスタイルを設定する。つまりそのページにいることを何らかの形で示すことをする。いろいろと悩んだ末に、PHPと連携させて次のようにした。

もっと他にスマートな方法がありそうだけれど、取り合えず。。。

<mt:MultiBlog include_blogs="xxx">
<mt:Entries>
<mt:EntriesHeader>
<ul>
<li class="select"><a href="<$MTBlogURL$>">一覧</a></li>
</mt:EntriesHeader>
<MTSetVarBlock name="entryname"><$mt:EntryID pad="1"$>.php</MTSetVarBlock>
<?php
$entryname = '<$MTGetVar name="entryname"$>';
$class = "";
if(basename(__FILE__) == $entryname) $class = "select";
?>
<li class="<?php echo $class;?>"><a href="<mt:EntryPermalink />"><mt:EntryTitle /></a></li>
<mt:EntriesFooter></ul></mt:EntriesFooter>
</mt:Entries>
</mt:MultiBlog>

Permission denied for to get property Window.App

Movable Type version 4.21-jaで下記のようなエラーが発生する。

今まで何の問題もなく使えていたので、おかしいなと思って少し考えてみたら原因に思い当たった。

エラー: Permission denied for  to get property Window.App from .
ソースファイル: http://111.222.333.444/mtのディレクトリ/mt-static/html/editor-content.html?cs=UTF-8
行: 31

原因は、以前までは、サーバーのIPアドレスでアクセスしていたのに、今回に限りドメイン名でアクセスをしていたこと。お客さまに納品するときにもIPアドレスではあれなので、ドメインでアクセスしても問題ないように下記のように変更する。

mt-config.cgiの16行目付近
#CGIPath http://111.222.333.444/mtのディレクトリ/
CGIPath http://www.mydomain.com/mtのディレクトリ/
mt-config.cgiの24行目付近
#StaticWebPath http://111.222.333.444/mtのディレクトリ/mt-static
StaticWebPath http://www.mydomain.com/mtのディレクトリ/mt-static

ちょっと焦りました。。。

MovableTypeのアーカイブマッピング

インストール

XREAのCORESERVER.JPを使ってMovableTypeのオープンソース版をインストールしました。

以下作業環境

設定

アーカイブマッピング

ブログ記事を投稿するたびにファイル名を設定するのは面倒なので、アーカイブマッピングという機能を使い、自動的に連番が割り振られるように設定す る。(そうしなくても、postなんとかという名前は勝手に付きますが…)。手順としては簡単で、それぞれのアーカイブテンプレートの編集画面から、 アーカイブマッピングの機能を使う。既に既存のパスが設定されているのでこれを次のように変更することで、連番が振られるようになる。

 %y/%m/%e.html

困ったこと

Error: [500] <h1>Script Error</h1>

インストールが無事に終了し、スタイルでも変えようかとしたところ、デザインの適用を押した時点で下記のエラーが表示されました。

Error: [500] <h1>Script Error</h1>
<p>The script did not produce proper HTTP headers. Please see the error log to see the detail of the errors.
Depending on the server configuration, you can also run thisscript under CGIWrap debugging. Usually, either rename or linkthe script temporarily to a file which ends with <tt>.cgid</tt>extension, or add a <tt>AddHandler cgi-script-debug .cgi</tt>line to your <tt>.htaccess</tt> file.</p>

調べてみるとこちらに解決方法がありました。ありがとうございます!

CORESERVER において StyleCatcher 適用時にエラーする件

以下作業のみ

/Movabletypeのルートパス/plugins/StyleCatcher/lib/StyleCatcher/CMS.pm

上記ファイルの273行目付近にある「print STDERR “styles=$styles\n”;」をコメントアウトします。

(前)

print STDERR "styles=$styles\n";

(後)

#disable 2008/09/28
#print STDERR "styles=$styles\n";