2015-07-04 2 views
0

Привет, я надеюсь, что кто-то может помочь на странице сведений о клиенте Мне нужно скрыть кнопку пересылки электронной почты и кнопку управления DNS, если клиент выбрал специализированные серверы имен. Я просто не могу с этим справиться, всякая помощь очень приветствуется. Вот код, который берет вход;Как скрыть кнопки whmcs?

<form method="post" action="{$smarty.server.PHP_SELF}?action=domaindetails"> 
<input type="hidden" name="sub" value="savens"> 
<input type="hidden" name="id" value="{$domainid}"> 
<p><input type="radio" name="nschoice" value="default" id="nschoicedefault" onclick="usedefaultns()"{if $defaultns} checked{/if} /> <label for="nschoicedefault">{$LANG.nschoicedefault}</label><br /> 
<input type="radio" name="nschoice" value="custom" id="nschoicecustom" onclick="usecustomns()"{if !$defaultns} checked{/if} /> <label for="nschoicecustom">{$LANG.nschoicecustom}</label></p> 

А вот код для кнопок;

{if $emailforwarding} 
<td><form method="post" action="{$smarty.server.PHP_SELF}?action=domainemailforwarding"> 
    <input type="hidden" name="domainid" value="{$domainid}"> 
    <p align="center"> 
    <input type="submit" value="{$LANG.domainemailforwarding}" class="button">} 
    </p> 
    </form></td> 
    {/if} 
    {if $dnsmanagement} 
    <td><form method="post" action="{$smarty.server.PHP_SELF}?action=domaindns"> 
    <input type="hidden" name="domainid" value="{$domainid}"> 
    <p align="center"> 
    {<input type="submit" value="{$LANG.domaindnsmanagement}" class="button">} 
    </p> 
    </form></td> 
    {/if} 
+0

Добавить теги для языков программирования и используемых фреймворков. –

ответ

1

Я предлагаю писать вспомогательную функцию и называть его в верхней части TPL файла и передавая идентификатор домена к нему.

Затем вы можете использовать внутреннюю функцию API WHMCS Domain Nameservers, чтобы получить сервер имен доменов, а затем сравнить их с серверами имен по умолчанию в tblconfiguration в базе данных WHMCS.

Что-то вроде этого

{php} 
    // include our helper php file 
    require_once(dirname(__FILE__).'/Helper.php'); 

    //get domain id from our template variables 
    $domainid = $this->get_template_vars('domainid'); 

    //call to our helper function passing the domain ID 
    $hasCustomeNameServers = Helper::hasCustomNameServers($domainid); 

    //Once we've compared the nameservers agains the default ones we write 
    //our binary check to the template 
    if($hasCustomeNameServers >0){ 
    $this->assign('hasCustomeNameServers',true);} 
{/php} 

Тогда в сторону нашего helper.php мы имеем что-то вроде следующего

<?php 

class Helper { 
    public static function hasCustomNameServers($domainid) { 

     $isCustom = 0; 

    //Interal API call to get the domains nameservers 
    $command = "domaingetnameservers"; 
    $adminuser = "admin"; 
    $values["domainid"] = $domainid; 

    $results = localAPI($command,$values,$adminuser); 

    //get default nameservers 
    $defautName1 =''; 
    $sql = mysql_query('SELECT value FROM tblconfiguration '. 
      ' WHERE setting = "DefaultNameserver1"'); 
    if ($res = mysql_fetch_assoc($sql)) { 
    $defautName1 = $res["value"];} 

    $defautName2 =''; 
    $sql = mysql_query('SELECT value FROM tblconfiguration '. 
      ' WHERE setting = "DefaultNameserver2"'); 
    if ($res = mysql_fetch_assoc($sql)) { 
    $defautName2 = $res["value"];} 

    //compare results 
    foreach ($results as &$value) { 
      if($value == $defautName1 || $value == $defautName2){ 
      $isCustom++; 
      } 
    } 

    return $isCustom; 

    } 
} 

Теперь это просто вопрос на шаблоне, чтобы обернуть {если $ emailforwarding} и {if $ dnsmanagement} блокируют наш чек {if! hasCustomeNameServers}

Я надеюсь, что это поможет вам в правильном направлении, это отнюдь не всеобъемлющий ответ bu t является руководством к подходу, который, как я думаю, вам следует предпринять при реализации вашего решения.

+0

Блестящий материал, спасибо. – TRLUK

Смежные вопросы