2011-11-20 47 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功能調用腳本,並且不會破壞核心。

相關問題