BlogTop > MovableType > mt5 Archive

mt5 Archive

1 of 3

Next Page >

すべてのページ

メモ:Movable Type のシステムディレクトリ名を固定せずに使っている場合のmtview.phpについて

  • Posted by: maRk
  • mt5
  • はてなブックマークに追加

ダイナミックパブリッシング利用で、Movable Type のシステムディレクトリ名がかわる場合の影響と修正に関してのメモです

ちょっと意味不明なのですが、おもにローカル環境で動作確認している場合で、MTのヴァージョンごとでディレクトリ名変えたりしながら使っているといった状況下での話で、通常の利用ではまずおこらないような話です。

よくある手順でアップデートを済ませますが、このときに新しいヴァージョンのほうはディレクトリ名を前のものと異なる状態にしてアップデートを実行します。

データベースは以前のヴァージョンのデータベースを複製し、データベース名変更にしてアクセスしているとします。

その状態でそのままダイナミックパブリッシング(以下単に、「ダイナミック」と表記)に設定してある、 サイト/ブログ を表示してみます。

すると以下のようなことがおこっています。

  • 新しい記事を作成、公開してもページが見つからないというエラーがでる
  • 過去記事の編集、公開をおこなっても更新されていない
  • プラグイン設定の変更をおこなったとき、プラグインデータの取得がうまくおこなわれていない

で、これらの原因を探ってみたところ、mtview.php のファイルの内容が原因ということがわかりました。

対処方法

公式なやり方(cf. Movable Type 5.x の変更点、注意事項、および既知の問題 : Movable Type 5 ドキュメント アップグレードの注意点)では、一旦、ダイナミック用に生成されていた .htaccess ファイルと mtview.php を削除したうえで、ダイナミックを解除(スタティックにもどす)、再度ダイナミックに設定といった手順です。

今回はローカル環境想定ということで、直接書き換えの方法を示します。

mtview.php の場所ですが、ほとんどの場合、ダイナミック設定されてるブログ(サイト)のトップのディレクトリにあるはずです。

あけてみますと、以下のようなコードがみられます。

include('/path/to/Movable Type システムディレクトリ名/php/mt.php');
$mt = MT::get_instance(ブログID, '/path/to/Movable Type システムディレクトリ名/mt-config.cgi');$mt->view();

件の不具合では、Movable Type システムディレクトリ名 が以前のものとなっています。

そこを新しいほうのディレクトリに書き換えすればOKです。

簡単にまとめますと、mtview.php はデータベースと関わるので注意が必要です。

MTCanonicalLink タグ出力でスラッシュなしに

  • Posted by: maRk
  • mt5
  • はてなブックマークに追加

Movable Type 5.2.4 以降導入されたテンプレートタグ MTCanonicalLink の出力でスラッシュがつかないようにしたい場合の方法についてです

標準で MTCanonicalLink は、<link ref="canonical" href="http://example.com/canonical.html" /> のように出力されます。

HTML5 採用のテンプレートをスラッシュなしのほうで統一した、といったような理由であえてスラッシュなしに出力したい時は regex_replace などをつかいます。

  • <mt:CanonicalLink regex_replace="/ \/>$/",">">

※ なお、置換せずに、デフォルトの出力のままでXHTML、HTML5どちらでも使えます。

また同時に導入されている、MTCanonicalURL を使うことで、link 要素から作成することもできます。

  • <link rel="canonical" href="<$mt:CanonicalURL$>">

XHTML 用

  • <link rel="canonical" href="<$mt:CanonicalURL$>" />

タグリファレンスによりますと、current_mapping というモディファイアを持っていて、アーカイブマッピングで複数ファイル出力している場合に優先するマッピングを対象にできます。

Movable Type:メモ:Lorem ipsum について

  • Posted by: maRk
  • mt5
  • はてなブックマークに追加

Movable Type の translation に関してのほとんど役に立たない小ネタです

わかっている人はこのページそっと閉じてしまって構いません。。

答えを言ってしまう前に前置きみたいなことをやります(タイトルの単語を訳すとネタがバレバレですが)。

