Whmcs使用smarty变量在tpl文件中调用php脚本

时间:2016-04-18 10:18:40

标签: php templates whmcs

我有一个php脚本,可以从数据库中选择并显示每一行。

我想在homepage.tpl中显示WHMCS中发生的所有信息。

我假设有一个索引文件已经在做,但我有一个加密版本。想知道我是否可以使用另一个php文件来分配我的智能变量并能够在我的homepage.tpl中使用它们?

2 个答案:

答案 0 :(得分:1)

WHMCS鼓励不在PHP文件中包含php代码,并建议将任何与PHP相关的代码添加到钩子中。

对于你的问题:

1 - 添加文件包含/ hooks / my_list.php,并将以下代码添加到其中:

<?php

if (!defined("WHMCS"))
    die("This file cannot be accessed directly");

use Illuminate\Database\Capsule\Manager as Capsule;

add_hook('ClientAreaPage', 1, function ($vars) 
{
    //Make sure code executed only in homepage.tpl (index.php)
    if (strpos($vars['SCRIPT_NAME'], 'index.php') !== false) {
        //Read products
        $products = Capsule::table('tblproducts')
                    ->where('hidden', '0')
                    ->orderBy('gid', 'name')
                    ->get();

        //pass variables to the template
        $extra = array("products" => $products, "prdouctsLabel" => "Our Products");

        return $extra;
    }


});

2 - 在homepage.tpl中,访问传递的变量如下:

<h4>{$prdouctsLabel}</h4>
<ul>
    {foreach item=product from=$products }
    <li>{$product->name}</li>
    {/foreach}

</ul> 

参考文献:

WHMCS Hooks

Interacting With The Database

答案 1 :(得分:0)

不要以为你可以查看代码heres abetter版本  “

      if (!defined("WHMCS"))
      die("This file cannot be accessed directly");
      require("new.php");
      use Illuminate\Database\Capsule\Manager as Capsule;

      add_hook('ClientAreaPage', 1, function ($vars) 
      {
        //Make sure code executed only in homepage.tpl (index.php)
        if (strpos($vars['SCRIPT_NAME'], 'index.php') !== false) {

        $extra = array("products" => $car, "prdouctsLabel" => "Our Products");

return $extra;
}

 });'