Foren

Agregar WYSIWYG a un portlet

Daniel Valverde, geändert vor 11 Jahren.

Agregar WYSIWYG a un portlet

Junior Member Beiträge: 28 Beitrittsdatum: 27.04.11 Neueste Beiträge
Hola buenas pues como indico eso quiero agregar un un editor WYSIWYG a un portlet que estoy desarrollando agregar no hay probleba pero la cuestion es que quiero capturar lo introducido en el editor para poder posteriormente en un Action poder procesarlo.


Gracias por adelantado.
Octavio Sánchez, geändert vor 11 Jahren.

RE: Agregar WYSIWYG a un portlet

Junior Member Beiträge: 80 Beitrittsdatum: 31.03.09 Neueste Beiträge
Si metes el editor dentro de un formulario deberías poder leerlo desde el controlador sin más problemas.

¿podrías poner el código para que podamos ayudarte?
Daniel Valverde, geändert vor 11 Jahren.

RE: Agregar WYSIWYG a un portlet

Junior Member Beiträge: 28 Beitrittsdatum: 27.04.11 Neueste Beiträge
El codigo es el siguiente:

<script type="text/javascript">
function <portlet:namespace />initEditor() {

return '<font style="font-weight: bold"></font>';
}

function <portlet:namespace />extractCodeFromEditor() {
var x = document.fm.codigo.value = window.<portlet:namespace />editor.getHTML();

alert(x);
}
</script>
<p>Va a proceder a editar el proposito del concepto: <%=concepto.getDescripcion() %> de la categoria: <%=nombreCategoria %>. </p>
<portlet:actionURL name="insertar" var="insertarURL"/>
<liferay-ui:input-editor />
<aui:form name="fm" action="<%=insertarURL.toString() %>" method="post">
<aui:fieldset>
<input name="id_concepto" type="hidden" value="<%=concepto.getId_concepto() %>" />
<input name="codigo" type="hidden" value="" />
<aui:button-row>
<aui:button type="submit" id="save-button" />
<input type=button class="aui-button-input aui-button-input-submit" value="Atras" onClick="javascript: window.history.go(-1)">
</aui:button-row>
</aui:fieldset>
</aui:form>



Gracias
Daniel Valverde, geändert vor 11 Jahren.

RE: Agregar WYSIWYG a un portlet

Junior Member Beiträge: 28 Beitrittsdatum: 27.04.11 Neueste Beiträge
Bueno ya he dado con la solución y la colgare por si a alguien en algun momento necesita hacer lo mismo
Esto iría en el jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.util.*" %>

<%@ page import="com.liferay.portal.kernel.util.*"%>
<%@ page import="com.liferay.portal.kernel.dao.search.*"%>
<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>
<%@ taglib uri="http://liferay.com/tld/ui" prefix="liferay-ui" %>
<%@ taglib uri="http://liferay.com/tld/theme" prefix="liferay-theme" %>
<%@ taglib uri="http://liferay.com/tld/aui" prefix="aui" %>
<portlet:defineObjects />
<liferay-theme:defineObjects />
<%
Concepto concepto = (Concepto) renderRequest.getAttribute("concepto");
String nombreCategoria = CategoriaLocalServiceUtil.getCategoria(concepto.getId_categoria()).getDescripcion();
String valor = concepto.getDefinicion();
%>

<portlet:defineObjects />
<liferay-theme:defineObjects />

<script type="text/javascript">
function <portlet:namespace />initEditor() {

return '<font style="font-weight: bold"><%=UnicodeFormatter.toString(valor)%></font>';
}
</script>
<portlet:actionURL name="insertar" var="insertarURL"/>
<aui:form name="fm" action="<%=insertarURL.toString() %>" method="post">
<p>Va a proceder a editar el proposito del concepto: <%=concepto.getDescripcion() %> de la categoria: <%=nombreCategoria %>. </p>

<liferay-ui:input-editor />

<aui:fieldset>
<input name="id_concepto" type="hidden" value="<%=concepto.getId_concepto() %>" />
<aui:button-row>
<aui:button type="submit" id="save-button" />
<input type=button class="aui-button-input aui-button-input-submit" value="Atras" onClick="javascript: window.history.go(-1)">
</aui:button-row>
</aui:fieldset>
</aui:form>


Y en el controlador:

public void insertar(ActionRequest request, ActionResponse response) throws PortalException{

String codigoDefinicion = ParamUtil.getString(request, "editor");
long idConcepto = ParamUtil.getLong(request, "id_concepto");

if(Validator.isNotNull(codigoDefinicion)){

try {
Concepto concepto = ConceptoLocalServiceUtil.getConcepto(idConcepto);
concepto.setDefinicion(codigoDefinicion);
ConceptoLocalServiceUtil.updateConcepto(concepto);
} catch (SystemException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
}


De esta forma se carga el editor con los datos que le quedramos pasar y a continuacion recuperarlos en el controlador para tratar dichos datos como queramos.