Movable Type はローカライズのために単語やセンテンスがあらかじめ登録されているのであります。

このなかで以下を見つけましたのでためしてみたいと思います。

  • 'Lorem ipsum'
  • 'LOREM_IPSUM_TEXT'
  • 'LORE_IPSUM_TEXT_MORE'

Test とか適当なフォルダ名のフォルダを作成し、その下に以下のような config.yaml ファイルを作成して Movable Type のプラグインフォルダにつっこんでみます。(確認したときのヴァージョンは MTOS 5.5.2です)

id: 'Test plugin'
name: 'Test plugin'
description: <__trans phrase="LORE_IPSUM_TEXT_MORE">
version: 0.1

これで、Movable Type の使用言語を日本語の状態にして(意外と重要)、プラグイン一覧で詳細にどう翻訳されているでしょうか。

ちなみに答えは、以下などで前掲のリストのワードを検索すれば確認できます。

https://github.com/openmelody/melody/blob/master/lib/MT/L10N/ja.pm

メモ:MT:ウェブページむけの Next|Previous URL カスタムフィールド

Movable Typeのウェブページ用カスタムフィールドで次のページURL を示すフィールドをつくってみました。

背景など

ウェブページの link 要素のrel=next および、rel=prev に入れるURLをあつかうとき、 や がありますが、これはページの作成順序を考慮していないと、「本当はあのページを次のページとして指定したかったのに」なんてことがおこるかどうかは定かでありませんけれども、そんな環境を想定してみました。

細かな前提とかおいておき、さっそく作成例として示しておきます。

ざっと NextURL のほうだけですが以下のようなものです。previous は文字列変更するだけですので省略。

名前のところは、管理画面の「表示オプション」などが使用するので、わかりやすくて簡潔な名前のほうがいいでしょう(ここの例は思いつきでつけただけですので)。ベースネームは他のと重ならないもの、テンプレートタグも既存のものと違うもので、CFなどの接頭辞をつけてテンプレートタグとわけておくのがいいです。

システムオブジェクト

      ウェブページ

名前
      nextURL

説明
       次のページ

種類
      テキスト

必須?
      なし

規定値
      なし

ベースネーム
   cf_pagenexturl

テンプレートタグ

   CFPageNextURL

テンプレートの例

<mt:If tag="CFPageNextURL">
nextURL: <mt:CFPageNextURL>
</mt:If>

使用する場合は、 ウェブページのそれぞれのページ編集のところで、表示オプションで作成したフィールド名にチェックを入れてフィールド表示させておきます。

あとは、URLを入力すれば、MTCFPageNextURLは入力したURLに展開されます。

以下は、簡単な link要素の next prev の設置です。

head 要素内に以下を追加します。

<mt:If tag="CFPageNextURL"><link rel="next" href="<mt:CFPageNextURL>"></mt:If>
<mt:If tag="CFPagePreviousURL"><link rel="prev" href="<mt:CFPagePreviousURL>"></mt:If>

title 属性を入れたい場合は、 :title=XXX とか独自に記法を決めておいて、URLとtitle部分を regex_replace で取り出すか、新たにタイトル用のフィールドも作るかになるとおもいます。

5.2.3へアップグレードした時の設定とトラブルシューティングまとめ

  • Posted by: maRk
  • mt5 | myown
  • はてなブックマークに追加

Movable Type を4.2x系より、5.2.3 にアップグレードしたときにおこったトラブルの解決と各設置をまとめたものです

設定について

Movable Type(以下 MT) 4.x 系から 5.x 系に移行した際の確認事項からまとめていきます。

*作業内容をことごとく詳細にメモをとっていたわけではなく、思いあたったものだけを記載してますので、一部抜け落ちているかもしれません。

アップグレードが完了してもすぐに全体を再構築しないこと。再構築をかけないかぎりは静的なページの表示に変化はありません(当然のことながらダイナミックで動いている部分には変更が反映されることがあります。

従ってテンプレートの確認の優先順位としてはスタティックなページより、ダイナミックなページのテンプレートのほうを先におこなうほうがよいといえます)。

