Aug 6, 2004

mt-resave-entries.cgi: basenameを正しく設定するためのCGIスクリプト

このエントリでは、MT 2.6X利用時に作成したエントリのbasename(通常NULLになっているはず)を設定するための自作CGIスクリプト(mt-resave-entries.cgi)を紹介します。

mt-resave-entries.cgi

0.01(2004.08.06): 公開。
0.02(2004.08.09): entry_idでソートするのを忘れてました。

このスクリプトは、basenameがNULLになっているエントリをidの若いものから順番にloadしてはsaveしていくことでbasenameを再設定します。なぜこのツールが必要なのかについては、Ogawa::Buzz: Movable Type 3.0のIndividual Entry Archiveの命名方式の問題点で説明していますのでご参照ください。

エントリの作成時刻は元のままですが、更新時刻はCGIを実行したときのものに更新されます。これは仕様です。ご利用はくれぐれもノークレーム、ノーリターンでおながいします。

使い方

  1. 上記リンクよりCGIスクリプトをダウンロードして、mt-resave-entries.cgiという名前で保存します。
  2. mt.cgiなどが置かれているディレクトリにアップロードし、mt.cgiなどと同様に実行権限を与えます。
  3. ブラウザからmt-resave-entries.cgiにアクセスしてCGIを実行してください。basenameがNULLのエントリがあれば再保存して新しいbasenameを付与していきます。

Advancedな使い方

このCGIはついうっかり設定されてしまったbasenameを再設定する目的にも使えます。例えば、英語版を使っていて意味不明のbasenameを付けられてしまった場合や暫定的に付けたタイトルを元に不本意なbasenameを付けられてしまった場合などは、この方法で対処できます。ただし作業は高度になりますので腕に覚えのない方は止めておくべきです。

まず、対象のエントリのbasenameを一旦NULLに変更します。ここではMySQLを使用しているものと仮定します。以下のSQL文をコマンドラインインタフェースないしphpMyAdminを使って実行します。

UPDATE mt_entry SET entry_basename=NULL WHERE entry_id=XXX

XXXは対象のエントリのIDです。すべてのエントリを再設定したいのであれば、WHERE節を記述する必要はありません。UPDATEが無事済んだら(1秒もかからないと思います)、
次にmt-resave-entries.cgiを実行すればbasenameを再設定することができます。

About Me

My Photo

つくばで働く研究者

Total Pageviews

Amazon

Copyright 2012 Ogawa::Buzz | Powered by Blogger
Design by Web2feel | Blogger Template by NewBloggerThemes.com