この修飾子をSmartyに追加してテンプレートに使用するには、WHMCSフックを使用することをお勧めします。
'〜/ includes/hooks /'ディレクトリに新しいPHPファイルを作成した場合(この名前は何でも構いません - この場合、 'myhook.php'を使用してください)、WHMCSは自動的に要求。
このため、ClientAreaPageフックを使用します。あなたのフックの中で、グローバル$smarty
変数にアクセスすることができます。
例:トリックを行う必要があります
function MySmartyModifierHook(array $vars) {
global $smarty;
// I recommend putting your Geolocation class in a separate PHP file,
// and using 'include()' here instead.
class Geolocation{
public function sm_loc($params, Smarty_Internal_Template $template) {
return "100.70";
}
}
// Register the Smarty plugin
$smarty->registerPlugin('modifier', 'myModifier', array('Geolocation', 'sm_loc'));
}
// Assign the hook
add_hook('ClientAreaPage', 1, 'MySmartyModifierHook');
。あなたが他のフックで探検したいのであれば、WHMCSのドキュメントのHook Indexを見てください。
各フックファイルのファンクション名はで、それぞれである必要があります。
このフックを特定のページでのみ実行する場合は、$vars
配列のtemplatefile
キーを確認することができます。たとえば、あなただけのこのフックは、注文フォーム上の「カートを見る」のページ上で実行したいと言う:
function MySmartyModifierHook(array $vars) {
global $smarty;
// If the current template is not 'viewcart', then return
if ($vars['templatefile'] != 'viewcart')
return;
// ... your code here ...
}
また、キーと値の配列を返す、「ClientAreaPage」フックなどのフックであることに注意それらを自動的にSmarty変数として追加します。したがって、フック関数がreturn ['currentTime' => time()];
で終了した場合は、Smartyテンプレートの{$currentTime}
を使用してその値を出力することができます。