Gracias al plugin que nos ofrece Liferay con ALLOY podemos hacer infinidad de cosas muy útiles aunque descubrirlas no suele ser fácil.
Esta vez os voy a enseñar a generar un dialog o popup que cargue un contenido web generado desde el panel de control de Liferay 6.1.
Anteriormente os enseñe como crear un dialog/popup genérico con ALLOY y ahora os voy a indicar como hacer para que cargue un contenido web. Para ello usaremos el siguiente código javascript:
AUI().ready('aui-dialog','aui-overlay-manager', function(A) { A.one('.politica').on( 'click', function() { var instance = new A.Dialog({ bodyContent: 'Dialog body', centered: true, constrain2view: true, destroyOnClose: true, draggable: false, height: 500, resizable: false, stack: true, title: 'Política de Privacidad', width: 600, modal:true, cssClass: 'popup', after:{ bodyContentChange: function(event){ A.all('.popup link').remove(); }}, id: 'popup-politicaPrivacidad', buttons: [ { label: 'Aceptar', handler: function() { instance.close(); } }] }).plug( A.Plugin.IO, { uri: '/c/journal/view_article_content?cmd=preview&groupId=12078&articleId=15009&version=1.0' } ).render(); }); });
En el código anterior "uri" sería la URL relativa del contenido web y la podemos obtener de la siguiente manera:
Vamos a Panel de Control->ContenidoWeb y buscamos nuestro contenido. Clicamos sobre Acciones->Vista Previa y se abrirá una página nueva. Ahora debemos de cojer la URL de la página(i.e.: http://localhost:8080/c/journal/view_article_content?cmd=preview&groupId=12078&articleId=15009&version=1.0 ) y quedarnos con "/c/journal/view_article_content?cmd=preview&groupId=12078&articleId=15009&version=1.0". Esta será la ruta que usaremos como ruta relativa.
Al hacer esto nos surge un problema y es que este contenido que se carga sobre el popup tiene unos repetidos que pueden hacer que nuestra página se descoloque por lo que debemos de eliminar estos CSS nada mas cargar el popup. Para ello debéis fijaros en el "after" del código que es quien lo hace.
Esto nos puede servir, por ejemplo, para cargar automáticamente sobre un popup un contenido de Política de Privacidad con solo poner un class en un elemento de página(el ejemplo esta hecho para ese caso).
Os recomiendo añadir el código anterior en el tema de apariencia para tenerlo disponible para su uso en todo en portal donde se use el tema de apariencia.