如何在Joomla模板中包含PHP函数文件


How do I include a file of PHP functions in a Joomla template

我一直在尝试在我的模板中包含一个文件,其中包括一些函数,我打算用于验证成员的访问级别,以便为Joomla 2.5中的不同类型的用户定制内容。问题是,尽管我使用了标准的PHP include语句,但在模板中似乎没有一个函数可用。相反,调用这些函数会导致使用该模板的任何页面崩溃。我可以在模板的顶部硬编码函数,但我也计划在我的web应用程序的其他地方使用一些函数,因此将它们存储在包含文件中是有意义的。有没有人有一些洞察为什么函数不工作从一个包含,但当添加到模板的顶部?下面是我的模板的前几行,包含了include语句:

<?php 
defined( '_JEXEC' ) or die( 'Restricted access' );
JHtml::_('behavior.framework', true);
include ("/includes/checkAccess.php");

请注意,当硬编码到模板中时,函数都可以正常工作,所以这绝对是包含的问题。此外,上面的包含路径似乎是正确的,因为如果添加了上面的包含行,模板仍然可以正常工作,除非对它包含的一个函数进行调用。

如果文件夹"includes"在同一目录

include(dirname(__FILE__)."/includes/checkAccess.php");

我明白了。我上面的包含路径是不正确的,即使它没有抛出错误(除非我从包含调用函数)。下面的代码是正确的,并且成功地将函数拉入模板中:

include ("./includes/checkAccess.php");

您可以将函数包含在Joomla文件中,该文件已经在每个页面上都是活动的,而不是通常读取某些内容并排除其他内容的模板。

是否有Joomla已经使用的函数文件?你可以把它放在下面。还要确保所有变量或全局变量都不会与Joomla冲突,确保它们都是唯一的。

对于访问检查,我会使用内置的ACL(访问控制列表)。

阅读更多关于ACL的信息