CMS でルートを処理し、その結果を基になるアプリケーションに委譲する CMS 拡張機能を作成することもできます。
例を挙げると、drupal 7 で考えてみましょう。この CMS では、モジュールに関するデータ用とモジュールのコード用の 2 つのファイルを含むフォルダーを持つモジュールを作成できます。
my_module/my_module.info <-モジュールのデータ
name = My Module
description = A description of what your module does.
core = 7.x
my_module/my_module.module <- モジュールのコード
<?php
/**
* Respond to a drupal's URL with a callback.
*/
function my_module_menu() {
$menu = array();
$menu["App"] = array(
"page callback" => "my_module_run",
"access callback" => true,
);
return $menu;
}
/*
* Do the job
*/
function my_module_run() {
ob_start();
// Call your application by including it's index.php file or whatever
// operation needed.....
// Capture the result of the application.
$result = ob_get_clean();
// If the request is ajax, echo the result.
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH'])
&& strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
echo $result;
} else {
//Otherwise, return it, so it is rendered as part of the
// CMS content.
return $result;
}
}
?>
この基本的なコードを使用すると、アプリケーションを drupal に「統合」できます。必要なのは、drupal モジュールとしてインストールし、htt://your-cool-site/App に移動してアプリケーションを実行することだけです。
drupal モジュール オーサリングの詳細については、こちらを参照してください。
私はそれが役立つことを願っています:)
これを念頭に置いて動作するフレームワークを次に示します。これには、drupal (6、7、および 8) と joomla へのバインディングがあります。