这个问题可能看起来有点愚蠢,但我是Joomla的新手!
我正在编辑一个当前的组件,我想在某些时候调用一个小的PHP 输出数据的文件。 现在在该文件中我想为数据库使用joomla类和函数 比如setQuery等等。
我想让它读取joomla前缀(#__)。 并且文件是由我创建的,所以我想知道我需要包含什么以及如何包含。
谁能告诉我怎么做?
提前致谢, 埃里克
答案 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功能从该覆盖中调用脚本,而不会破坏核心。