「WordPressで学ぶPHP(4)通信編」を発売しました。
本書は、「WordPressで学ぶPHP(1)変数・制御構造編」「WordPressで学ぶPHP(2)データ構造編」「WordPressで学ぶPHP(3)関数編」の続編にあたり、Webブラウザとサーバー(PHP)との通信と、PHPから他のサーバーに通信することについて解説します。
Movable Type 7への要望
Movable Type 6がリリースされてから、2年強が経過しました。
来年あたり、メジャーバージョンアップしてMovable Type 7になるのではないかと思います。
Movable Type Advent Calendarの15日目として、Movable Type 7にこんな機能が欲しいということを書いてみます。
権限管理の強化
現状のMovable Typeでは、権限はブログ(またはウェブサイト)の単位で設定するようになっています。
しかし、もっと細かな単位で権限を設定したい場面もあります(記事ごと、ウェブページごと、カテゴリごとなど)。
例えば、ユーザーごとに記事を投稿できるカテゴリを制限したいという話は、よく聞きます。
ところが、現状ではそのようなことはできないので、ブログを分けて対処することが多いです。
ただ、ブログを分けると再構築が複雑になったり、ブログをまたがるアーカイブを出力できなかったりと、制限がいろいろでてきます。
権限管理はプラグインではどうにかしづらい部分なので、コアでの機能実装を期待します。
ウェブサイト/ブログ間の連携の強化
現状のMovable Typeでは、ウェブサイトの配下にブログを配置する形になっていて、両者にはある程度の親子関係があります。
ただ、ウェブサイト/ブログ間の連携が十分とは言えません。
よく聞く話として、以下のようなことがあります。
- ウェブサイトのアーカイブで、配下のブログの記事をまとめたアーカイブページを出力したい
- ウェブサイトに作ったカテゴリを、配下のブログで共有したい
- ウェブサイトに作ったカスタムフィールドを、配下のブログで共有したい
これらもプラグインでどうにかするのは困難なので、コアでの実装を期待したいです。
静的ページ分割機能
Movable Typeは、公開サーバーと、Movable Typeを入れるサーバーを分けて、Movable Typeを外に見せたくない案件で使われることも多いです。
このような案件で、メインページやアーカイブページを分割しようとすると、現状はPageButeプラグインぐらいしか選択肢がありません。
ただ、PageButeプラグインでは、動作原理上、記事が増えるとタイムアウトが発生してしまいます。
タイムアウトを発生させずに静的にページ分割するには、コアの再構築のロジックを変えて、コアで静的ページ分割に対応する必要があると思います。
データ設計をより柔軟に
Movable TypeはブログからCMSへと変化してきたソフトです。
そのため、現在もブログ的な部分が色濃く残っています。
しかし、汎用的なCMSとして使う場合、データ構造的にブログとはあまり合わない場合もあります。
そこで、データ設計をより柔軟に行える仕組みが欲しいです。
現状でもプラグインを作れば独自のデータ構造を追加することはできますが、そこをもっと簡単に行えるようになると良いと思います。
また、アーカイブ出力機能がブログを前提としたものになっていて、汎用性が不足しているという問題もあります。
様々な形でアーカイブを出力できるような仕組みも欲しいところです。
Data APIの強化
Data APIは登場から時間がたち、Movable Typeの管理画面で行えることの大半を、Data APIでも行えるようになりました。
ただ、Data APIはHTTPを通してアクセスするので、多数のリクエストを行うと、パフォーマンス的にネックがあります。
そこで、複数のリクエストを一括で出せるような仕組みが欲しいです。
例えば、記事編集画面をData APIで作る場合だと、記事を取得するAPIと、カテゴリを取得するAPIを、1回のリクエストで行いたいです。
また、多数の記事をData APIで一括登録する場合も、記事を1件登録するごとにリクエストを出すと時間がかかりますので、1回のリクエストで複数の記事をまとめて登録したいです。
さらに、Data APIのライブラリも増やしていただきたいところです。
現状では純正ライブラリはJavaScript用とSwift用の2種類ですが、Java用ライブラリ(特にAndroid用)や、Ruby用などがあると、活用の幅が広がって良いと思います。