タグ「Movable Type」が付けられているもの

お仕事では、会社の方針で(ほぼ)100%、MTを使用しています。


しかし、個人的には、ウェブCMSとしては「MODx」を非常に評価しています。
案件によっては「MTよりもMODxが適している」と思う場面がたびたび存在します。

「MODxは難しくって・・・」というブログを良く見かけます。
個人的には、これは単に「慣れ」の問題か、日本語情報の量の問題だろうと思っています。


というわけで、今日は、主にMTユーザーの視点から、「MODxってどんなCMSなの?」という疑問についてご紹介します。

 

昨年11月にリリースした「EasyWorkflow」をバージョンアップし、0.3としました。

主な修正点は以下のとおりです。

  • テンプレート変換を、コールバックによる書き換えに変更しました。
    0.2までのEasyWorkflowを利用すると、alt-tmplによる置換が無効になっていましたが、今回のバージョンからalt-tmplを併用可能です。また、他の管理画面変更系プラグインとの併用も可能です。(仕様により、EasyWorkflowと共存できないプラグインも存在すると思われます。ご了承ください。)
  • MT4.25に対応を行いました。

ダウンロードページからご利用ください

※ご利用の際は、適用ブログ・ウェブサイト、もしくは適用した皆さんがお持ちの個人プラグから、当該ページへリンクを張っていただくと幸いです。

「オープンソースカンファレンス2009Tokyo/Spring」(以下、OSC2009TS)の感想その3。最後は、大型CMS「Typo3」の技術者との会話から感じた、日欧のCMS感の違いについて記述します。

MODxが展示していたブースと同部屋には、NetCommonsやGeeklog、Joomla、OpnPNEなど、CMS・SNSエンジンに属するユーザー会が一堂に集まっておりました。その中には、近年日本での活動を活性化している「Typo3」の皆さんもおりました。

Typo3は、日本国内での普及活動に関わっているスタイルチューンさんと、スイスの主要なTypo3ディベロッパー、スノーフレーク社のトーマスさん、他有志での展示を行っており、国際色を感じるブースでした。スノーフレーク社はスイスの会社で、Typo3の導入や構築、プラグインの開発などを行っているようです。さしずめ、日本でいうと、Movable Typeに対するスカイアークシステムさんやアルファサードさんのような立ち位置でしょうか。

情報交換をしている中で、トーマスさんとCMSに関する激論(?)を交わす機会がありました。

MTで簡単なワークフロー(承認フロー)を実現するプラグイン「EasyWorkflow」を少しだけ手直ししました。

(shさんにご助言いただきました。この場を借りてお礼申し上げます)

  • EasyWorkflow.plのpost_save_entryを修正
  • /lib/EasyWorkflow のディレクトリ名を修正
  • /tmpl/cms 配下のedit_entry.tmplを修正

ダウンロードは以下の記事よりどうぞ。

http://smallworld.west-tokyo.com/200811/easyworkflow.html

 

※実はこのプラグイン、当初は「なんちゃってワークフロー」という名前にする予定でありました。承認フローといえるほどたいそうな物じゃないし・・・と思っているので・・・思ったより使っていただいているようで、感謝申し上げます。

この記事は「MTはソーシャルの夢を見るのか?」の続きです。予定では先にソーシャルメディアについて論考するつもりでしたが、先にこちらから手をつけます。

先に結論を書くと、

  • MT→WPの流れは、本質的には「再構築の重さ」に起因する問題ではない。
  • 『MT=CMS』というマーケティング戦略、機能性を追及してきたシックスアパートのスタンスから、『ブログを使うなら、これからはWordPressかな』というイメージが相対的に増加してきたせいではないか
  • 2009年1月の時点なら、ブログはWordPress、CMSに使うならMovable Typeの方が使い勝手が良い

というのが僕の感想です。以下、論証します。

MTはソーシャルの夢を見るのか

最近改めて「ソーシャル」というキーワードと、日本国内のMTユーザーの動向について、気になり始めています。

僕はMTに限らず「CMS」というキーワードを、現在~ここ数年における自分の「軸」にしようと思っています。

CMSについて考えるとき、日本においてはどうしても、シェアが高い「Movable Type」についての考察を外せません。

そこで数回に分けて、自分の考えをまとめる意味で

「MTがおかれた立ち位置と目指す方角」

「ソーシャルというキーワード」

