2

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

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

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

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

4

4 回答 4

1

我已经想通了。我上面的包含路径不正确,即使它没有引发错误(除非我从包含中调用了一个函数)。以下是正确的,并成功地将函数拉入模板:

include ("./includes/checkAccess.php");
于 2013-04-25T05:42:23.213 回答
1

如果文件夹“包含”在同一目录中,这当然有效

include(dirname(__FILE__)."/includes/checkAccess.php");
于 2018-08-10T15:54:34.287 回答
0

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

Joomla 是否已经使用了函数文件?您可以将它包含在它的底部。还要确保您的变量或全局变量都不会与 Joomla 冲突,确保它们都非常独特。

于 2013-04-25T05:03:48.667 回答
0

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

阅读有关ACL的更多信息。

于 2013-04-26T14:48:21.227 回答