[Custom] Badges Widget Admin Homepage pada WHMCS 8


IDTECHDEV

Beginner 2.0
Hi DWH Members!

Saya akan membagikan module widget yang saya custom untuk menampilkan informasi badges statistik yang lebih lengkap.
Adapun badges yang dibuat adalah untuk menampilkan :
  • Domain ( Active, Expired)
  • Hosting ( Suspended, Terminated )
  • Invoice ( Unpaid, Overdue )
Module ini dapat digunakan untuk WHMCS 7.10.1, 7.10.2, 8.0.0, 8.0.1, 8.0.2, 8.0.3, 8.0.4
Adapun module ini saya buat atas inpirasi dari thread https://www.diskusiwebhosting.com/threads/share-custom-badge-statistic-di-admin-whmcs.35000/ dimana custom yang digunakan dalam thread tersebut belum support untuk WHMCS versi 8. Oleh karenanya saya mencoba untuk membuatnya.

Berikut screenshot tampilan yang dihasilkan dari widget badges ini :
Screenshot_2020-11-28 WHMCS - Dashboard.png


Silakan backup modules > widgets > Badges.php kemudian replace semua kodenya dengan ini :
PHP:
<?php

namespace WHMCS\Module\Widget;

use WHMCS\Carbon;
use WHMCS\Clients;
use WHMCS\Module\AbstractWidget;
use WHMCS\Module\Queue as ModuleQueue;
use WHMCS\Orders;
use WHMCS\Database\Capsule;
use WHMCS\Billing\Invoice;

/**
 * Badges Widget.
 * Custom by Rahmat Sabilludin
 *
 * @copyright Copyright (c) WHMCS Limited 2005-2018
 * @license https://www.whmcs.com/license/ WHMCS Eula
 */
class Badges extends AbstractWidget
{
    protected $title = 'Badges';
    protected $description = '';
    protected $columns = 3;
    protected $weight = 0;
    protected $wrapper = false;
    protected $cache = true;
    protected $cacheExpiry = 120;
    protected $draggable = false;

    public function getData()
    {
        $clients = new Clients();
        $orders = new Orders();

        $ticketCounts = localApi('GetTicketCounts', array());

        return array(
            'pendingOrders' => $orders->getPendingCount(),
            'ticketsAwaitingReply' => $ticketCounts['awaitingReply'],
            'cancellations' => $clients->getNumberOfOpenCancellationRequests(),
            'moduleQueueCount' => ModuleQueue::incomplete()->count(),
            'unpaidInvoices' => Capsule::table('tblinvoices')->where('status','Unpaid')->count(),
            'overdueInvoices' => Invoice::overdue()->count(),
            'suspendedServices' => Capsule::table('tblhosting')->where('domainstatus','Suspended')->count(),
            'terminatedServices' => Capsule::table('tblhosting')->where('domainstatus','Terminated')->count(),
            'activeDomains' => Capsule::table('tbldomains')->where('status','Active')->count(),
            'expiredDomains' => Capsule::table('tbldomains')->where('status','Expired')->count(),
        );
    }