「MT⇔WP」の移行について

などを書いてみたいと思います。

 

XamppにPerlのモジュールを追加する

CMSやプログラムが絡む開発の際に、とても重宝する「Xampp」。
ウェブサーバーのApache、Perlやphpなどのプログラミング言語、データベースのMySQLも使えて便利です。

ただ、デフォルトで使用していると、Image::magickやCrypt::DSAなど、いくつかのモジュールが欠けた状態での利用となってしまいます。Movable Typeでは、画像のサムネイル生成にImage::magickやGDを利用するため、この状態ではサムネイルの生成機能が働きません。

ToI企画さんのプラグインがすごい

MTは元々ブログから発達してきたので、CMSとしてみると今一つ物足りない機能が多い・・・と思いませんか。

たとえば、時限公開。CMSなら「○月○日○時○分に公開して、×月×日×時×分に公開終了」って当たり前にある要件ですが、MTはデフォルトでは、なぜか「公開終了」の概念がない。

(ブログは「記録→公開」に本義があるため、公開終了の概念がないのが当然なのですが)

たとえば、絞り込み検索。「AかつBの記事を検索して表示」させたい、と思いませんか。

自分で勉強して、いつかこういうプラグインが作れるようになったら良いなあ・・・と思ってたら、とっくの昔に実現してプラグイン化している方がいました。ToI企画さんです。

http://www.toi-planning.net/

http://tec.toi-planning.net/

時限公開を実現する「Period」、カテゴリによる検索を実現する「CategorySearch」、など、かゆいところに手が届くプラグインがそろっています。さらに、プラグイン開発用のデバッグツールまで配布しています。すごい。(絞り込み検索は、大量にデータが存在する際のレスポンス速度など、もし実案件で導入する場合はきちんとパフォーマンス測定する必要がありますが)

こういうツールを見ていると、様々な要望を実現することができるわけで、いろいろ試しに作ってみたい、と思ってしまうわけです。実際に、テストサイトを作ってレポートしてみようかな。

すみません、タイトルは半分釣りです。MTはもちろんよくできたシステムです。テンプレートの代替機能が充実していて、コアに直接手を加えなくても済むところなど、他のオープンソース系CMSを触っていると素直に「すげー」と感嘆します。他のCMS、特にオープンソース系では、機能強化を行うときは当たり前のようにコアに手を入れることが多くて、この一点だけでもMTのすごさが感じられます。

ただ、それでもMTなみに機能を持ったブログ、CMSは数多あります。

米国でMT以上の利用率を誇るWordPressと比較すると、MTはWordPressを意識したバージョンアップを志向しているのが良く分かります。どちらかというと、WordPressのフォロワーのようにさえ見受けられることがあります。また、高機能CMSとして定評の高いjoomlaなどに比べると、コア部分の機能やプラグインの豊富さ、高機能さなども、MTがJoomlaよりもはるかに抜きんでているとは思えません。

では、MTのすごさはどこにあるのでしょうか。

その前に、今一度MTのリリースから振り返ってみます。

MTの4.xから、3.xまでの「ブログ記事(エントリー)」という概念に、「ウェブページ」という概念が加わりました。この違いが、いまひとつ分かりづらいという方も多いのではないでしょうか。

この「ブログ記事」と「ウェブページ」の違いは、個人的に非常に重要だと思っていますし、MT4.xシリーズ以降を使いこなすキーワードのひとつだと思います。ここでは、ブログ記事とウェブページの違いを説明します。

ブログ記事(エントリー)とウェブページの概念

そもそも「ブログ記事」と「ウェブページ」の違いはなんでしょうか。簡単な概念図を書いてみました。

ブログ記事とウェブページの違い

 

ブログ記事およびブログは「ウェブログ」が語源であるとおり、基本的には「日々の日記や記事を積み重ねていくシステム」です。このため、時間軸によるコンテンツ増加が原点となります。

この、時間と共に増えるコンテンツを整理するための発想がMTでいう「アーカイブ」になります。アーカイブは、日別・月別・年別など、時間軸を基準としてコンテンツを仕分けるの役割を果たします。

一方の「ウェブページ」はどうでしょうか。例えば企業サイトの場合、通常は「オープンした瞬間にコンテンツがそろっている」のが当たり前で、時間と共にコンテンツの量が増加するとは限りません。また、ウェブページは企業としての事業サービスが増えたり減ったり、新事業ができたりすることで増減します。

