我一直在尝试在我的模板中包含一个文件,其中包含一些我打算用于验证成员访问级别的函数,以便为Joomla 2.5中的不同类型的用户定制内容。问题是即使我使用了标准的PHP include语句,这些函数似乎都不能在模板中使用。而是调用函数会导致使用模板的任何页面崩溃。我可以硬编码模板顶部的功能,但我也计划在我的Web应用程序的其他地方使用一些函数,因此将它们存储在一个包含文件中是有意义的。有没有人能够深入了解为什么函数不能从包含中起作用,但在添加到模板顶部时是否有效?以下是我的模板的前几行,包含include语句:
<?php
defined( '_JEXEC' ) or die( 'Restricted access' );
JHtml::_('behavior.framework', true);
include ("/includes/checkAccess.php");
请注意,当硬编码到模板中时,所有功能都可以正常工作,因此它肯定是包含的问题。此外,上面的包含路径似乎是正确的,因为如果添加上面的包含行,模板仍然可以正常工作,除非调用它包含的其中一个函数。
答案 0 :(得分:1)
我已经弄清楚了。我上面的include路径不正确,即使它没有抛出错误(除非我从include中调用了一个函数)。以下是正确的,并成功将功能拉入模板:
include ("./includes/checkAccess.php");
答案 1 :(得分:1)
如果文件夹“ includes”位于同一目录中,这当然可以工作
include(dirname(__FILE__)."/includes/checkAccess.php");
答案 2 :(得分:0)
您可以将功能包含在Joomla文件中,该文件已在每个页面上都处于活动状态,而不是通常读取某些内容并排除其他内容的模板。
Joomla是否已经使用了函数文件?你可以把它包含在底部。还要确保你的变量或全局变量都不能与Joomla冲突,确保它们都非常独特。
答案 3 :(得分:0)
对于访问检查,我会使用内置ACL(访问控制列表)。
详细了解ACL。