我使用Joomla 2.5作为网站,但主页是外部php页面,我需要从特定的joomla文章和菜单项中获取数据。
我已经尝试过:
此帖子中的“模块”解决方案(Joomla Menu In External Page),显示有关会话已启动的错误。
一些数据检索代码:
define('_JEXEC', 1);
define('JPATH_BASE', dirname(__FILE__).'/../../Joomla_2.5.9' ); // should point to joomla root
require_once ( JPATH_BASE .'/includes/defines.php' );
require_once ( JPATH_BASE .'/includes/framework.php' );
require_once ( JPATH_BASE .'/libraries/joomla/factory.php' );
$db = JFactory::getDBO();
$query = $db->getQuery(true);
$query->select('introtext')
->from('#__content')
->where('id = 1');
$db->setQuery($query);
$fullArticle = $db->loadResult();
echo $fullArticle;
这段代码非常适合从特定文章中获取文章文本。当然,这不是那么有用,因为我想解决类别和多语言内容。
我会添加任何结果以更好的方式解决问题。任何进一步的想法肯定会有所帮助!
答案 0 :(得分:2)
您需要初始化Joomla应用程序:
$joomlaPath = dirname(__FILE__).'/../../Joomla_2.5.9';
define('_JEXEC', 1);
define('DS', DIRECTORY_SEPARATOR);
if (file_exists($joomlaPath . '/defines.php')) {
include_once $joomlaPath . '/defines.php';
}
if (!defined('_JDEFINES')) {
define('JPATH_BASE', $joomlaPath);
require_once JPATH_BASE.'/includes/defines.php';
}
require_once JPATH_BASE.'/includes/framework.php';
// Instantiate the application.
$app = JFactory::getApplication('site');
// Initialise the application.
$app->initialise();
首先,您可以访问已配置的Joomla环境。
答案 1 :(得分:1)
尼布拉! 你的代码与我的代码非常相似:
<?php
define( '_JEXEC', 1 );
define( 'JPATH_BASE', '/home/user7633/public_html/cms' );
define( 'DS', '/' );
require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );
JFactory::getApplication('site')->initialise();
$user = JFactory::getUser();
echo $user->username;
?>
通过这种方式完成的代码 NOT 工作!
我在PHP 5.4.36上使用Joomal 3.4.1,代码只是偶尔使用。有时用户名是空的,有时它是例外。我已登录!
我从“外部URL”菜单项调用PHP文件。