    public function generateOutput($data)
    {
        $pendingOrders = (int) $data['pendingOrders'];
        $awaitingReply = (int) $data['ticketsAwaitingReply'];
        $pendingCancellations = (int) $data['cancellations'];
        $moduleQueueCount = (int) $data['moduleQueueCount'];
        $unpaidInvoices = (int) $data['unpaidInvoices'];
        $overdueInvoices = (int) $data['overdueInvoices'];
        $suspendedServices = (int) $data['suspendedServices'];
        $terminatedServices = (int) $data['terminatedServices'];
        $activeDomains = (int) $data['activeDomains'];
        $expiredDomains = (int) $data['expiredDomains'];

        return <<<EOF
<div class="row home-status-badge-row">
    <div class="col-sm-3">

        <div class="health-status-block status-badge-green clearfix">
            <div class="icon">
                <a href="orders.php">
                    <i class="fas fa-shopping-cart"></i>
                </a>
            </div>
            <div class="detail">
                <a href="orders.php?status=Pending">
                    <span class="count">{$pendingOrders}</span>
                    <span class="desc">Pending Orders</span>
                </a>
            </div>
        </div>

    </div>
    <div class="col-sm-3">

        <div class="health-status-block status-badge-pink clearfix">
            <div class="icon">
                <a href="supporttickets.php">
                    <i class="fas fa-comment"></i>
                </a>
            </div>
            <div class="detail">
                <a href="supporttickets.php">
                    <span class="count">{$awaitingReply}</span>
                    <span class="desc">Tickets Waiting</span>
                </a>
            </div>
        </div>

    </div>
    <div class="col-sm-3">

        <div class="health-status-block status-badge-orange clearfix">
            <div class="icon">
                <a href="cancelrequests.php">
                    <i class="fas fa-ban"></i>
                </a>
            </div>
            <div class="detail">
                <a href="cancelrequests.php">
                    <span class="count">{$pendingCancellations}</span>
                    <span class="desc">Pending Cancellations</span>
                </a>
            </div>
        </div>

    </div>
    <div class="col-sm-3">

        <div class="health-status-block status-badge-cyan clearfix">
            <div class="icon">
                <a href="modulequeue.php">
                    <i class="fas fa-exclamation-triangle"></i>
                </a>
            </div>
            <div class="detail">
                <a href="modulequeue.php">
                    <span class="count">{$moduleQueueCount}</span>
                    <span class="desc">Pending Module Actions</span>
                </a>
            </div>
        </div>

    </div>
    <div class="col-sm-2 col-xs-6 tile">
        <div class="health-status-block btn-primary clearfix">
            <div class="icon">
                <a href="invoices.php?status=Unpaid">
                    <i class="fas fa-cog"></i>
                </a>
            </div>
            <div class="detail">
                <a href="invoices.php?status=Unpaid">
                    <span class="count">{$unpaidInvoices}</span>
                    <span class="desc">Unpaid Invoices</span>
                </a>
            </div>
        </div>
    </div>

    <div class="col-sm-2 col-xs-6 tile">
        <div class="health-status-block btn-warning clearfix">
            <div class="icon">
                <a href="invoices.php?status=Overdue">
                    <i class="fas fa-trash"></i>
                </a>
            </div>
            <div class="detail">
                <a href="invoices.php?status=Overdue">
                    <span class="count">{$overdueInvoices}</span>
                    <span class="desc">Overdue Invoices</span>
                </a>
            </div>
        </div>
    </div>

    <div class="col-sm-2 col-xs-6 tile">
        <div class="health-status-block btn-info clearfix">
            <div class="icon">
                <a href="services?status=suspended">
                    <i class="fas fa-rocket"></i>
                </a>
            </div>
            <div class="detail">
                <a href="services?status=suspended">
                    <span class="count">{$suspendedServices}</span>
                    <span class="desc">Suspended Services</span>
                </a>
            </div>
        </div>
    </div>

    <div class="col-sm-2 col-xs-6 tile">
        <div class="health-status-block btn-danger clearfix">
            <div class="icon">
                <a href="services?status=terminated">
                    <i class="fas fa-info-circle"></i>
                </a>
            </div>
            <div class="detail">
                <a href="services?status=terminated">
                    <span class="count">{$terminatedServices}</span>
                    <span class="desc">Terminated Services</span>
                </a>
            </div>
        </div>
    </div>

    <div class="col-sm-2 col-xs-6 tile">
        <div class="health-status-block btn-success clearfix">
            <div class="icon">
                <a href="domains?status=active">
                    <i class="fas fa-globe"></i>
                </a>
            </div>
            <div class="detail">
                <a href="domains?status=active">
                    <span class="count">{$activeDomains}</span>
                    <span class="desc">Active Domains</span>
                </a>
            </div>
        </div>
    </div>

    <div class="col-sm-2 col-xs-6 tile">
        <div class="health-status-block btn-warning clearfix">
            <div class="icon">
                <a href="domains?status=expired">
                    <i class="fas fa-exclamation-circle"></i>
                </a>
            </div>
            <div class="detail">
                <a href="domains?status=expired">
                    <span class="count">{$expiredDomains}</span>
                    <span class="desc">Expired Domains</span>
                </a>
            </div>
        </div>
    </div>

</div>
EOF;
    }
}

Selamat mencoba & semoga bermanfaat :8:
Terimakasih
 

kuninganhosting

Apprentice 1.0
Verified Provider
Hi DWH Members!

Saya akan membagikan module widget yang saya custom untuk menampilkan informasi badges statistik yang lebih lengkap.
Adapun badges yang dibuat adalah untuk menampilkan :
  • Domain ( Active, Expired)
  • Hosting ( Suspended, Terminated )
  • Invoice ( Unpaid, Overdue )