1. サイトの構成とパスはあっているか?

MT4.xからMT5.x にしたときにブログが存在する場合、自動でサイトが判別されて、その配下にブログがおさめられるという仕様になっています(あとからでも移動なども可能です)。

以下確認事項を列挙します

  • ユーザーダッシュボードを開いたときに、下のほうのウィジェットに「ウェブサイト」のタブにあるURLがドメインのトップなどになっているか
  • ブログのタブに、MT4.x で作成したブログ群が並んでいるか
  • ウェブサイト管理ページの設定>全般のところのパスに正確な値が入っているか
  • ウェブサイト管理ページの設定でウェブサイトのURLはあっているか(www. ありかなしかなど MTWebSiteURLに反映されるので)
  • ブログ管理ページの設定>全般のところのパスおよび公開設定は旧環境と同じ値が入っているか
  • 各管理ページのタイムゾーンの設定はあっているか

変更をおこなったら、保存をクリックします。反映には再構築ですが、ほかの確認がすんでから全体の再構築時でかまわないとおもいます。

2. プラグインが認識されていないものはないか?

MT4.x で使えていたものが、MT.5x で使用できない、もしくはシステムのプラグイン一覧のところに警告表示のあるものはないか、などをチェックしておきます。

動作しないか、または動作に不安があるプラグインについては、アップグレード後の確認の段階ではシステムのプラグインリストより個別にプラグインの使用を停止するか削除しておくほうがいいでしょう。

MT5.x系でのプラグイン動作の確認情報

  1. 小粋空間: Movable Type プラグイン一覧(MT5対応)
  2. 拙作プラグインのMovable Type 5.2対応状況 - The blog of H.Fujimoto
  3. MT5・プラグインの皆さん動いてますか - WolaWola (続編は前掲の『小粋空間』のページ上に全てリンクされています)

3. テンプレートの状態

  • アップグレード後にテンプレートが文字化けしていたりしないか
  • ダイナミックパブリッシングに設定しているテンプレートは正常に動作しているか
  • グローバルテンプレートなど初期化はおこなったか

トラブルに関して

  • a. 5.2.3 設置完了後に YAML のエラーで管理画面に入れない
  • b. サイトのテンプレートで文字化け
  • c. ダイナミックパブリッシングにしているテンプレートが404 で返る
  • d. PubSubHubbub プラグインで ping が動作していない

a. ですが、 YAML モジュールがMT5が YAML::Syck を標準にしていることで、書式において厳密になっているのが主な原因といえます。

対処方法は、問題のおこるプラグインを削除してしまう、あるいは、YAML::Syckに怒られないように.yamlファイルを修正するか、 YAML::Tiny を使うように、mt-config.cgi に書き込むなどです。

インストール時は、修正とかすると時間がかかってしまうので、一時的にmt-config.cgi に YAMLModule YAML::Tiny を書き加えました。

インストールが完了して一通り確認作業が終わった時点で、問題のおこっているプラグインの.yaml ファイルの修正にとりかかりました。というのも、標準にYAML::Syck が採用されたのはおそらくパフォーマンスに関係してるとおもわれ(確かベンチとったかたが記事をあげていたような)、面倒でも YAML::Syck の環境にしたかったので。ローカルのほうのMTOSもYAML::Syck になってますし。

エラーをおこしているプラグインの具体的な名前をあげると、 CommunityActionStreams とか Motion 。 CommunityActionStreams はGitHub 上のものに差し替えると大丈夫そうです。

.yaml の修正ですが、[_1] <a href= ... > のようなコードは、シングルクォーテーションを使って囲うことでエラーは回避できます。 あと、インデントにタブが使われているものもエラーですので、それらは半角スペースに、それとインデントの位置があっているかもチェックしておきます。

まあ、どちらもほとんど使わないようになってきたので削除してしまったほうが早かったかもしれません。

b. の文字化けについて

