HTML-string pairs. It renders each entry as a table row with the * label on the left and the raw HTML inserted verbatim on the right. There's * no way to return a Smarty template reference from that hook — WHMCS doesn't * know how to render one in that context. * * So we concatenate HTML here. All variable interpolation uses htmlspecialchars() * at the PHP boundary — never trust that a value passed in is safe for HTML. * * ASSET INJECTION * --------------- * Some renderers (serverInfo, rdnsSection) embed and
Name:
Hostname:
Memory:
CPU:
IPv4:
IPv6:
Storage:
Traffic:
EOT; } /** * Render the admin Reverse DNS section for the services tab. * * Ships an empty container + a Reconcile button. Data is loaded client-side via * the admin rdnsStatus AJAX endpoint once the page opens. The JS function * vfAdminLoadRdns (defined in templates/js/module.js) populates #vf-rdns-list * and wires up the Reconcile button's onclick to admin.php?action=rdnsReconcile. * * @param string $systemUrl WHMCS system URL * @param int $serviceId WHMCS service ID * @return string HTML fragment for the admin services tab */ public static function rdnsSection($systemUrl, $serviceId) { $systemUrl = htmlspecialchars($systemUrl, ENT_QUOTES, 'UTF-8'); $serviceId = (int) $serviceId; return <<
Loading reverse DNS…
EOT; } }