別のCMSや静的コンテンツを同居させて特化した機能を最大限活用する

CMSによってそれぞれの特徴がある。それらの機能を同じサイトに組み込むことは可能かどうか。CMSや静的コンテンツによるが、可能。

別CMSと他のCMSとの同居

例えば以下の様なCMSをピックアップして考えてみる。もちろんデフォルトで搭載されている機能のみで。

  • WordPressは時系列に沿ってコンテンツを増やすこと、各ページのテンプレートのカスタマイズに長けている
  • MediaWikiは、辞書などの何度でも必要な時に情報を引くことができ、ここのページのリンク・生成に長けている
  • OpenPNEは、コミュニティサイトを構築するのに適している
  • EC-CUBEは、ECサイトを構築するのに適している

例えば、これらのCMSを一つずつ使ってそのCMSで可能な範囲内で、また拡張して使用するということも解決策としては考えはするものの、それよりも、他の特化した機能だけをうまく組み込んで入れてしまうというのも面白い解決となるのかもしれない。

え?

簡単に言うと、同居させてしまいます。単純に隣においたり、CMSのコアファイルごとにフォルダに入れて、親つまりベースとなるCMSを直下に置いてトップページをそのCMSで表示させます。といいつつも、組み合わせができないCMSがひょっとしたらあるかもしれませんし、コンフリクトと言って、関数や変数が衝突してしまうというような危険性もはらみます。なので、できれば2つくらいにしたり、ちゃんと調べたり、あるいは必要な処理だけをさせて表示部分だけをfile_get_contentsなどで組み込んだり、コンテンツ管理のみをそれぞれのCMSで行って、必要データをデータベースから取得するとか。

懸念はありますが、少なくても私が知る範囲ではWordPressとMediaWikiの組み合わせなんて言うのは叶うのではないかと思います。コンテンツはMediaWikiで行い、お知らせページなどはWordPressを使う。

テンプレートを共通化できないのではない?

そう、実はそう。なので、各テンプレートの共通部分は、別の場所においておいてそこからrequire、includeしたりfile_get_contentsする。そうすれば、1箇所変更するだけでヘッダーやフッターを変更できるといったことが可能になる。ほしいのはまずは、管理画面というのを優先すればうまくいく、はず。

静的コンテンツとの同居

これなんかは心配いらないのではないかと思う。WordPressは実際にそこにいるファイルを優先して表示させるようになっている。(.htaccessにそうやって記載するので)。MediaWikiも同じ。

他のCMSは詳しく調べてはいないので断定はできないが、フォルダに入れておくことで、そのフォルダ意外の場所に設置しておけば、静的ファイルと同居することができる。
※この説明で言うサイトというのは、http://example.com/があったとすると、http://example.com/直下のことを指します。