Hola @hector_9426,
@natalia8994 tiene razón. La función initContent() en un AdminAjaxController se deja vacía intencionadamente porque estos controladores están pensados para devolver datos (normalmente JSON) a peticiones XMLHttpRequest, no para cargar una interfaz de usuario completa. Si accedes a su URL directamente desde el navegador, PrestaShop no tiene nada que mostrar por defecto, de ahí la página en blanco.
Para manejar esto de una manera más elegante y evitar la página en blanco en caso de acceso directo no deseado, puedes modificar tu método initContent() para que redirija al dashboard del panel de administración si detecta que la petición no es AJAX. Así, si alguien intenta acceder directamente, será enviado a un lugar válido en lugar de ver una página vacía.
Aquí tienes cómo podrías ajustarlo en myquill/controllers/admin/AdminMyquillAjaxController.php:
public function initContent()
{
// Si la petición NO es AJAX, redirigimos al dashboard.
if (!isset($_SERVER['HTTP_X_REQUESTED_WITH']) || strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) !== 'xmlhttprequest') {
Tools::redirectAdmin($this->context->link->getAdminLink('AdminDashboard'));
}
// Si es una petición AJAX, el contenido se generará en los métodos ajaxProcess*.
// No es necesario renderizar un template aquí.
}
Este código revisa si el encabezado HTTP_X_REQUESTED_WITH está presente y es 'xmlhttprequest', que es el estándar para identificar una petición AJAX. Si no lo es, redirige al usuario al dashboard. Así, evitas la página en blanco y le das un comportamiento esperado.