Joomla包括数据库功能

时间:2009-08-08 14:55:16

标签: php database function joomla include

我正在使用Joomla 1.5。我创建了一个自定义组件,可以完美地从数据库中提取数据。我在我的主要组件文件中初始化数据库,如下所示:

$db =& JFactory::getDBO();

问题是我的组件页面上有一个jQuery自动完成插件,它从我的组件文件夹调用PHP文件。该PHP文件在数据库中搜索匹配的结果,但我无法执行查询,因为我无法调用$db =& JFactory::getDBO();,因为这是一个自定义的PHP页面,我无法在没有任何引用的情况下访问这些函数。

有人可以帮我在我的自定义文件中调用Joomla函数吗?

感谢。

2 个答案:

答案 0 :(得分:2)

我建议不要调用单独的PHP文件,而是在组件中使用raw视图格式。为此,请在组件中为jQuery将要提取的数据创建一个视图。为了便于讨论,我们将此视图称为autocomplete。像设置任何其他视图一样设置autocomplete视图,仅使用view.raw.php代替view.html.php。然后在JavaScript中,调用index.php?option=com_yourcomponent&view=autocomplete&format=raw。此HTTP调用仅返回您在视图中输出的内容。

如果您绝对必须运行外部PHP文件,请查看使用Joomla创建独立应用程序!框架:http://docs.joomla.org/How_to_create_a_stand-alone_application_using_the_Joomla%21_Framework这是足以引入JFactory和数据库连接的代码。但是如果你真的需要,只能使用它:否则,你只是在Joomla中创建另一个入口点!您必须维护和保护的应用程序。

你可能会发现Louis Landry关于做JSON的帖子很有用:http://groups.google.com/group/joomla-dev-cms/browse_thread/thread/5ac0b49c0f458b1a

我最近也在博客上发表了这个话题:http://www.designvsdevelop.com/the-way-not-to-do-javascript-in-joomla/

答案 1 :(得分:0)

我将使用JLoader类将外部PHP文件和类包含到joomla中。

        

JLoader::register( 'classname', dirname(__FILE__).DS.'classfoldername'.DS.'classfile.php');

这将包括该类并使其可供使用:

$theClass = new classname();