Forums

Home » Liferay Portal » Español » 3. Desarrollo

Combination View Flat View Tree View
Threads [ Previous | Next ]
toggle
Guillermo Abadía Cenoz
portlet preferences y theme.runtime
December 3, 2012 1:07 AM
Answer

Guillermo Abadía Cenoz

Rank: New Member

Posts: 11

Join Date: September 7, 2011

Recent Posts

Buenas,

He visto que al insertar un portlet en ina plantilla de velocity se pueden establecer valores para una serie de preferencias, así:

1$velocityPortletPreferences.setValue('portletSetupShowBorders','false')
2$velocityPortletPreferences.setValue('display-style','0')
3$velocityPortletPreferences.setValue('language-ids','es_ES,en_US')
4$theme.runtime('77', '', $velocityPortletPreferences.toString())
5$velocityPortletPreferences.reset()


Entiendo que algunas son comunes para todos los portlets y otras específicas de cada uno ¿Cómo puedo saber para un portlet determinado qué preferencias pueden modificarse?

Creo, aunque no estoy seguro, que esas preferencias se definen el el fichero portlet.xml de cada portlet. He buscado esos ficheros en github / liferay/liferay-portal pero no soy capaz de encontrarlos.

Tampoco he conseguido encontrar el fuente de theme.runtime(). Veo que tiene 3 parámetros pero sólo se usan 2. ¿para qué sirve elque falta?

A ve si alguien puede darme alguan pista. Muchas gracias.
Guillermo Alvarado
RE: portlet preferences y theme.runtime
December 5, 2012 4:12 PM
Answer

Guillermo Alvarado

Rank: New Member

Posts: 5

Join Date: January 27, 2012

Recent Posts

Hola, espero que mi respuesta te sirva aunque sea un poco, supongo yo que lo vas a utilizar para añadir un portlet en un theme(es lo mas comun).
Si tu quieres saber cuales son las configuraciónes que puedes configurar en cada portlet lo mas simple para mi es que veas el formulario que viene establecido en la vista de configuración del portlet,

Te pongo un ejemplo el portlet de idioma(lenguages) ya sea que lo veas de forma visual, en lo personal uso el complemento web developer para firefox. Forms->View Forms Information, encontraras algo parecido a lo siguiente:
 1
 2Elements
 3Id    Name    Type    Value    Label    Size    Maximum Length
 4_86_fm    _86_formDate    input    1354745003665            
 5_86_cmd    _86_cmd    input    update            
 6_86_redirect    _86_redirect    input    /            
 7_86_fm    _86_fm    fieldset               
 8_86_languageIds    [b]_86_preferences--languageIds--[/b]    input               
 9_86_currentLanguageIds    _86_currentLanguageIds    select            10   
10aui_3_4_0_1_391    _86_fm    button               
11aui_3_4_0_1_410    _86_fm    button               
12aui_3_4_0_1_174    _86_fm    button               
13aui_3_4_0_1_195    _86_fm    button               
14_86_availableLanguageIds    _86_availableLanguageIds    select            10   
15_86_fm    _86_fm    fieldset               
16_86_displayStyle    _86_preferences--displayStyle--    select    2            
17_86_fm    _86_fm    submit    Guardar   

Ahora si te fijas languageId contiene la siguiente forma:
_86_preferences--languageIds--
Es:
86 : NombreDelPortlet
preferences : Nombre especial para guardar los campos por medio de la clase DefaultConfigurationAction
languageIds :Nombre del parametro- lo que a ti te interesa
Aparate de este campo tambien existe: _86_preferences--displayStyle-- , estos dos parametros son unicos de este portlet, en el caso de showBorders es universal.
Si deseas verlo en los fuente abre el archivo:
liferay-portal-6.1.1-ce-ga2\tomcat-7.0.27\webapps\ROOT\html\portlet\language\configuration.jsp
Donde encontraras esta misma información
1<aui:input name="preferences--languageIds--" type="hidden" />
2<aui:select name="preferences--displayStyle--">
3    <aui:option label="icon" selected="<%= displayStyle == LanguageTag.LIST_ICON %>" value="<%= LanguageTag.LIST_ICON %>" />
4    <aui:option label="long-text" selected="<%= displayStyle == LanguageTag.LIST_LONG_TEXT %>" value="<%= LanguageTag.LIST_LONG_TEXT %>" />
5    <aui:option label="short-text" selected="<%= displayStyle == LanguageTag.LIST_SHORT_TEXT %>" value="<%= LanguageTag.LIST_SHORT_TEXT %>" />
6    <aui:option label="select-box" selected="<%= displayStyle == LanguageTag.SELECT_BOX %>" value="<%= LanguageTag.SELECT_BOX %>" />
7</aui:select>



Ahora con respecto a tu pregunta sobre theme.runtime esta funcion es para mandar renderizar el portlet con las configuraciónes establecidas en velocityPortletPreferences, solo un comentario no tengo ni idea de sobre que versión de liferay estes eimplementando pero para que se apliquen los valores el primer campo que tu tienes como "77" es importante(supongo que no es la 6.1.1 en esta el porlet language es 82), este indica el nombre de la instancia con la que sera identificado el portlet dentro de la pagina, deb estar conformado de la siguiente forma:
nombreDelPortlet_INSTANCE_IdentificadorDeLaInstancia
El nombre de la instancia puede es una combinacion de numeros y letras que decees, dependiendo de la version es el numero de caracteres totales (12 en 6.1.1) que yo recuerde no debe ser al hazar el colocarle el nombre pero esto si te lo debo. INSTANCE es fijo