Module ini dapat digunakan untuk WHMCS 7.10.1, 7.10.2, 8.0.0, 8.0.1, 8.0.2, 8.0.3, 8.0.4
Adapun module ini saya buat atas inpirasi dari thread https://www.diskusiwebhosting.com/threads/share-custom-badge-statistic-di-admin-whmcs.35000/ dimana custom yang digunakan dalam thread tersebut belum support untuk WHMCS versi 8. Oleh karenanya saya mencoba untuk membuatnya.

Berikut screenshot tampilan yang dihasilkan dari widget badges ini :
View attachment 5402


Silakan backup modules > widgets > Badges.php kemudian replace semua kodenya dengan ini :
PHP:
<?php

namespace WHMCS\Module\Widget;

use WHMCS\Carbon;
use WHMCS\Clients;
use WHMCS\Module\AbstractWidget;
use WHMCS\Module\Queue as ModuleQueue;
use WHMCS\Orders;
use WHMCS\Database\Capsule;
use WHMCS\Billing\Invoice;

/**
* Badges Widget.
* Custom by Rahmat Sabilludin
*
* @copyright Copyright (c) WHMCS Limited 2005-2018
* @license https://www.whmcs.com/license/ WHMCS Eula
*/
class Badges extends AbstractWidget
{
    protected $title = 'Badges';
    protected $description = '';
    protected $columns = 3;
    protected $weight = 0;
    protected $wrapper = false;
    protected $cache = true;
    protected $cacheExpiry = 120;
    protected $draggable = false;

    public function getData()
    {
        $clients = new Clients();
        $orders = new Orders();

        $ticketCounts = localApi('GetTicketCounts', array());

        return array(
            'pendingOrders' => $orders->getPendingCount(),
            'ticketsAwaitingReply' => $ticketCounts['awaitingReply'],
            'cancellations' => $clients->getNumberOfOpenCancellationRequests(),
            'moduleQueueCount' => ModuleQueue::incomplete()->count(),
            'unpaidInvoices' => Capsule::table('tblinvoices')->where('status','Unpaid')->count(),
            'overdueInvoices' => Invoice::overdue()->count(),
            'suspendedServices' => Capsule::table('tblhosting')->where('domainstatus','Suspended')->count(),
            'terminatedServices' => Capsule::table('tblhosting')->where('domainstatus','Terminated')->count(),
            'activeDomains' => Capsule::table('tbldomains')->where('status','Active')->count(),
            'expiredDomains' => Capsule::table('tbldomains')->where('status','Expired')->count(),
        );
    }

