2011-11-20 45 views
1

这个问题可能看起来有点愚蠢,但我是Joomla新手!如何使文件成为Joomla的一部分?

而我正在编辑一个当前的组件,我想在某些时候调用一个输出数据的小型php 文件。 现在在那个文件中,我想使用joomla类和数据库功能 像setQuery等

我想要它读取joomla前缀(#__)。 和文件是由我创建的,所以我想知道我需要包含什么以及如何。

谁能告诉我该怎么做?

由于提前, 埃里克

回答

1

好alghimo答案引我到写这篇:

define('_JEXEC', 1); 
define('JPATH_BASE', dirname(__FILE__)); 
define('DS', DIRECTORY_SEPARATOR); 
require_once (JPATH_BASE .DS.'includes'.DS.'defines.php'); 
require_once (JPATH_BASE .DS.'includes'.DS.'framework.php'); 

/* Create the Application */ 
$mainframe =& JFactory::getApplication('site'); 

但作为mentoined。不建议这样做。

1

倒不如不包括“外部” PHP文件,我的意思是文件出的Joomla结构。但是如果你仍然想这样做,你可以在任何你需要的地方包含这个php文件,并且只要你从另一个Joomla文件夹中包含这个文件就可以使用所有的Joomla类和函数(也许你的组件入口点,控制器,模型,视图等)。 此外,如果您的文件输出数据,则包含它的最佳位置将来自组件中的模板。如果你在任何其他地方使用它,你应该得到该文件的输出(例如,使用ob_start(),ob_get_contents()方法),并将它们保存为某种变量以从模板输出。 我猜你可能已经知道如何将其纳入该文件,但如果例如你的文件里面的Joomla根中的文件夹“mylibs”,你应该包括这样的:

include JPATH_ROOT . DS . 'mylibs' . DS . 'myfile.php'; 

为什么是你的原因需要包含该文件,并且无法将其作为模板呈现?

我希望它有帮助。

+0

我不想包含它,我想用XmlHtppRequest调用它叫 –

0

我认为最好的办法是输出覆盖。 Take a look at the documentation。这样你就不需要编辑一个核心joomla扩展(当然,现在我看起来更接近你不要说编辑核心扩展)。无论如何,输出覆盖非常酷,使用扩展的功能,但你可以做最后的修改。

在您当前的模板文件夹中创建一个名为'html'的文件夹,然后查看链接(或另一个模板,如beez)以确定您要覆盖的特定扩展名的文件夹结构。然后,您可以在该覆盖范围内使用所有joomla功能调用脚本,并且不会破坏核心。

相关问题