これは、Movable Type 5.x の変更点、注意事項、および既知の問題 : Movable Type 5 ドキュメント に書かれている、「データベースがMySQL 5.x で、UTF-8を利用している場合は、mt-config.cgiに"SQLSetNames 0"を指定してください。」の文面どおりにおこなったらなりました。

---- 同じような現象は、Google検索をかけてみるといくつかみられました。サーバーの環境などにもよるものらしいですが、当方の環境も当りだったということのようです。

具体的には、テンプレート名やサイトのタイトルなど複数の箇所で文字化けがおこります。環境変数を削除すれば、ほとんど解消します。しかしながら、これまでにデータベースになく新たにセットされたテーマで文字化けはそのままでした。

そこで、グローバルテンプレートについてはテンプレートの初期化を、サイトのテーマについては、再適用で文字化けは解消しました。

d. PubSubHubbub ですが、GitHub 上の https://github.com/miyagawa/MT-PubSubHubbub 最新版に差し替えて使用しています。

ところが、そのままで使うと、ping が送信されないので当然リーダーのサービスにも反映されていませんでした。

以前のヴァージョンもそういえば、テンプレートが標準でないときに動作してなかったことを思い出して修正をおこないました。

Plugin.pm の11行は、

  • if ($tmpl && $tmpl->identifier eq 'feed_recent')

となっています。このブログだと、template_identifier がNULL のため、以下に修正(改変?)しました。

  •   if ($tmpl && $tmpl->name eq 'Atom')$tmple->name

テンプレート名が 'Atom'のものを対象とする

(注: これは自分が修正したときのものです。1回既存のテンプレートをテーマとしてエクスポートし、既存のフィードのテンプレートはテーマの configuration で identifier => 'feed_recent' にして、最適用させるかidentifier にfeed_recent 登録済なテーマに入れ替えるのが望ましい方法です)

いまのところ以上です。なにか気づいたことがあったら追記します。

メモ:Movable Type 4 系から 5.2.3 へアップグレード

  • Posted by: maRk
  • mt5
  • はてなブックマークに追加

Movable Type 4から5系にアップグレードしましたのでそのおぼえ書きです

手順を追っていきますが、特にやらなくてもよさそうなものもありますので、このとおりにすれば間違いなし、という意味ではないです。2013年 2月 版ということで。将来的には手順がかわるかもしれません。

バックアップ

不具合がおこったときの備えのためのバックアップです。

ここのサイトではアクションストリームプラグインを入れてますので、そのデータをプロフィールのページから過去のログをばんばん削除していきます。これで少しはダンプファイルのサイズが少なくなるかと。

そのあと、サーバの管理ページ経由(理由は管理画面からデータベースの保存機能があるため。定期のバックアップのときはいつも phpMyAdmin で ダンプファイル作成してローカルに落とすのと両方でやっています)で phpMyAdmin に入ります。オーバーヘッドのあるテーブルをチェックして最適化をおこないます。そのあとエクスポートタブからダンプファイル作成をしてダウンロードします。

次に、Movable Type (4.2)のバックアップ機能から、バックアップをとります。ここではこのブログのみでバックアップをしてます 。

つぎにブログのエクスポート機能で、記事データをエクスポートします(これを使うことになるのは非常事態のときくらいかも)。

このあとに、ブログの公開設定のところを開き、公開設定の一連の項目をスティッキーズなどにメモしておきます

そして、ブログの静的ファイルのバックアップも試みました。ターミナルから ssh で入って、アカウントのディレクトリ(ドキュメントルートの上の階層)にバックアップ用ディレクトリを作りそこにコピーしていきます。

個人無償版のダウンロード

SixApart のサイトにいって、最新版の Movable Type をダウンロードします。

利用許諾に目をとおして、同意できたならば、送信フォームに 確実に自分のところに届くメールアドレスと、利用目的を選択して送信します。

フォームに入力したメールアドレスに、ダウンロードページのURLとログインキーが記載されたメールが届きます。

あとはページを開いて指示通りすすめばダウンロードされます。

ファイルのアップロードとインストール

