php WHMCS:如果直接访问插件模块文件,则无法访问WHMCS的常量、自动加载程序,如命名空间等

68de4m5k  于 2023-03-07  发布在  PHP
关注(0)|答案(1)|浏览(131)

首先,我们的目标是通过插件模块在管理页面上创建一个新的完整的php文件/页面,因为从_output()函数,whmcs将插入页眉,侧边栏和页脚和AFAIK,我们不能删除它。
我的解决方法是从我的自定义插件模块创建一个新的PHP文件,这样就创建了一个(整个)新页面,但问题是无法访问WHMCS的常量,autoloader,像命名空间的东西,等等,因为该文件是直接访问的。在浏览器中,我访问它的网址是:{rooturl}/modules/addons/my_custom_addon_module/pages/my_page.php
下面是文件的基本结构(smarty模板):

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <span>{$myVar}</span>
</body>
</html>

对此最好的解决方案是什么?

6mw9ycah

6mw9ycah1#

您要做的是从输出中隐藏WHMCS的页眉和页脚,这是一项艰巨的任务。
我不建议做你正在尝试做的事情,因为有很多事情要考虑。你需要手动检查管理员是否有权限访问资源,并找出WHMCS是如何在Smarty中设置视图的。你可以做的一切“WHMCS方式”,你需要自己做。
第一部分很简单。你需要从WHMCS根目录中获取init.php。一旦完成,你就可以开始使用WHMCS命名空间,函数等等。
就我个人而言,我会找到另一种方法来剥离WHMCS页眉和页脚的插件模块页面。最简单的方法可能是使用JavaScript:Replacing Entire Page Including Head Using Javascript

相关问题