Aplicación en IFrame
Navigate CMS permite la incrustación de aplicaciones web externas a través de un IFrame. Este mecanismo es útil para aplicaciones de estadísticas web, correo en línea, interfaces, utilidades, etc. Un buen ejemplo de esta característica es la extensión phpMyAdmin.
Debido a las grandes posibilidades de personalización de phpMyAdmin, la interfaz de la extensión está muy integrada en Navigate CMS (¡además los dos proyectos utilizan el mismo conjunto de iconos!). Vamos a empezar a explicar cómo funciona con la definición de la extensión:
{
"title": "phpMyAdmin",
"version": "1.0",
"author": "Naviwebs",
"website": "http://www.phpmyadmin.net",
"description": "Runs phpMyAdmin in an IFrame to access the configured database.",
"type": "admin",
"run": true,
"languages":
{
"en": "i18n/en.json"
}
}
La clave aquí es la propiedad "run": true, consiguiendo que la extensión sea ejecutable haciendo doble clic en las miniaturas de las funciones de la extensión.
Las extensiones IFrame no requieren ningún archivo PHP del tipo "extension_name.php", pero sí requieren un archivo llamado "run.php" con, al menos, una función existente denominada "nombredelaextensión_run":
<?php
function phpmyadmin_run()
{
global $layout;
$content = "";
$content.= '<iframe id="navigate-content-iframe"
src="about:blank"
border="0"
frameborder="0"
allowtransparency="true"
height="100%"
width="100%">
</iframe>';
$layout->add_script('
$(window).load(function()
{
$("#navigate-content").css({"padding": "0px"});
$("#navigate-content-iframe").attr(
"src",
"'.NAVIGATE_URL.'/plugins/phpmyadmin/load.php"
);
$(window).trigger("resize");
});
');
return $content;
}
?>
Por lo tanto, la función crea algo de código HTML/JS y Navigate CMS lo mostrará en la zona de contenido principal de la aplicación. De hecho, la función es responsable de crear el IFrame o cualquier otro componente que puedas necesitar (¿alguien mencionó aplicaciones flash? ;). Con este método, puedes incluso crear tus propias funciones compatibles con Navigate CMS usando partes de la interfaz como pestañas, formularios, listas, etc..
En el ejemplo, $content contiene el código HTML (que se entrega a Navigate CMS), mientras que el código Javascript se agrega al objeto $layout, que almacena el código de la página entera. Si necesitas más información sobre este tema tendrás que consultar el manual del desarrollador y aprender a trabajar con el diseño, navibars, objetos naviforms...
Esta extensión es especialmente potente porque ella misma descarga la instalación de phpMyAdmin, lo descomprime y crea el archivo de configuración. En unos pocos segundos y sin tener que configurar nada, un administrador puede tener un acceso a la base de datos de la web. Comprueba el código fuente completo si quieres saber cómo todo este proceso se lleva a cabo en detalle.
0 Comentarios