    public function generateOutput($data)
    {
        $pendingOrders = (int) $data['pendingOrders'];
        $awaitingReply = (int) $data['ticketsAwaitingReply'];
        $pendingCancellations = (int) $data['cancellations'];
        $moduleQueueCount = (int) $data['moduleQueueCount'];
        $unpaidInvoices = (int) $data['unpaidInvoices'];
        $overdueInvoices = (int) $data['overdueInvoices'];
        $suspendedServices = (int) $data['suspendedServices'];
        $terminatedServices = (int) $data['terminatedServices'];
        $activeDomains = (int) $data['activeDomains'];
        $expiredDomains = (int) $data['expiredDomains'];

        return <<<EOF
<div class="row home-status-badge-row">
    <div class="col-sm-3">

        <div class="health-status-block status-badge-green clearfix">
            <div class="icon">
                <a href="orders.php">
                    <i class="fas fa-shopping-cart"></i>
                </a>
            </div>
            <div class="detail">
                <a href="orders.php?status=Pending">
                    <span class="count">{$pendingOrders}</span>
                    <span class="desc">Pending Orders</span>
                </a>
            </div>
        </div>

    </div>
    <div class="col-sm-3">

        <div class="health-status-block status-badge-pink clearfix">
            <div class="icon">
                <a href="supporttickets.php">
                    <i class="fas fa-comment"></i>
                </a>
            </div>
            <div class="detail">
                <a href="supporttickets.php">
                    <span class="count">{$awaitingReply}</span>
                    <span class="desc">Tickets Waiting</span>
                </a>
            </div>
        </div>

    </div>
    <div class="col-sm-3">

        <div class="health-status-block status-badge-orange clearfix">
            <div class="icon">
                <a href="cancelrequests.php">
                    <i class="fas fa-ban"></i>
                </a>
            </div>
            <div class="detail">
                <a href="cancelrequests.php">
                    <span class="count">{$pendingCancellations}</span>
                    <span class="desc">Pending Cancellations</span>
                </a>
            </div>
        </div>

    </div>
    <div class="col-sm-3">

        <div class="health-status-block status-badge-cyan clearfix">
            <div class="icon">
                <a href="modulequeue.php">
                    <i class="fas fa-exclamation-triangle"></i>
                </a>
            </div>
            <div class="detail">
                <a href="modulequeue.php">
                    <span class="count">{$moduleQueueCount}</span>
                    <span class="desc">Pending Module Actions</span>
                </a>
            </div>
        </div>

    </div>
    <div class="col-sm-2 col-xs-6 tile">
        <div class="health-status-block btn-primary clearfix">
            <div class="icon">
                <a href="invoices.php?status=Unpaid">
                    <i class="fas fa-cog"></i>
                </a>
            </div>
            <div class="detail">
                <a href="invoices.php?status=Unpaid">
                    <span class="count">{$unpaidInvoices}</span>
                    <span class="desc">Unpaid Invoices</span>
                </a>
            </div>
        </div>
    </div>

    <div class="col-sm-2 col-xs-6 tile">
        <div class="health-status-block btn-warning clearfix">
            <div class="icon">
                <a href="invoices.php?status=Overdue">
                    <i class="fas fa-trash"></i>
                </a>
            </div>
            <div class="detail">
                <a href="invoices.php?status=Overdue">
                    <span class="count">{$overdueInvoices}</span>
                    <span class="desc">Overdue Invoices</span>
                </a>
            </div>
        </div>
    </div>

    <div class="col-sm-2 col-xs-6 tile">
        <div class="health-status-block btn-info clearfix">
            <div class="icon">
                <a href="services?status=suspended">
                    <i class="fas fa-rocket"></i>
                </a>
            </div>
            <div class="detail">
                <a href="services?status=suspended">
                    <span class="count">{$suspendedServices}</span>
                    <span class="desc">Suspended Services</span>
                </a>
            </div>
        </div>
    </div>

    <div class="col-sm-2 col-xs-6 tile">
        <div class="health-status-block btn-danger clearfix">
            <div class="icon">
                <a href="services?status=terminated">
                    <i class="fas fa-info-circle"></i>
                </a>
            </div>
            <div class="detail">
                <a href="services?status=terminated">
                    <span class="count">{$terminatedServices}</span>
                    <span class="desc">Terminated Services</span>
                </a>
            </div>
        </div>
    </div>

    <div class="col-sm-2 col-xs-6 tile">
        <div class="health-status-block btn-success clearfix">
            <div class="icon">
                <a href="domains?status=active">
                    <i class="fas fa-globe"></i>
                </a>
            </div>
            <div class="detail">
                <a href="domains?status=active">
                    <span class="count">{$activeDomains}</span>
                    <span class="desc">Active Domains</span>
                </a>
            </div>
        </div>
    </div>

    <div class="col-sm-2 col-xs-6 tile">
        <div class="health-status-block btn-warning clearfix">
            <div class="icon">
                <a href="domains?status=expired">
                    <i class="fas fa-exclamation-circle"></i>
                </a>
            </div>
            <div class="detail">
                <a href="domains?status=expired">
                    <span class="count">{$expiredDomains}</span>
                    <span class="desc">Expired Domains</span>
                </a>
            </div>
        </div>
    </div>

</div>
EOF;
    }
}

Selamat mencoba & semoga bermanfaat :8:
Terimakasih
sudah di coba, dan berhasil. Terima kasih @IDTECHDEV
 

IDTECHDEV

Beginner 2.0
sudah di coba, dan berhasil. Terima kasih @IDTECHDEV
mantap haturnuhun @IDTECHDEV

:113::113::113:
Sama-sama :)

Atau kalau mau dibuat file terpisah (tidak nebeng di widget Badges default milik WHMCS) agar tidak tertimpa dengan update patch yang mungkin ada. Bisa dipisah dengan membuat file baru di modules > widgets > BadgesInfo.php dan isikan dengan :
PHP:
<?php

namespace WHMCS\Module\Widget;

use WHMCS\Carbon;
use WHMCS\Module\AbstractWidget;
use WHMCS\Database\Capsule;
use WHMCS\Billing\Invoice;

/**
* BadgesInfo Widget.
*
* @copyright Copyright (c) Rahmat Sabilludin
*/
class BadgesInfo extends AbstractWidget
{
    protected $title = 'BadgesInfo';
    protected $description = '';
    protected $columns = 3;
    protected $weight = 0;
    protected $wrapper = false;
    protected $cache = true;
    protected $cacheExpiry = 120;
    protected $draggable = false;

