30 noviembre 2005

Borrar y Publicar en OpenCms

Me ha surgido el problema de no poder, via frontend, borrar un documento y que se publique automaticamente en el proyecto onLine, pero ya encontré la solución:

En /system/workplace/commons/ existe un fichero delete_standard.jsp que es el encargado de borrar pero no publica (internamente la clase java CmsDelete no lo hace). Para que lo haga se necesita el siguiente trozito de código.


case CmsDelete.ACTION_DELETE:
case CmsDelete.ACTION_WAIT:

//////////////////// ACTION: main delete action (with optional confirm / wait screen)


String proyecto = wp.getCms().getRequestContext().currentProject().getName();
if ("ElNobreDelProyecto".equals(proyecto) ){
String path = request.getParameter("resource");
path= path.replaceAll("%2F","/"); //reemplaza los / codificados para http
org.opencms.file.CmsResource resource = wp.getCms().readResource(path,org.opencms.file.CmsResourceFilter.ALL);
int estado = resource.getState();
if (estado != org.opencms.file.CmsResource.STATE_NEW ) // Comprueba si es un documento nuevo sin publicar
{
wp.getCms().deleteResource(path, 0);
String resour = request.getParameter("resource");
String closelink = request.getParameter("closelink");
response.sendRedirect(response.encodeRedirectURL("/opencms/opencms/system/workplace/commons/publishresource.jsp?resource="+
resour+"&action=confirmed&directpublish=true&publishsiblings=true&redirect=true&title=Publish Resource:"+resour+"&closelink="+closelink));
}else{
wp.actionDelete();
}
}else{
wp.actionDelete();
}


break;


No se como saldrá formateado. Pero con este código se borrara y publicara automaticamente.

No hay comentarios: