2009-08-08 60 views
1

我使用的是Joomla 1.5。我創建了一個自定義組件,將數據完美地從數據庫中提取出來。我的主要組件文件初始化數據庫是這樣的:Joomla包含數據庫功能

$db =& JFactory::getDBO(); 

的問題是,我有我的組件頁面上一個jQuery自動完成插件,使得調用從我的組件文件夾中的PHP文件。該PHP文件在數據庫中搜索匹配的結果,但我無法執行查詢,因爲我無法調用$db =& JFactory::getDBO();,因爲這是一個自定義PHP頁面,我無法在沒有任何引用的情況下訪問這些函數。

任何人都可以幫助我在我的自定義文件中調用Joomla函數嗎?

謝謝。

+0

我沒有用過的Joomla,但看起來是對包括一個Joomla文件中的PHP文件的選項。解決方案可能是創建一個新的Joomla文件來替換自定義php文件,但只包含已存在的php文件。 – Cahlroisse 2009-08-08 16:27:04

+0

我知道如何將一個PHP文件包含到Joomla中,我只是不知道如何包含以便我可以訪問JFactory和函數... – 2009-08-08 17:06:24

回答

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創建另一個入口點!應用程序,你將不得不維護和保護。

您可以做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/

+0

謝謝!我稱之爲原始格式。 – 2009-08-09 12:38:37

0

我會用JLoader類,包括外部的PHP文件和類到Joomla。

        

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

這包括類,並使其投入使用:

$theClass = new classname();