2013-04-05 42 views
0

我使用Joomla 2.5的网站,但主页是一个外部的PHP页面,我需要从特定的joomla文章和菜单项获取数据。Joomla 2.5数据检索在外部的PHP页面

  1. 什么是最好的方式去调用模块或连接到数据库来检索我需要什么?
  2. 我该如何调用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; 

这段代码的伟大工程,从一个特定的文章获取文章全文。当然,这不是那么有用,因为我想要解决类别和多语言内容。

我会添加任何结果以更好的方式解决问题。任何进一步的想法肯定会有帮助

+1

为什么你的主页是外部的?如果你需要在其上显示文章,模块等,为什么你不能在Joomla内创建它? – 2013-04-05 12:59:02

+0

我使用一个视差主页,我需要加载某些文章,例如。公司。在joomla内部进行类似的事情真的很难。 – nkou 2013-04-05 13:13:42

+0

那么,我发现一些涵盖了另一个问题的数据检索。对于那些感兴趣的,你可以在这里查看:http://stackoverflow.com/questions/15042262/access-joomla-2-5-from-external-script-to-get-article-by-id – nkou 2013-04-05 13:15:27

回答

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环境。

+0

使用我获取: 警告:session_start()[function.session-start]:无法发送会话cookie - 已在/public_html/Joomla_2.5.9中发送的(通过/public_html/demo/irven/nkou_test.php:9开始的输出) /libraries/joomla/session/session.php on line 532 那么,这就是我解决模块解决方案代码的问题。我很确定这个警告是由于我已经访问过joomla网站并且浏览器中的会话已经开始而引起的。 – nkou 2013-04-05 13:36:18

+0

你使用Joomla以外的会话吗? – nibra 2013-04-05 13:43:33

+0

我在Joomla内部使用Virtuemart,所以我需要在整个导航过程中保持用户数据... – nkou 2013-04-05 13:52:41

1

Nibra! 你的代码非常类似地雷:

<?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; 
?> 

通过这种方式完成的代码做工作!

我在PHP 5.4.36上使用Joomal 3.4.1,代码只是偶尔工作。有时用户名是空的,有时它是例外。我登录了!

我从“外部URL”菜单项调用PHP文件。

+0

这个问题的答案是? – 2015-05-15 10:38:09

+0

是的,它是一个回答/评论,以避免Nibra推荐的代码。不要为这种解决方案耗费时间。 – Tickseeker 2015-05-15 10:39:05

+0

我想发表评论,但系统不允许我这样做。 – Tickseeker 2015-05-15 10:39:49