MOVABLE TYPEのバージョンアップに伴い、すべての記事を再構築します。
Tips
MovableType・ XOOPS・ Photoshop・ FLASH・ HTML・ JavaScript・ SEO検索エンジン対策
Xreaに移転したら、MT4.2のCAPTCHA(画像認証)の画像が出なくなってしまいました。時間がなくて4ヶ月放置してしまいましたが、ImageMagick の 「montageコマンド」が原因のエラーと分かりました。環境はMovableType4.2xです。
「設定」→「コメント」→「表示オプション」→「CAPTCHAプロバイダ」
CAPTCHAプロバイダがありません。 Image::Magickがインストールされているか、またCaptchaSourceImageBaseが正しく設定されていてmt- static/images/captcha-sourceにアクセスできるか確認してください。
JavaScript「<body onload>で複数の関数を実行させる」
関数の間を;(セミコロン)でつなぎます。
以下の例では、Movable Type のヘッダー用テンプレートに、Photoshop ImageReadyのスクリプトを追加しました。
<body (途中のタグ省略)<MTIf name="body_onload"> onload="<$MTGetVar name="body_onload"$>"</MTIf> >
に
<body (途中のタグ省略)onload="preloadImages();">
を追加したい時
<body (途中のタグ省略)onload="preloadImages();<MTIf name="body_onload"><$MTGetVar name="body_onload"$></MTIf>" >
2008年01月15日、セキュリティにかかわる不具合を修正する、ファイルの提供が始まっています。当サイトは、Movable Type 4.1へアップグレードしたので、見送ることにしましたが、アップグレードの予定がない方はぜひアップデートしましょう。
詳細はこちら→http://www.sixapart.jp/movabletype/news/2008/01/15-1826.html
セキュリティアップデート
- Movable Type 4.01a
- Movable Type 3.36
- Movable Type Enterprise 4.01a
- Movable Type Enterprise 1.54
パッチ
- Movable Type 3.21
現在までに行ったカスタマイズの一覧
- コメントをスレッド毎にまとめて表示(ver4からの新機能)
参照URL:http://www.movabletype.jp/blog/post_10.html - トップページにツリー表示(上と表示内容を変えるだけ)
- 誰でもコメントに返信できる
Simply Threadedプラグインを使用
参照URL:http://plugins.movalog.com/simply-threaded/ - タイトルの入力とコメント単位でアイコンの選択が出来る
いいプラグインないかしら・・・
- コメント投稿者が自分のコメントのみ編集したり削除出来る
- コメント投稿者が画像をアップロード
間違いやより良い方法など、お気づきの点がありましたら、ご指摘いただけるとありがたいです。
MovableType4.1β2を掲示板用にカスタマイズ中の防備録です。
間違いやより良い方法など、お気づきの点がありましたら、ご指摘いただけるとありがたいです。
コメント内のリンク先を新しいウインドウで開きます。
Movable Typeのディレクトリ/lib/MT/Util.pm
を書き換えます。835行目あたり
sub munge_comment {
my($text, $blog) = @_;
unless ($blog->allow_comment_html) {
$text = remove_html($text);
}
if ($blog->autolink_urls) {
$text =~ s!(^|\s)(https?://\S+)!$1<a href="$2">$2</a>!gs;
}
$text;
}
下から4行目
<a href="$2" target="_blank">
に変更します
コメント入力者のリンク先を新しいウインドウで開きます。
Movable Typeのディレクトリ/lib/MT/Template/ContextHandler.pm
を書き換えます。5019行目あたり
$url =~ s/>/>/g;
if ($c->id && !$args->{no_redirect} && !$args->{nofollowfy}) {
return sprintf(qq(<a title="%s" href="%s%s?__mode=red;id=%d"%s>%s</a>),
$url, $cgi_path, $comment_script, $c->id, $target, $name);
} else {
# In the case of preview, show URL directly without a redirect
return sprintf(qq(<a title="%s" href="%s"%s>%s</a>),
$url, $url, $target, $name);
}
太字の部分を変えます
$url =~ s/>/>/g;
if ($c->id && !$args->{no_redirect} && !$args->{nofollowfy}) {
return sprintf(qq(<a title="%s" href="%s%s?__mode=red;id=%d"%s target="_blank">%s</a>),
$url, $cgi_path, $comment_script, $c->id, $target, $name);
} else {
# In the case of preview, show URL directly without a redirect
return sprintf(qq(<a title="%s" href="%s"%s target="_blank">%s</a>),
$url, $url, $target, $name);
}
12月13日に Movable Type 4.1 の公開ベータテストが
始まったのを受けて、早速インストールしました。
今回もエラー出まくりで5日潰してしまいました。
最初に出た数々のエラーは
ダウンロードしたファイルが壊れていたのが原因
ダウンロードしてはアップロードを数回繰り返し、
やっと完全なファイルを入手できました。
こんなこと初めて!アクセスが集中したのかしら。
無事アップグレードの画面が出て喜んだのもつかの間、
データベースをアップグレードしています・・・
ジョブのテーブルを更新しています...* データベースをバージョン 4.0026から更新しています...
* Fieldのテーブルを更新しています...
* 権限のテーブルを更新しています...
* ブログ記事のテーブルを更新しています...
* ユーザーのテーブルを更新しています...
* オブジェクトのスコアのテーブルを更新しています...
* fileinfoのテーブルを更新しています...
* ブログ記事のテーブルを更新しています...
* ジョブのテーブルを更新しています...アップグレード中にエラーが発生しました failed to execute statement ALTER TABLE mt_ts_job DROP CONSTRAINT mt_ts_job_uniqfunc: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'CONSTRAINT mt_ts_job_uniqfunc' at line 1 at lib/MT/Upgrade.pm line 1974.
念のため、MT4.01と、MT4.01Beta versionの両方を
クリーンインストールして確認したところ
mt_ts_jobのテーブルに同じエラーがありました。
試行錯誤した結果以下の方法で解決しました
ts_job_funcidをmt_ts_job_uniqfuncに書き換える
デザインのスタイルを選択してアップグレード完了。
スタイルは、データの構造が変わり反映されないようです。
と、いうのはもう一つのサイトの話。
実はこちらのサイトはVer4.0のままです。
1月に入ってちょっと時間が出来たので再挑戦したら
Movable Type 4.1 ベータ 2 でも同じ現象がおこったのですが、
これって私だけのエラーなのかしら?
環境
- オペレーティングシステム:Linux
- Apache バージョン:1.3.37 (Unix)
- Perl バージョン:5.8.1
- PHP バージョン:4.4.7
- MySQL バージョン:4.0.26-standard
- パソコン:Power_Mac G5、OS X 10.4x
- ブラウザ:Firefox2.0.0.11,Navigator9.0.0.1(英語版),Safari3.0.4他
Movable Type 4.1 ベータ 1を リリースしてわずか10日で、Movable Type 4.1 ベータ 2 がリリースされました。
フィードバックはこまめに送っているので、Movable Type 4.1 ベータ 1 へのアップグレードに伴うトラブルが一気に解決するなら良いのですが、自分に起こったトラブルが解決していなかったなら、また何日もムダになるので、年末年始の忙しさが落ち着いてからアップデートしようと思います。
この10日間で、新機能も使っています。
4.01以前は、かなり複雑な方法で1つのページを表示していたのですが、「カスタムフィード」を作れるようになって(以前も有料版のプラグインはありました)作業が効率的になりました。
これまで利用していなかった「ウェブページ」も使い始めました。「カスタムフィード」を用いると、「Dreamweaverのテンプレート」に近いことが出来るようになったからです。
また、先ほどのエントリーのトラブルは、1つずつモジュールを変更しましたが、新機能の「グローバルテンプレート」を利用できるようになると少しは助かるかな。
こちらのサイトは正式版を待ってアップグレードの予定です。
Movable Type 4.1 ベータ 1を使っているのはこちら
Movable Type 4.1 Beta version へのバージョンアップ後、
「エントリー記事」でのみ
<$MTCategoryArchiveLink$>
タグで、URLを取得URLを取得できないことが判明しました。
「エントリー記事リスト」では今まで通りURLを取得出来ます。
アテンプレートはいじっていないので謎です。
ちなみに「カテゴリ」モジュールテンプレートはデフォルトのまま。
何か他の影響かと試行錯誤ましたが、徒に時を過ごしただけ。
幸い私のサイトはカテゴリー構造がシンプルなため、
「カテゴリ」モジュールテンプレートとパンくずリストを
../<$MTCategoryBasename$>
に置き換える応急処置を施し、すべて再構築しました。
カテゴリーをデフォルトの入れ子状態にしている方には使えませんが
私に特有の症状なんでしょうか?
バージョンアップ作業を始めてすでに10日。
何をやってんだか(;^_^A
3.34にバージョンアップしてから投稿時に以下のエラーが出るように
エラーが発生しました:
タグでエラーが発生しました: <$MTCategoryLabel$>タグが適切なコンテキスト外で使われました。
テンプレートはデフォルトのまま。
カテゴリーを選択していなかったのが原因 です。
3.3以前はカテゴリーを選択していなくても大丈夫だ ったはず・・・
-
以下修正メモです
- Movable Type 3.0以降の
- atom.xmlを生成するテンプレートの<id>タグ
- デフォルト・テンプレートのまま利用している方は必ず
- 厳密には、この1年で1度でも再構築を行い
- かつそれを読者がリーダーソフトウェアで読み込んでいた場合
修正対象
-
不具合の内容
- ブログのIDが2007年に入いると変更されてしまう等の問題が起こる可能性
- 詳しい内容を知りたい方はサイトを見てくださいね。
テンプレート一覧から「Atom」(atom.xmlを生成するテンプレート)を選択し、下記の記述を探す(デフォルトの場合)か、<id>タグを探す
<id>tag:<$MTBlogHost exclude_port="1" encode_xml="1"$>,<$MTDate format="%Y"$>:<$MTBlogRelativeURL encode_xml="1"$>/<$MTBlogID$></id>修正後
<id>tag:<$MTBlogHost exclude_port="1" encode_xml="1"$>,2006:<$MTBlogRelativeURL encode_xml="1"$>/<$MTBlogID$></id>
前回の記事から3日間、クリーンインストールで様々なトラブルがあり格闘していました。
その副産物が、テーブルのバックアップ法。
肝心の、検索結果は・・・
結果の表示ができません:タグが閉じられていません。
インストールし直しても結局同じ。
寝る時間も削った3日間は徒労に終わりました。
インストールには有効でもTagを使えるようにはならないようです。
次のバージョンに期待するとして、Tag関連のタグは全部取り除きました。
前置きが長くなっちゃいましたが、さて本題。
La Sakura ホスティングサービスの場合、「MySQLデータベース」は「データベース単位」で簡単にバックアップと復元が出来ます。
ADSLでわずか数メガバイトの環境でもダウンロードは一瞬で出来ますし、圧縮ファイルなので復元(アップロードもすぐです。
そういう訳で、今まで「phpMyAdmin」は、データの一部修正にしか使ったことがありませんでした。
ところが、今回のようなアップグレードの場合は、一部のテーブル� けを利用したいのでデータベース単位の復元は使えません。
- 「エクスポート」タブでダウンロード
- 「SQL」タブの「テーブルにテキストファイルの追加 」で復元
で簡単に出来そうなのですが、「DROP TABLE」を追加 」や「完全な INSERT 文を作成する」にチェックを入れてみたり、他のに入れてみたりハズしたり・・・様々なパターンで試みても上手く行きません(;>_<;)
何時間も経ってからサーバー内でバックアップしたら簡単と気が付きました(;^_^A
サーバー内なのでバックアップも復元も一瞬です。
- コントロールパネルのトップから「MySQLデータベース」をクリック
- 「データベース名:」にバックアップ用のデータベース名を入れて、「データベースの追� 」をクリック
- その上の、プルダウンリストから、バックアップ用のデーベース名とユーザー名を選択して「データベースアクセエス許可リストへのユーザーの追加 」をクリック
- 下の「phpMyAdmin」をクリックすると、別窓で「phpMyAdmin」が開きます
- まず、左の「データベース:」のプルダウンリストからバックアップしたいデータベースを選択
- 「構築 」のタブが開くので、バックアップしたいテーブルを左からテーブル名を選んでクリック
- 「操作」タブをクリック
- 4番目の「 テーブルを(database.table)にコピーする:」のプルダウンリストから、バックアップ用のデータベース名を選択し、右のテキストエリアにテーブル名を入力し、「実行」ボタンをクリック
簡単でしょ?
必要ならコントロールパネルの「バックアップ」でデータベース毎バックアップします。
バックアップ用データベースからの復元は、バックアップした時と同じ操作です。
インストールがおかしかったのかも知れないので最初からやり直すことに・・・
結果の表示ができません:タグが閉じられていません。
同じように閉じてみても×なのでタグに関するタグを(タグって言うからややこしい・・・)削除しました。
無事検索出来たので安心したら、今度は右に表示されるフィードの表示が出来ない!
エントリーの時に睨んだとおり、テンプレートがおかしいのではないようです。
再びMTのサイトを見ても事例なし・・・いろいろ捜して本家サイトを見るとありました!
MySQLバージョンが 4.1未満のサーバーの場合、
インストール時、mt-config.cgiに
SQLSetNames 0
を追加しないといけないとか。
La Sakura ホスティングサービスの MySQLバージョンは 4.0.26-standardだったんです。
ベータ2では解決しているそうですが、2日の時点でわかってるなら日本語サイトにも書いて欲しいですよね!
仕方ないのでもう一度インストールし直すことになりました。
ところが、データベースのバックアップに失敗・・・。
設定を変えるんだから丸ごととっていたらダメだったんですねぇ。
仕方ないのでデータベースを削除して、設定もエントリーも最初からやり直しです。
エントリーを書き出していなかったので、すでに公開されているファイルをもとに、自分でインポート用のテキストファイルを作りました。
30件ぐらい合ったので結構大変(涙)。
復活がまた4日遅れてしまいました(号泣)
これからはちゃんとインポート用のテキストファイルに書き出しておかなきゃ!
タグでエラーが発生しました: <$MTCategoryLabel$>タグが適切なコンテキスト外で使われました。
Label
を
Basename
をに変更したら無事再構築出来ました。
不思議なのはカテゴリーアーカイブなどはそのままでいいんです。
両方試してみて両方ともOK。
気になるけど、使えるんだからま、いいか。
実際に投稿してみてBasenameでは不都合な点があったので元に戻してみたら何と再構築出来ました。
テンプレートに問題があったのではなかったの?
ベータ版だから、かな。どこかおかしいんですね、きっと。
このエントリー自体が無駄な気がしますが悔しいので(笑)とっておきます。
タグと呼ぶよりキーワードの方がわかりやすい気がするけど、メタタグとの区別かな?
とりあえず、使ってみたいのでデフォルトのテンプレートのまま再構築してみました。
サイトの設定をして再構築ボタンをクリック・・・
o(^o^)o ワクワク・・・(O_O)ドキドキ・・・
テンプレート「メインページ」に解析エラーが発生しました:タグが閉じられていません。
がっくり・・・
デフォルトのテンプレートが間違い!?ということで
<$MTTagName>
を
<$MTTagName$>
に変えてみたけどこれでもダメ。
よく分からないので今回は使わないことに。
新しい物好きなのでタグを使ってみたかったんだけど残念。
バージョン3.3と3.2以前のバージョンとの相違点は、
3.2以前は、mt.cgiにアクセスしてインストール後、「ID:Melody、パスワード:Nelson」でログインするようになっていましたが、3.3ではインストール前にIDとパスワードを設定出来るようになっています。
エラーの内容は下記の通り、
インストール中にエラーが発生しました: Unknown system variable 'NAMES' at lib/MT/ObjectDriver/DBI/mysql.pm line 55.
「mysql.pm」の「NAMES」を「Names」「names」「name」・・・と変えて、そのままエラーを起こしたページをリロードすると、なぜか無事インストール出来るのですが、インストールをやり直したらダメ。
リロードした
- データーベースのバックアップはコントロールパネル(La Sakura ホスティングサービス)で一発、楽勝。
mtフォルダの中身もそのままバックアップ。 - 新しいフォルダに、必要なプラグインと設定ファイルをコピーしてアップロード
- cgiファイルは上書きなので設定不要。mt.cgiにアクセスして簡単アップグレード
- 難なく成功したので旧バージョンのみにあったフォルダやファイルを削除
と思いきや、サイトを再構築してみたら、エラーが・・・
原� は簡単。
カテゴリー・ラベルのdirify処理をしていたので、個別エントリーアーカイブのアーカイブマップとカテゴリーアーカイブのアーカイブマップを変更する必要があったのです。
<$MTCategoryLabel dirify="1"$>を<$MTCategoryBasename$>に変更
<$MTEntryTitle dirify="1"$>を<$MTEntryBasename$>に変更
3.2から、私のPower_MacG5ではサファリしか使えないのですが、相変わら×でした(T^T)
私が特殊なのか、Macは見捨てられたのか・・・ 報告したいけど英語なのでパスしてとりあえずトラックバックを送信しておきます。気が付いたらご検討を!!
今のところほとんど変わらないですが、気が付いた点があったら日本語で(笑)� �告します。
設定方法
- メイン・メニュー >ブログ名 > テンプレート > スタイルシート
「インデックス・テンプレートを再構築するときにこのテンプレートを自動的に再構築する」のチェックボックスからチェックをはずします。 - 管理ページ(上と同じページ)の、「このテンプレートにリンクするファイル」に、「スタイルシートの名前」に「styles-site.css」を入力して「保存」ボタンを押します。
これは、Ver3.1までの情報です。
Ver3.2からは、Select a Design using StyleCatcher のテーマファイルを上書きアップロードするだけで済むようになりました。
このプラグインはVer3.3からは日本語で同梱されるそうです。
※特に記載の無い場合、価格は総額表示(消費税込)
※掲載日時点での情報です。最新情報はリンク先でご確認ください。