Plataforma Vignette

En la actualidad, la Consejería de Agricultura, Pesca y Medio Ambiente cuenta con una Web desarrollada en base a una plataforma de gestión y publicación de contenidos. Debido a la gran profusión de contenidos y a la existencia de temáticas especializadas, estos son provistos desde multitud de fuentes diferentes, como son las diferentes Direcciones Generales y los propios Servicios Centrales de la Consejería.

 

Bajo este escenario, se plantea la necesidad de tener la posibilidad de que existan multitud de editores de contenidos distribuidos por todo el organigrama de la Consejería de Agricultura, Pesca y Medio Ambiente.

 

En el proceso de incorporación de nuevos contenidos en la Web también es necesaria la intervención de una figura de publicación de los mismos, el cual es realizado por lo que se conoce como el publicador del gestor de contenidos.

 

 

La edición y publicación de contenidos de la Web de la Consejería se realiza principalmente con las herramientas incluidas dentro de la plataforma Vignette.
Definimos como plataforma Vignette, el conjunto de recursos que han sido integrados para crear el sistema de gestión de contenidos y publicación web de la CAPMA.

 

Dentro de esta plataforma se desplegarán todos los proyectos Vignette desarrollados para la CAPMA. Se considera que un proyecto tiene esta tipología cuando cumple alguna de las siguientes características:

 

  • Son un desarrollo para el gestor de contenidos de la plataforma Vignette (VCM)
  • Interactúan con la API de VCM.
  • Sus aplicaciones serán desplegadas sobre el servidor de aplicaciones de Vignette (Weblogic Runtime Services).
  • Son un desarrollo para el frontend de la plataforma Vignette (Vignette Portal)
  • Serán integrados dentro de un sitio de Vignette Portal.
  • Sus aplicaciones serán desplegadas sobre el cluster donde se encuentra la aplicación Vignette Portal.

Todos los recursos expuestos en esta extranet deberán ser complementados con la información ofrecida desde el Libro Blanco de Desarrollo, en especial desde los capítulos:

 

  1. Reglas de desarrollo para proyectos Vignette: Define ciertas directrices a cumplir a la hora de desarrollar un proyecto Vignette
  2. Entrega y despliegue de proyectos Vignette: Especifica la estructura de entrega de los diferentes tipos de proyectos Vignette
  •  