ダウンロードしたファイルを FTP クライアントを使って、サーバーにアップロードします。今回はドキュメントルート上におきます。その後に ターミナルから展開、もとの MTディレクトリより必要なファイル群をコピーします。

その辺りは、Movable Type 5 を最新のバージョンへアップグレード : Movable Type 5 ドキュメント2. 新しいディレクトリでのアップグレード に記載されています。

*この部分は自分用なので、読み飛ばしてかまいません。

  • XSearch 用のファイル一式をコピー、所定の場所に収める
  • .htaccess ファイルのローカル用のバックアップとコピー
  • mt-config.cgi に DefaultLanguage ja を入力する
  • コピーされた plugins ディレクトリで必要のなくなったプラグインを削除

必要な作業が終わったら、ブラウザからMTにアクセスします。このときはFirefox でなく Safari のほうを使ってやりました。 いきなり YAML でエラーがでたので、とりあえずは、mt-config.cgi に環境変数 YAMLModule YAML::Tiny をセットして回避しました(これはインストール作業が完了した後でエラーのおこっているプラグインの.yamlファイルに修正をおこない、現在は YAML::Syck のほうで動作させています)。

アップグレードウィザードが走り、あとはデータベースの更新などが行なわれてダッシュボードに入ることだできました。

Movable Type 5.2.3 インストールまでは以上です。

さて、これでめでたし、めでたし、といきたいところでしたが、いくつか不具合がみつかったので次回にでもそのまとめを書いてみようと思ってます。

Movable Type のエディタにCodeMirror を設定する

Movable Type 上で使用するエディタに CodeMirror を設定するやりかたです

もともとMovable Type(ここではヴァージョン5.2 以上ということです)に CodeMirror は同梱されているのですが、使えるようにするのにあれこれしないといけなくなるわけです。

探しましたところ、CodeMirror を使えるようにするためのプラグインが GitHub にありました。

CodeMirror for Movable Type として提供されています

簡単な導入手順は以下の通りです。システム管理者権限の有る者がおこないます。

  1. 前掲のページより master.zip をダウンロードして、展開しておきます
  2. plugins 内のフォルダを Movable Type の plugins ディレクトリに入れます
  3. mt-config.cgi に SourceEditor CodeMirror を追加します。参考:SourceEditor | 環境変数リファレンス
  4. TinyMCE を使わない場合は、システムメニューのプラグイン設定のところで、TinyMCEを無効にします

で、設定後のキャプチャは以下です(ローカルのMTOS v5.2.2で試しています)。

editor_codemirror.jpg

以下は、表示できる補助ボタンをカスタマイズした例で、リンク挿入を入れています。

カスタマイズの参考までに。プラグインの editor.tmpl のコードを追ってみると参考になります。

editor_codemirror_customized.jpg

Movable Type 5 でImage Driver がImager でPNGのサムネイルができていない時の対応メモ

  • Posted by: maRk
  • mt5
  • はてなブックマークに追加

Movable Type 5 でImage Driver をImager にしていて、JPEG画像はサムネイルが作られるのに、PNG画像では作られないといった問題の解決です

状態の確認

以下のアイテム一覧(スクリーンショット)は、Imager 使用で、PNG画像でサムネイルが表示されていないときの例です。(確認は、OSX Lion / MTOS 5.2 / MAMP + MacPorts Imagerインストールはcpanm による )

Imager_not_work_png_thumbs.jpg

対応

まずは、Imager で対応しているファイルの形式を調べます。

use Imager; - 今日のCPANモジュール(跡地) によりますと、以下の一行コードで対応するファイル形式を調べられるとのことです。

perl -MImager -e 'print join ", ", sort keys %Imager::formats'

この結果で、pngがでていなければ、png画像に対応してないということになるようです。

PNGを扱えるようにするには、別途 Imager::File::PNG をインストールする必要があります。以下は参照ページです。

cpanm Imager::File::PNG

install_file_png.jpg

以上で解決しました。

solution_to_png.jpg

Index of all entries

BlogTop > MovableType > mt5 Archive

Feeds
Elsewhere

Action Streams

logo

Comment powered by DISQUS

Return to page top