このため、コンテンツの分類分けは「時間」よりもむしろ「そのコンテンツがどんなジャンルの情報をに属するか」という、書類整理の感覚に近くなります。これが、ウェブサイトでは「ディレクトリ構造、ツリー構造による管理」につながっていきます。

本来、ウェブサイトとブログの情報は質が違うため、ブログをCMSとみてウェブサイト管理に使うのは、構造的に無理があります。MT3.xの頃のウェブ制作会社は、さまざまなテクニックを駆使して、MTをCMSとして使用してきましたが、「なんだかCMSとしてはつくりづらいなぁ」と思った方も多いのではないでしょうか。

一方、企業でも時間軸でコンテンツが増えるものがあります。「ニュースリリース」や「IR情報」です。ブログは、このニュースリリースなどに非常に向いています。

このように、ブログとウェブページは、本来的に違うものです。そして、MTは「ブログシステム」だったので、一般的なCMSとして捕らえると、結構構築が大変でした。

この弱点をカバーするのが「ウェブページ」という機能です。ウェブページは時間軸によるコンテンツ増加を気にせず、ディレクトリ単位でページを増減できます。この「時間軸でコンテンツを管理するかどうか」の観点で考えると、ウェブページとブログページの管理の概念がより分かりやすくなると思います。

MTの4.xから、3.xまでの「ブログ記事(エントリー)」という概念に、「ウェブページ」という概念が加わりました。この違いが、いまひとつ分かりづらいという方も多いのではないでしょうか。

この「ブログ記事」と「ウェブページ」の違いは、個人的に非常に重要だと思っていますし、MT4.xシリーズ以降を使いこなすキーワードのひとつだと思います。ここでは、ブログ記事とウェブページの違いを説明します。

ブログ記事(エントリー)とウェブページの概念

そもそも「ブログ記事」と「ウェブページ」の違いはなんでしょうか。簡単な概念図を書いてみました。

ブログ記事とウェブページの違い

 

ブログ記事およびブログは「ウェブログ」が語源であるとおり、基本的には「日々の日記や記事を積み重ねていくシステム」です。このため、時間軸によるコンテンツ増加が原点となります。

この、時間と共に増えるコンテンツを整理するための発想がMTでいう「アーカイブ」になります。アーカイブは、日別・月別・年別など、時間軸を基準としてコンテンツを仕分けるの役割を果たします。

一方の「ウェブページ」はどうでしょうか。例えば企業サイトの場合、通常は「オープンした瞬間にコンテンツがそろっている」のが当たり前で、時間と共にコンテンツの量が増加するとは限りません。また、ウェブページは企業としての事業サービスが増えたり減ったり、新事業ができたりすることで増減します。

このため、コンテンツの分類分けは「時間」よりもむしろ「そのコンテンツがどんなジャンルの情報をに属するか」という、書類整理の感覚に近くなります。これが、ウェブサイトでは「ディレクトリ構造、ツリー構造による管理」につながっていきます。

本来、ウェブサイトとブログの情報は質が違うため、ブログをCMSとみてウェブサイト管理に使うのは、構造的に無理があります。MT3.xの頃のウェブ制作会社は、さまざまなテクニックを駆使して、MTをCMSとして使用してきましたが、「なんだかCMSとしてはつくりづらいなぁ」と思った方も多いのではないでしょうか。

一方、企業でも時間軸でコンテンツが増えるものがあります。「ニュースリリース」や「IR情報」です。ブログは、このニュースリリースなどに非常に向いています。

このように、ブログとウェブページは、本来的に違うものです。そして、MTは「ブログシステム」だったので、一般的なCMSとして捕らえると、結構構築が大変でした。

この弱点をカバーするのが「ウェブページ」という機能です。ウェブページは時間軸によるコンテンツ増加を気にせず、ディレクトリ単位でページを増減できます。この「時間軸でコンテンツを管理するかどうか」の観点で考えると、ウェブページとブログページの管理の概念がより分かりやすくなると思います。

MTには、なぜか「ブログの記事リストをページ送りする」という概念がありません。このため、何も設定しないと、縦にだーっと長いブログ記事になるか、あるいはあらかじめブログの設定で定義した記事数で、表示が終わってしまいます。

これらの不都合を回避するのが「Pagebute」です。MTの導入企業として著名なスカイアークシステムさんのプラグインです。

