留言板

portlet preferences y theme.runtime

Guillermo Abadía Cenoz,修改在11 年前。

portlet preferences y theme.runtime

New Member 帖子: 11 加入日期: 11-9-7 最近的帖子
Buenas,

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

$velocityPortletPreferences.setValue('portletSetupShowBorders','false')
$velocityPortletPreferences.setValue('display-style','0')
$velocityPortletPreferences.setValue('language-ids','es_ES,en_US')
$theme.runtime('77', '', $velocityPortletPreferences.toString())
$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,修改在11 年前。

RE: portlet preferences y theme.runtime

New Member 帖子: 5 加入日期: 12-1-27 最近的帖子
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:

Elements
Id	Name	Type	Value	Label	Size	Maximum Length
_86_fm	_86_formDate	input	1354745003665			
_86_cmd	_86_cmd	input	update			
_86_redirect	_86_redirect	input	/			
_86_fm	_86_fm	fieldset				
_86_languageIds	[b]_86_preferences--languageIds--[/b]	input				
_86_currentLanguageIds	_86_currentLanguageIds	select			10	
aui_3_4_0_1_391	_86_fm	button				
aui_3_4_0_1_410	_86_fm	button				
aui_3_4_0_1_174	_86_fm	button				
aui_3_4_0_1_195	_86_fm	button				
_86_availableLanguageIds	_86_availableLanguageIds	select			10	
_86_fm	_86_fm	fieldset				
_86_displayStyle	_86_preferences--displayStyle--	select	2			
_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
<aui:input name="preferences--languageIds--" type="hidden" />
<aui:select name="preferences--displayStyle--">
	<aui:option label="icon" selected="<%= displayStyle == LanguageTag.LIST_ICON %>" value="<%= LanguageTag.LIST_ICON %>" />
	<aui:option label="long-text" selected="<%= displayStyle == LanguageTag.LIST_LONG_TEXT %>" value="<%= LanguageTag.LIST_LONG_TEXT %>" />
	<aui:option label="short-text" selected="<%= displayStyle == LanguageTag.LIST_SHORT_TEXT %>" value="<%= LanguageTag.LIST_SHORT_TEXT %>" />
	<aui:option label="select-box" selected="<%= displayStyle == LanguageTag.SELECT_BOX %>" value="<%= LanguageTag.SELECT_BOX %>" />
</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