将 HTTP 响应头添加到 WHMCS 主页

问题描述 投票:0回答:1

我正在尝试将 HTTP 响应标头添加/覆盖到 WHMCS 公共主页。 使用 PHP,它们应该看起来像这样:

header("Cache-Control: public, max-age=10800, must-revalidate"); // HTTP 1.1.
header("Pragma: cache"); // HTTP 1.0.

但是,在 smarty 3+ 中,不再支持使用 php 标签。

我已在 header.tpl 文件上尝试了以下操作但失败了:

{if $templatefile == 'homepage'}
  header("Cache-Control: public, max-age=86400, must-revalidate"); // HTTP 1.1.
  header("Pragma: cache"); // HTTP 1.0.
{/if}

如何将这些标头添加到 header.tpl 文件中,以便将它们读取为 PHP? 谢谢。

php whmcs smarty3
1个回答
0
投票

正如我在评论中建议的那样,您可以使用

ClientAreaHeadOutput
钩子来做到这一点,例如:

add_hook('ClientAreaHeadOutput', 1, function ($vars) {
    // Check if the current file name is index aka home
    if ($vars['filename'] == 'index') {
        header("Cache-Control: public, max-age=10800, must-revalidate"); // HTTP 1.1.
        header("Pragma: cache"); // HTTP 1.0.
    }
});

您还可以使用

App::getCurrentFilename()
代替
$vars['filename']
来获取当前文件名。

© www.soinside.com 2019 - 2024. All rights reserved.