    public function getData()
    {

        return array(
            'unpaidInvoices' => Capsule::table('tblinvoices')->where('status','Unpaid')->count(),
            'overdueInvoices' => Invoice::overdue()->count(),
            'suspendedServices' => Capsule::table('tblhosting')->where('domainstatus','Suspended')->count(),
            'terminatedServices' => Capsule::table('tblhosting')->where('domainstatus','Terminated')->count(),
            'activeDomains' => Capsule::table('tbldomains')->where('status','Active')->count(),
            'expiredDomains' => Capsule::table('tbldomains')->where('status','Expired')->count(),
        );
    }

    public function generateOutput($data)
    {
        $unpaidInvoices = (int) $data['unpaidInvoices'];
        $overdueInvoices = (int) $data['overdueInvoices'];
        $suspendedServices = (int) $data['suspendedServices'];
        $terminatedServices = (int) $data['terminatedServices'];
        $activeDomains = (int) $data['activeDomains'];
        $expiredDomains = (int) $data['expiredDomains'];

        return <<<EOF
<div class="row home-status-badge-row">
    <div class="col-sm-2 col-xs-6 tile">
        <div class="health-status-block btn-primary clearfix">
            <div class="icon">
                <a href="invoices.php?status=Unpaid">
                    <i class="fas fa-cog"></i>
                </a>
            </div>
            <div class="detail">
                <a href="invoices.php?status=Unpaid">
                    <span class="count">{$unpaidInvoices}</span>
                    <span class="desc">Unpaid Invoices</span>
                </a>
            </div>
        </div>
    </div>

    <div class="col-sm-2 col-xs-6 tile">
        <div class="health-status-block btn-warning clearfix">
            <div class="icon">
                <a href="invoices.php?status=Overdue">
                    <i class="fas fa-trash"></i>
                </a>
            </div>
            <div class="detail">
                <a href="invoices.php?status=Overdue">
                    <span class="count">{$overdueInvoices}</span>
                    <span class="desc">Overdue Invoices</span>
                </a>
            </div>
        </div>
    </div>

    <div class="col-sm-2 col-xs-6 tile">
        <div class="health-status-block btn-info clearfix">
            <div class="icon">
                <a href="services?status=suspended">
                    <i class="fas fa-rocket"></i>
                </a>
            </div>
            <div class="detail">
                <a href="services?status=suspended">
                    <span class="count">{$suspendedServices}</span>
                    <span class="desc">Suspended Services</span>
                </a>
            </div>
        </div>
    </div>

    <div class="col-sm-2 col-xs-6 tile">
        <div class="health-status-block btn-danger clearfix">
            <div class="icon">
                <a href="services?status=terminated">
                    <i class="fas fa-info-circle"></i>
                </a>
            </div>
            <div class="detail">
                <a href="services?status=terminated">
                    <span class="count">{$terminatedServices}</span>
                    <span class="desc">Terminated Services</span>
                </a>
            </div>
        </div>
    </div>

    <div class="col-sm-2 col-xs-6 tile">
        <div class="health-status-block btn-success clearfix">
            <div class="icon">
                <a href="domains?status=active">
                    <i class="fas fa-globe"></i>
                </a>
            </div>
            <div class="detail">
                <a href="domains?status=active">
                    <span class="count">{$activeDomains}</span>
                    <span class="desc">Active Domains</span>
                </a>
            </div>
        </div>
    </div>

    <div class="col-sm-2 col-xs-6 tile">
        <div class="health-status-block btn-warning clearfix">
            <div class="icon">
                <a href="domains?status=expired">
                    <i class="fas fa-exclamation-circle"></i>
                </a>
            </div>
            <div class="detail">
                <a href="domains?status=expired">
                    <span class="count">{$expiredDomains}</span>
                    <span class="desc">Expired Domains</span>
                </a>
            </div>
        </div>
    </div>

</div>
EOF;
    }
}
 

Hosterbyte

Apprentice 2.0
Verified Provider
telat baca. saya coba dulu
 

Hosterbyte

Apprentice 2.0
Verified Provider
Sama-sama :)

Atau kalau mau dibuat file terpisah (tidak nebeng di widget Badges default milik WHMCS) agar tidak tertimpa dengan update patch yang mungkin ada. Bisa dipisah dengan membuat file baru di modules > widgets > BadgesInfo.php dan isikan dengan :
PHP:
<?php

namespace WHMCS\Module\Widget;

use WHMCS\Carbon;
use WHMCS\Module\AbstractWidget;
use WHMCS\Database\Capsule;
use WHMCS\Billing\Invoice;

