¡Bienvenido a Foros Hosting ...!

Aquí encontraras una experiencia comunitaria para aprender todo lo relacionado con hosting.

Encuentra soporte en español para: Web Hosting, Servidores Dedicados, Servidores VPS, Clouds, Seguridad, Programación y muchos más.

Obtén más experiencia como Administrador de Sistemas, Crea tu propia empresa de hosting. Comparte tus conocimientos de forma libre.

¡Regístrate ahora y forma parte de nuestra comunidad!

Aporte hook para plugin cpanel (Acceder a la cuenta de cPanel desde el propio dominio de la cuenta cPanel)

JesusSuarez

Jesus Suarez
Miembro del equipo
Administradores
9/22/19
146
82
28
Bogotá - CO
cangurohosting.com
Seguidores
1
Como el titulo lo dice, he modificado un hook "viejo" que un cliente me paso para agregarle un par de funcionalidades al plugin original de cPanel/WHM de WHMCS. (el que viene incluido tiene varias características erróneas).

El plugin original de WHMCS que es el que muestro en la foto siguiente:

descarga - 2020-07-28T125354.811.png

El problema del siguiente plugin es que cuando le das a ingresar a webmail / cPanel, accede mediante el hostname del servidor cPanel. osea mediante (ejemplo): cpanel.tuempresa.com

el problema de esto es que hay usuarios que quieren acceder mediante el dominio de ellos. que además es una forma de mantener su marca y hacerlo mas personalizado para los usuarios. es por esto que mi cliente quería esto. me envio un hook "viejo" que fue creado por un usuario de whmcs.

el hook cuenta con las siguientes características:

* Agrega un nuevo panel para agregar los links/botones (cpanel, webmail, whm).
* Agrega botones con las clases de bootstrap 3 que tiene whmcs
* Oculta el botón WHM si la cuenta no es una cuenta revendedor
* Cambia los links de los botones de Ingresar cpanel, webmail, whm de por ejemplo: tu hostname.tuempresa.com a tudominio.com/cpanel, tudominio.com/webmail, tudominio.com:2086
* Chequea si el dominio hacia de la cuenta tiene cloudflare, si el dominio tiene cloudflare entonces dejará el panel original del plugin de cpanel de whmcs (esta condición se hace puesto a que si el dominio tiene el proxy cdn de cloudflare activo el usuario no puede acceder mediante suempresa.com/cpanel

Dicho esto dejo el codigo que deben pegar en WHMCS/includes/hook

Crear un archivo en esta carpeta llamado cpanel_url.php

Código:
		<?php
use WHMCS\View\Menu\Item as MenuItem;
add_hook('ClientAreaPrimarySidebar', 1, function(MenuItem $primarySidebar) {
    $service = Menu::context('service');
    $servertype = $service->product->servertype;
    if ($servertype!="cpanel"){
        return;
    }
     $domain = $service->domain;
    $username = $service->username;
    $cloudflare = 'http://'.$domain.'';
    $get_cf = get_headers($cloudflare, 1)[Server];
    if ($get_cf != 'cloudflare'){
        $cpanelhref = 'https://'.$domain.':2083/login/';
        $webmailhref = 'https://'.$domain.':2096/login/';
        $webwhmhref = 'https://'.$domain.':2087/login/';
        $command = 'DecryptPassword';
        $postData = array('password2' => $service->password);
        $results = localAPI($command, $postData);
        $password = $results['password'];
        if ($service->product->type=="reselleraccount"){
            $whmcpanel = '<input class="btn btn-primary btn-sm block-btn mb-1" type="submit" formaction="'.$webwhmhref.'" value="'.Lang::trans('cpanelwhmlogin').'"/>';
         }
        $bodyhtml = '<form method="post" action="'.$cpanelhref.'" target="_blank">
        <input type="hidden" name="user" value ="'.$username.'"/>
        <input type="hidden" name="pass" value ="'.$password.'"/>
        <input class="btn btn-success btn-sm block-btn mb-1" type="submit" value="'.Lang::trans('cpanellogin').'"/>
        <input class="btn btn-danger btn-sm block-btn mb-1" type="submit" formaction="'.$webmailhref.'" value="'.Lang::trans('cpanelwebmaillogin').'"/>'.$whmcpanel.''.'
        </form>
        <a href="/contact.php" class="btn btn-info btn-sm block-btn mb-1" data-toggle="tooltip" data-placement="bottom" title="Si tiene problemas para ingresar a su panel, puede deberse a que usa una CDN o proxy como CloudFlare en su dominio, en este caso, contacte con soporte.">Ayuda <i class="fas fa-question-circle"></i></a>
        <style>.block-btn {width: 100%;} .mb-1 {margin-bottom:5px;}</style>';
        if (!is_null($primarySidebar->getChild('Service Details Actions'))) {
                $primarySidebar->getChild('Service Details Actions')
                                ->removeChild('Login to cPanel')
                                ->removeChild('Login to Webmail')
                                ->removeChild('Login to WHM');
        }
                $primarySidebar->addChild('cPanel Login', array(
                                'label' => 'Ingresar a cPanel/WHM',
                                'icon' => 'fa-server',
                                'order' => 20,
                                'footerHtml' => $bodyhtml,
                                ));
    }
});
		

Dejo una captura de como se ve para revendedores WHM:

descarga - 2020-07-28T020535.760.png

Y como se ve para cuenta de cPanel normales:

descarga - 2020-07-28T020724.158.png


si quieren ver el post original donde lo he publicado puede ir al siguiente link:
Por favor, Acceder o Registro para ver las URLs y el contenido!


Espero que les guste!
 
Última edición:

Hosting por ...
Arriba Pie