Se ha producido un error al procesar la plantilla.
Can't convert this string to number: "{\"groupId\":\"13391456\",\"privateLayout\":false,\"layoutId\":\"14\"}"
The blamed expression:
==> split?first?number  [in template "20115#20151#13489227" at line 65, column 37]

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign layoutId = split?first?number  [in template "20115#20151#13489227" at line 65, column 17]
----
1<#assign DLFileEntryLocalServiceUtil = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") /> 
2<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
3<#assign layoutLocalService = serviceLocator.findService('com.liferay.portal.kernel.service.LayoutLocalService') /> 
4<#assign dateFormat = "MMM d, HH':'mm" /> 
5<#if entries?has_content> 
6    <#--  <div class="row cabeceraRecursos" style="border-style: dotted;"> 
7        <h1> Recursos </h2> 
8    </div>  --> 
9    <#list entries as curEntry> 
10        <#if curEntry.getClassName() == "com.liferay.document.library.kernel.model.DLFileEntry">             
11            <#assign assetRenderer = curEntry.getAssetRenderer() /> 
12            <#assign urlDownload = assetRenderer.getURLDownload(themeDisplay)> 
13 
14            <#assign dlFileEntryId = assetRenderer.getClassPK() /> 
15            <#assign fileEntry = DLFileEntryLocalServiceUtil.fetchDLFileEntry(dlFileEntryId) /> 
16            <#assign versionId = fileEntry.getLatestFileVersion(true).getFileVersionId() /> 
17            <#assign tamanoMb = tFichero(fileEntry.getSize()) /> 
18 
19            <#assign fieldMap = fileEntry.getDDMFormValuesMap(versionId)> 
20            <#list fieldMap?keys as element> 
21                <#assign formValues = fieldMap[element].getDDMFormFieldValues()> 
22                <#list formValues as fv> 
23                    <#if fv.getName() == "idLicencia"> 
24                        <#assign licencia = fv.getValue().getString(locale)> 
25                    </#if> 
26                </#list> 
27            </#list> 
28 
29            <div class="row boxRecurso" style="border-style: solid;"> 
30                <div class="col-xs-12 col-sm-12 col-md-12"> 
31                    <p><a href="${urlDownload}" download style="display: contents;">  
32                        <img alt="<@liferay.language key='incono.download.svg'/>" class="evr-normativa-detalle__pdf-style" src="${themeDisplay.getPathThemeImages()}/iconos_portal_SVG/download.svg">${curEntry.getTitle(locale)} - (${tamanoMb}MB) 
33                    </a> 
34                        <#if fileEntry.getMimeType()?upper_case?contains("PDF") || fileEntry.getMimeType()?upper_case?contains("TEXT")> 
35                            <a href="${urlDownload}" target="_blank" style="display: contents;"> 
36                                <img alt="incono.download.svg" class="evr-normativa-detalle__pdf-style" title="Visualizar ${curEntry.getTitle(locale)}" src="${themeDisplay.getPathThemeImages()}/iconos_portal_SVG/abrir_interactivo_icon.svg"> 
37                            </a> 
38                        </#if> 
39                    </p> 
40                </div> 
41                <#if curEntry.getDescription(locale)?has_content>     
42                    <div class="col-xs-12 col-sm-12 col-md-12"> 
43                        ${curEntry.getDescription(locale)} 
44                    </div> 
45                </#if> 
46                <#if licencia?has_content> 
47                    <div class="col-xs-12 col-sm-12 col-md-12"> 
48                        Licencia: ${licencia} 
49                    </div> 
50                </#if> 
51                <div class="col-xs-12 col-sm-12 col-md-12"> 
52                    Fecha Creación: ${curEntry.getPublishDate()} 
53                </div> 
54                <div class="col-xs-12 col-sm-12 col-md-12"> 
55                    Fecha Modificación: ${curEntry.getModifiedDate()} 
56                </div> 
57            </div> 
58        <#else> 
59            <#assign article = journalArticleLocalService.fetchLatestArticle(curEntry.getClassPK()) /> 
60            <#assign aArticleXML = saxReaderUtil.read(article.getContent()) /> 
61            <#assign enlacePagInterna = aArticleXML.valueOf("//dynamic-element[@name='enlacePaginaInternaEstructuraEnlace']/dynamic-content/text()") /> 
62            <#if enlacePagInterna?has_content> 
63                <#assign friendUrl = themeDisplay.getLayout().getGroup().friendlyURL  /> 
64                <#assign split = enlacePagInterna?split("@")> 
65                <#assign layoutId = split?first?number> 
66                <#assign state = split[1]> 
67                <#if state == "private-group"> 
68                    <#assign linkPrivate = true> 
69                    <#assign group = themeDisplay.getPathFriendlyURLPrivateGroup()/> 
70                <#else> 
71                    <#assign linkPrivate = false> 
72                    <#assign group = themeDisplay.getPathFriendlyURLPublic()/> 
73                </#if> 
74                <#assign groupId = split?last?number> 
75                <#if layoutLocalService.fetchLayout(groupId, linkPrivate, layoutId)??> 
76                    <#assign pageLayout = layoutLocalService.fetchLayout(groupId, linkPrivate, layoutId) /> 
77                    <#assign pageURL = pageLayout.getFriendlyURL() /> 
78                    <#assign enlacePaginaInterna = group+friendUrl+pageURL /> 
79                <#else> 
80                    <#assign pageURL = themeDisplay.getURLHome() /> 
81                    <#assign enlacePaginaInterna = pageURL> 
82                </#if> 
83 
84                <div class="row boxRecurso" style="border-style: solid;"> 
85                    <div class="col-xs-12 col-sm-12 col-md-12"> 
86                        <a href="${enlacePaginaInterna}"> 
87                            <#if curEntry.getDescription(locale)?has_content> 
88                                ${curEntry.getDescription(locale)} 
89                            <#else> 
90                                ${curEntry.getTitle(locale)} 
91                            </#if> 
92                        </a> 
93                    </div> 
94                </div> 
95            </#if> 
96        </#if> 
97    </#list> 
98</#if> 
99 
100<#function tFichero fichero> 
101    <#assign tamanoF = (fichero/1024)/1024 /> 
102    <#if tamanoF?split(".")[0]?number == 0 > 
103        <#assign tamanoF = 0.01 /> 
104    </#if> 
105  <#return (tamanoF?string["0.##"]) /> 
106</#function>