如何获取WHMCS根目录

时间:2015-11-30 18:17:05

标签: php whmcs

我做了一个简单的WHMCS添加,它使用了WHMCS中的钩子函数。 如果我使用require_once (ROOTDIR.'/modules/addons/module_name/modulefunction.php'),它在我的安装上工作正常,因为我的WHMCS使用子域。但是我在另一个没有使用子域的安装上测试了它,但它不起作用,因为WHMCS目录不包含在名称中。

有没有办法让我获取目录的名称,或者只是从hooks文件夹(includes/hooks/my_hook.php)向后移动到addons目录。

我尝试使用require_once '../../../modules/addons/module_name/modulefunction.php';,但它只是说无法找到该文件。

错误:

Fatal error: require_once(): Failed opening required '../../../modules/addons/module_name/modulefunction.php' (include_path='/home/me/public_html/hosting/vendor/phpseclib/phpseclib/phpseclib:.:/usr/lib/php:/usr/local/lib/php:/usr/local/php/') in /home/me/public_html/hosting/includes/hooks/my_hook.php on line 55

任何帮助都会很棒:)。 谢谢。

2 个答案:

答案 0 :(得分:0)

从includes / hooks文件夹中,你不能这样做:

require_once dirname( dirname( __DIR__ ) ) . DIRECTORY_SEPARATOR . 'modules' . DIRECTORY_SEPARATOR . 'addons' . DIRECTORY_SEPARATOR . 'module_name' . DIRECTORY_SEPARATOR . 'modulefunction.php';

我相信无论你的安装如何,DIR上的双重名称都会让你进入根目录。

答案 1 :(得分:0)

发布此帖子,因为我在任何地方都找不到答案。

我想对WHMCS插件进行完整性检查,以确保安装了其他文件,因此我执行了以下代码,并且运行正常。

我在加载模块中的任何其他文件之前先加载了此文件,因此与模块相关的其他任何内容的相关性均为零。

此代码位于{whmcs–dir} /modules/servers/mailtrust.php

因此,一旦我转到模块中的任何页面,它就会确保已安装所有必需的文件,并且如果没有抛出友好错误,则将确保该错误。

$ path_to_includes将为您提供当前WHMCS安装中您的模块的安装目录。

$path_to_includes =  dirname( dirname( __DIR__ ) );
$path_to_includes =  str_replace("modules","includes", $path_to_includes);
$path_to_includes = $path_to_includes . "/hooks/mailtrust.php";
if(!file_exists($path_to_includes)) {
   echo "<h1>ERROR - System File Missing</h1>";
   echo "Please upload the mailtrust hook file to $path_to_includes";
   exit;
}