1

这个问题可能看起来有点愚蠢,但我是 Joomla 的新手!

我正在编辑一个当前组件,我想在某个时候调用一个输出数据的小 php 文件。现在在该文件中,我想为数据库使用 joomla 类和函数,如 setQuery 等。

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

谁能告诉我该怎么做?

在此先感谢,埃里克

4

4 回答 4

1

最好不要包含“外部” php 文件,我的意思是 Joomla 结构之外的文件。但是,如果您仍然想这样做,您可以从任何您需要的地方包含该 php 文件,只要您从另一个 Joomla tile 包含该文件(可能是您的组件入口点,控制器、模型、视图等。)。此外,如果您的文件输出数据,则包含它的最佳位置是组件中的模板内部。如果您在任何其他地方使用它,您应该获取该文件的输出(例如,使用 ob_start()、ob_get_contents() 方法),并将它们保存到某种变量以从模板中输出。我猜您可能已经知道如何包含该文件,但是如果您的文件位于“mylibs”文件夹中

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

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

我希望它有所帮助。

于 2011-11-20T21:33:21.840 回答
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。不建议这样做。

于 2012-01-05T11:24:24.137 回答
0

最好的方法是使用像 Sourcer 或 Jumi 这样的扩展

http://extensions.joomla.org/extensions/edition/custom-code-in-content

适合在您编写“真正的”Joomla 可安装组件、模块、插件等之前开始使用……

于 2011-11-20T22:11:02.560 回答
0

我认为最好的方法是输出覆盖。看看文档。这样您就不必编辑核心 joomla 扩展(当然,现在我看起来更近了一点,您不会说您正在编辑核心扩展)。无论如何,输出覆盖非常酷,使用扩展的功能,但您可以进行最终修改。

在您当前的模板文件夹中创建一个名为“html”的文件夹,然后查看链接(或其他模板,如 beez)以确定您要覆盖的特定扩展名的文件夹结构。然后,您可以使用所有 joomla 功能从该覆盖中调用脚本,而无需破解核心。

于 2011-11-29T15:48:44.847 回答