少し遅れましたが、これが必要なときに狩りに時間を費やしすぎたので、聞いてください。
このコードを使用して Joomla プラットフォームをロードし、「すべてを利用可能」にし、必要に応じて独自の出力を作成しました。私の場合、「api」呼び出しで別のシステムとやり取りしたかったので、これをルートディレクトリに置き(安全のための他のチェックを行います)、出来上がり-JSONまたはXML出力で、これでうまくいきました。
私のルートで「index_api.php」として
// We are a valid Joomla entry point.
define('_JEXEC', 1);
// Setup the base path related constant.
define('JPATH_SITE', dirname(__FILE__));
define('JPATH_BASE', JPATH_SITE);
define('JPATH_PLATFORM', JPATH_BASE . '/libraries');
// Import the platform
require_once JPATH_PLATFORM.'/import.php';
define('DS', DIRECTORY_SEPARATOR);
if (file_exists(JPATH_BASE . '/includes/defines.php'))
include_once JPATH_BASE . '/includes/defines.php';
if (!defined('_JDEFINES'))
require_once JPATH_BASE.'/includes/defines.php';
require_once JPATH_BASE.'/includes/framework.php';
// Instantiate the application.
$app = JFactory::getApplication('site');
// Make sure that the Joomla Platform has been successfully loaded.
if (!class_exists('JLoader'))
exit('Joomla Platform not loaded.');
/* Now try some standard Joomla stuff. None of the below is necessary, just showing that Joomla is loaded and running*/
$config = new JConfig();
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('version_id');
$query->from('#__schemas');
$query->where('extension_id=700');
$db->setQuery($query);
$db->query();
if($db->getErrorNum()) {
die($db->getErrorMsg());
}else{
echo "<pre>Joomla Version is ".$db->loadResult()."</pre>";
}
echo "<pre>".print_r($config,true)."</pre>";
echo "<pre>".print_r($db,true)."</pre>";
echo "<pre>".print_r($app,true)."</pre>";