MTには、なぜか「ブログの記事リストをページ送りする」という概念がありません。このため、何も設定しないと、縦にだーっと長いブログ記事になるか、あるいはあらかじめブログの設定で定義した記事数で、表示が終わってしまいます。

これらの不都合を回避するのが「Pagebute」です。MTの導入企業として著名なスカイアークシステムさんのプラグインです。

Movable Typeでkeywordsを設定する

Movable Typeでkeywordsを指定する場合、通常はブログ記事の「キーワード」もしくは「タグ」のデータをそのまま使うということになると思います。当ブログでは、タグ欄に記事に関するキーワードを埋め込んでいるため、

「ブログ記事のタグに列挙されている言葉をカンマ区切りで表示」

という処理になります。このMTタグの書き方は以下のとおりになります。

Movable Typeでkeywordsを設定する

Movable Typeでkeywordsを指定する場合、通常はブログ記事の「キーワード」もしくは「タグ」のデータをそのまま使うということになると思います。当ブログでは、タグ欄に記事に関するキーワードを埋め込んでいるため、

「ブログ記事のタグに列挙されている言葉をカンマ区切りで表示」

という処理になります。このMTタグの書き方は以下のとおりになります。

MovableTypeのバックアップの方法

MTのバックアップを行う方法は大きく分けて2つあり

1・MySQLのダンプデータを作成

2・MovableTypeの機能として持っているバックアップ機能を利用

 

となります。

 

1番目は、MySQLのバックアップをcronで定期的に取得→保存が有効です。

2番目は、今までは手動で行う必要があり、手間がかかったのですが、ツールとして配布されているものがありました。作者は、プラグイン作者、MTOSのコミッターとしても有名なogawaさんです。

http://as-is.net/blog/archives/001344.html

http://code.as-is.net/public/wiki/mt4-backup

 

これをMTの/tools/ディレクトリ下に解凍・保存して、cronで定期的に実行を行う設定をすれば、MTのデータが定期的に取得できます。

 

僕も試して見ましたが、非常に便利です。たとえば、週に1度、MTのバックアップをとりたい場合、

1・mt4-backupを取得、解凍して、「/MTインストールパス/tools/」以下へアップロード

2・crontabから以下のように設定

0 0 * * 6 cd /MTinstall_path/; ./tools/backup

(上記は土曜日の0時0分にバックアップをとる例)

 

これで毎土曜日に、xmlのバックアップファイルを取得してくれます。

もし、出力先を独自定義したい場合は

0 0 * * 6 cd /MTinstall_path/; ./tools/backup --/home/foo/var

 

などと指定すればよいでしょう。

 

cronの設定については、たとえばNECさんが公開している技術情報など、別途Googleなどで「cron 設定」と打ち込めば、たくさんの情報が出てくるかと思います。

MovableTypeのバックアップの方法

MTのバックアップを行う方法は大きく分けて2つあり

1・MySQLのダンプデータを作成

2・MovableTypeの機能として持っているバックアップ機能を利用

 

となります。

 

1番目は、MySQLのバックアップをcronで定期的に取得→保存が有効です。

2番目は、今までは手動で行う必要があり、手間がかかったのですが、ツールとして配布されているものがありました。作者は、プラグイン作者、MTOSのコミッターとしても有名なogawaさんです。

http://as-is.net/blog/archives/001344.html

http://code.as-is.net/public/wiki/mt4-backup

 

これをMTの/tools/ディレクトリ下に解凍・保存して、cronで定期的に実行を行う設定をすれば、MTのデータが定期的に取得できます。

 

僕も試して見ましたが、非常に便利です。たとえば、週に1度、MTのバックアップをとりたい場合、

1・mt4-backupを取得、解凍して、「/MTインストールパス/tools/」以下へアップロード

2・crontabから以下のように設定

0 0 * * 6 cd /MTinstall_path/; ./tools/backup

(上記は土曜日の0時0分にバックアップをとる例)

 

これで毎土曜日に、xmlのバックアップファイルを取得してくれます。

もし、出力先を独自定義したい場合は

0 0 * * 6 cd /MTinstall_path/; ./tools/backup --/home/foo/var

 

などと指定すればよいでしょう。

 

cronの設定については、たとえばNECさんが公開している技術情報など、別途Googleなどで「cron 設定」と打ち込めば、たくさんの情報が出てくるかと思います。