/**
* BadgesInfo Widget.
*
* @copyright Copyright (c) Rahmat Sabilludin
*/
class BadgesInfo extends AbstractWidget
{
    protected $title = 'BadgesInfo';
    protected $description = '';
    protected $columns = 3;
    protected $weight = 0;
    protected $wrapper = false;
    protected $cache = true;
    protected $cacheExpiry = 120;
    protected $draggable = false;

    public function getData()
    {

        return array(
            'unpaidInvoices' => Capsule::table('tblinvoices')->where('status','Unpaid')->count(),
            'overdueInvoices' => Invoice::overdue()->count(),
            'suspendedServices' => Capsule::table('tblhosting')->where('domainstatus','Suspended')->count(),
            'terminatedServices' => Capsule::table('tblhosting')->where('domainstatus','Terminated')->count(),
            'activeDomains' => Capsule::table('tbldomains')->where('status','Active')->count(),
            'expiredDomains' => Capsule::table('tbldomains')->where('status','Expired')->count(),
        );
    }

    public function generateOutput($data)
    {
        $unpaidInvoices = (int) $data['unpaidInvoices'];
        $overdueInvoices = (int) $data['overdueInvoices'];
        $suspendedServices = (int) $data['suspendedServices'];
        $terminatedServices = (int) $data['terminatedServices'];
        $activeDomains = (int) $data['activeDomains'];
        $expiredDomains = (int) $data['expiredDomains'];

        return <<<EOF
<div class="row home-status-badge-row">
    <div class="col-sm-2 col-xs-6 tile">
        <div class="health-status-block btn-primary clearfix">
            <div class="icon">
                <a href="invoices.php?status=Unpaid">
                    <i class="fas fa-cog"></i>
                </a>
            </div>
            <div class="detail">
                <a href="invoices.php?status=Unpaid">
                    <span class="count">{$unpaidInvoices}</span>
                    <span class="desc">Unpaid Invoices</span>
                </a>
            </div>
        </div>
    </div>

    <div class="col-sm-2 col-xs-6 tile">
        <div class="health-status-block btn-warning clearfix">
            <div class="icon">
                <a href="invoices.php?status=Overdue">
                    <i class="fas fa-trash"></i>
                </a>
            </div>
            <div class="detail">
                <a href="invoices.php?status=Overdue">
                    <span class="count">{$overdueInvoices}</span>
                    <span class="desc">Overdue Invoices</span>
                </a>
            </div>
        </div>
    </div>

    <div class="col-sm-2 col-xs-6 tile">
        <div class="health-status-block btn-info clearfix">
            <div class="icon">
                <a href="services?status=suspended">
                    <i class="fas fa-rocket"></i>
                </a>
            </div>
            <div class="detail">
                <a href="services?status=suspended">
                    <span class="count">{$suspendedServices}</span>
                    <span class="desc">Suspended Services</span>
                </a>
            </div>
        </div>
    </div>

    <div class="col-sm-2 col-xs-6 tile">
        <div class="health-status-block btn-danger clearfix">
            <div class="icon">
                <a href="services?status=terminated">
                    <i class="fas fa-info-circle"></i>
                </a>
            </div>
            <div class="detail">
                <a href="services?status=terminated">
                    <span class="count">{$terminatedServices}</span>
                    <span class="desc">Terminated Services</span>
                </a>
            </div>
        </div>
    </div>

    <div class="col-sm-2 col-xs-6 tile">
        <div class="health-status-block btn-success clearfix">
            <div class="icon">
                <a href="domains?status=active">
                    <i class="fas fa-globe"></i>
                </a>
            </div>
            <div class="detail">
                <a href="domains?status=active">
                    <span class="count">{$activeDomains}</span>
                    <span class="desc">Active Domains</span>
                </a>
            </div>
        </div>
    </div>

    <div class="col-sm-2 col-xs-6 tile">
        <div class="health-status-block btn-warning clearfix">
            <div class="icon">
                <a href="domains?status=expired">
                    <i class="fas fa-exclamation-circle"></i>
                </a>
            </div>
            <div class="detail">
                <a href="domains?status=expired">
                    <span class="count">{$expiredDomains}</span>
                    <span class="desc">Expired Domains</span>
                </a>
            </div>
        </div>
    </div>

</div>
EOF;
    }
}


Tuan @IDTECHDEV untuk code ini apakah cukup penambahan file aja atau ada nyisipin include?
 

Top