2008年4月アーカイブ

MT4をIE6で操作すると、一部の機能が働かないようです。

その機能ですが、ブログ記事なので一覧ページでチェックボックスをチェックしての

操作です。

 

2.jpg

この画面で記事を削除しようとしても、削除されません。

私はIE6とFireFoxの最新版を使っています。FireFoxのバージョンは現時点では

2.0.0.13となっていますが、もっと前のものでもFireFoxでは正常に動作しました。

たぶんIEでもIE7なら正常に動作すると思います。

 

 

MT4でダイナミックパブリッシングに設定した場合に

キャッシュを使うように設定できます。

設定方法は公開方法として「テンプレート毎に公開オプションを設定する」を

選んで、その下のキャッシュをチェックします。

 

1.jpg  

 

このMTで使われているキャッシュですが、SmartyというPHPのライブラリです。

このSmartyはテンプレートにPHPから吐き出す動的コンテンツを組み込んで

キャッシュファイルを吐き出す仕組みで、キャッシュの有効期間を設定できます。

MT4のキャッシュの仕組みを見てみると、このSmartyが使われているのですが、

有効期間が設定されていません。

 

Smartyのキャッシュの有効期間の初期値は1日になっています。MTでも有効期間が

設定されていませんので、キャッシュの有効期間は1日になっています。

つまり、1日に一回だけファイルが更新されるのです。

でも基本的にファイルの内容が変わらないのに、キャッシュを更新する必要があるのか?

ということで、キャッシュの有効期限が切れないように変更してみました。

 

この変更は設定では出来ませんので、MTのプログラムを直接修正することに

なります。

 

変更箇所は

MT-4xxx/php/mt.php の中の

function configure_paths($blog_site_path) という関数の中の

$ctx =& $this->context(); という行があるのでその下に

$ctx->cache_lifetime = -1; 

という一行を追加します。

この-1という指定がキャッシュが切れないという指定になります。

これでファイルの内容を修正しない限りは、キャッシュが有効になります。

 

もし有効期限を2日にしたい場合には

$ctx->cache_lifetime = 60*60*24*2;

とします。この例でわかると思いますが、この値は有効期限の秒数を設定します。

 

以上ですが、私は静的ファイルで運用しているため、この修正で

なんらかの不具合が起こるかは不明です。もしかしたら、長期運用した場合には

なんらかの不具合が起こる可能性があります。ということでこの修正は自己責任で

お願いします。