如何使文件成为Joomla的一部分?

时间:2011-11-20 20:32:59

标签: joomla joomla-extensions joomla1.7

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

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

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

谁能告诉我怎么做?

提前致谢, 埃里克

4 个答案:

答案 0 :(得分:1)

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

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

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

我希望它有所帮助。

答案 1 :(得分:1)

阿尔盖罗的回答引导我写下这个:

    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');

但如上所述。不建议这样做。

答案 2 :(得分:0)

最好的方法是使用像Sourcer或Jumi

这样的扩展程序

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

在开始编写'真正的'Joomla可安装组件,模块,插件等之前就开始了...

答案 3 :(得分:0)

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

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