<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Liferay Latino Blog &#187; desarrollo</title>
	<atom:link href="http://www.lrlatinoblog.com.ar/category/desarrollo/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.lrlatinoblog.com.ar</link>
	<description>La comunidad latina de Liferay</description>
	<lastBuildDate>Sat, 19 Nov 2011 18:47:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Agregar un editor WYSIWYG a un portlet</title>
		<link>http://www.lrlatinoblog.com.ar/2011/11/19/agregar-un-editor-wysiwyg-a-un-portlet/</link>
		<comments>http://www.lrlatinoblog.com.ar/2011/11/19/agregar-un-editor-wysiwyg-a-un-portlet/#comments</comments>
		<pubDate>Sat, 19 Nov 2011 18:45:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[Diseño]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[CKEditor]]></category>
		<category><![CDATA[forms]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://www.lrlatinoblog.com.ar/?p=210</guid>
		<description><![CDATA[Interesante nota de Erik Andersson en el site de Liferay donde explica como agregar un editor WYSIWYG a un portlet propio, y como se puede personalizar cambiando las barras de herramientas existentes o creando las propias. &#160;]]></description>
			<content:encoded><![CDATA[<p>Interesante <a href="http://www.liferay.com/web/erik.andersson/blog/-/blogs/11490753" target="_blank">nota</a> de Erik Andersson en el site de <a href="http://www.liferay.com" target="_blank">Liferay</a> donde explica como agregar un editor WYSIWYG a un portlet propio, y como se puede personalizar cambiando las barras de herramientas existentes o creando las propias.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lrlatinoblog.com.ar/2011/11/19/agregar-un-editor-wysiwyg-a-un-portlet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Maven</title>
		<link>http://www.lrlatinoblog.com.ar/2009/12/16/maven/</link>
		<comments>http://www.lrlatinoblog.com.ar/2009/12/16/maven/#comments</comments>
		<pubDate>Wed, 16 Dec 2009 03:33:08 +0000</pubDate>
		<dc:creator>joyola83</dc:creator>
				<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Maven]]></category>

		<guid isPermaLink="false">http://www.lrlatinoblog.com.ar/?p=113</guid>
		<description><![CDATA[A partir de la version 5.3 de Liferay, va a haber soporte oficial para maven.  En el este post Liferay Maven SDK publicado en el día de ayer en Liferay, se realiza una pequeña explicación de como se crea portlets &#8230; <a href="http://www.lrlatinoblog.com.ar/2009/12/16/maven/">Sigue leyendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>A partir de la version 5.3 de Liferay, va a haber soporte oficial para maven.  En el este post <a href="http://www.liferay.com/web/mika.koivisto/blog/-/blogs/liferay-maven-sdk" target="_blank">Liferay Maven SDK</a> publicado en el día de ayer en Liferay, se realiza una pequeña explicación de como se crea portlets como plugins con Maven.</p>
<p>También se esta trabajando para crear themes, hooks y layouts.</p>
<p>Para trabajar con Liferay 5.2 existe actualmente una implementación para crear portles en <a href="http://wiki.github.com/azzazzel/liferay-maven-sdk/" target="_blank">GitHub</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lrlatinoblog.com.ar/2009/12/16/maven/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Liferay y Maven</title>
		<link>http://www.lrlatinoblog.com.ar/2009/12/04/liferay-y-maven/</link>
		<comments>http://www.lrlatinoblog.com.ar/2009/12/04/liferay-y-maven/#comments</comments>
		<pubDate>Fri, 04 Dec 2009 03:10:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[Maven]]></category>
		<category><![CDATA[portlet]]></category>

		<guid isPermaLink="false">http://www.lrlatinoblog.com.ar/?p=110</guid>
		<description><![CDATA[En el último tiempo, Maven se me conviertio en una herramienta indispensable al momento de programar.  En el blog de Liferay salio un post que habla como generar un portlet con Maven, dicho pluggin no es oficial de Liferay, seguramente &#8230; <a href="http://www.lrlatinoblog.com.ar/2009/12/04/liferay-y-maven/">Sigue leyendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>En el último tiempo, Maven se me conviertio en una herramienta indispensable al momento de programar.  En el blog de Liferay salio un post que habla como generar un portlet con Maven, dicho pluggin no es oficial de Liferay, seguramente el fin de semana lo voy a probar y les cuento como funciona.</p>
<p>En este <a href="http://milen.commsen.com/2009/10/creating-liferay-portlet-with-liferay-maven-sdk.html" target="_blank">link</a> se detallan las instrucciones para crear un portlet con Maven.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lrlatinoblog.com.ar/2009/12/04/liferay-y-maven/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Webinar de Alfresco</title>
		<link>http://www.lrlatinoblog.com.ar/2009/11/30/webinar-de-alfresco/</link>
		<comments>http://www.lrlatinoblog.com.ar/2009/11/30/webinar-de-alfresco/#comments</comments>
		<pubDate>Tue, 01 Dec 2009 02:12:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Alfresco]]></category>
		<category><![CDATA[CMS]]></category>

		<guid isPermaLink="false">http://www.lrlatinoblog.com.ar/?p=106</guid>
		<description><![CDATA[El miercoles 2 de diciembre a las 12 pm (-5GMT) hay un webinar de Alfresco donde se discutira las caracteristicas de las distintas versiones de Alfresco; Enterprise 3.2, Community 3.2 y Traditional ECM.  Esto nos permitira tomar una mejor decisión &#8230; <a href="http://www.lrlatinoblog.com.ar/2009/11/30/webinar-de-alfresco/">Sigue leyendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>El miercoles 2 de diciembre a las 12 pm (-5GMT) hay un webinar de Alfresco donde se discutira las caracteristicas de las distintas versiones de Alfresco; Enterprise 3.2, Community 3.2 y Traditional ECM.  Esto nos permitira tomar una mejor decisión para tomar una buena decisión para la necesidades de nuestros clientes.</p>
<p>Para registrarse al webinar: <a title="Registrase al Webinar de Alfresco" href="http://app.en25.com/e/er.aspx?s=757&amp;lid=365&amp;elq=c3193d06a4884344bd83f57de9a39e36" target="_blank">link</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lrlatinoblog.com.ar/2009/11/30/webinar-de-alfresco/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>34 trucos para diseñadores y desarrolladores web</title>
		<link>http://www.lrlatinoblog.com.ar/2009/11/27/34-trucos-para-disenadores-y-desarrolladores-web/</link>
		<comments>http://www.lrlatinoblog.com.ar/2009/11/27/34-trucos-para-disenadores-y-desarrolladores-web/#comments</comments>
		<pubDate>Fri, 27 Nov 2009 03:56:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[Diseño]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.lrlatinoblog.com.ar/?p=99</guid>
		<description><![CDATA[En xyberneticos me entero de una guia de 34 trucos para diseñadores y desarrolladores web; esta guia tiene muchos tips interesantes a tener en cuenta. Este es el link.]]></description>
			<content:encoded><![CDATA[<p>En <a title="xyberneticos" href="http://xyberneticos.com/" target="_blank">xyberneticos</a> me entero de una guia de 34 trucos para diseñadores y desarrolladores web; esta guia tiene muchos tips interesantes a tener en cuenta.</p>
<p>Este es el <a title="34 trucos para diseñadores y desarrolladores web" href="http://www.webanddesigners.com/34-cheat-sheets-for-web-designers-and-developers" target="_blank">link</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lrlatinoblog.com.ar/2009/11/27/34-trucos-para-disenadores-y-desarrolladores-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PortletURL en JavaScript</title>
		<link>http://www.lrlatinoblog.com.ar/2008/12/22/portleturl-en-javascript/</link>
		<comments>http://www.lrlatinoblog.com.ar/2008/12/22/portleturl-en-javascript/#comments</comments>
		<pubDate>Tue, 23 Dec 2008 03:40:40 +0000</pubDate>
		<dc:creator>joyola83</dc:creator>
				<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://www.lrlatinoblog.com/?p=71</guid>
		<description><![CDATA[Una funcionalidad que acabo de descubrir en el Blog de Liferay es crear el PortletUrl en JavaScript. Un ejemplo de PortletUrl es: http://localhost:8080/web/guest/home?p_p_id=EDITAR_CUENTA&#038;p_p_lifecycle=0&#038;p_p_state=maximized&#038;p_p_mode=view&#038;_EDITAR_CUENTA_struts_action=%2Feditar_cuenta%2Fview Aca le estoy pasando el portlet id, el estado del portlet, la fase del ciclo de vida, &#8230; <a href="http://www.lrlatinoblog.com.ar/2008/12/22/portleturl-en-javascript/">Sigue leyendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Una funcionalidad que acabo de descubrir en el Blog de Liferay es crear el PortletUrl en JavaScript.</p>
<p>Un ejemplo de PortletUrl es:</p>
<p>http://localhost:8080/web/guest/home?p_p_id=EDITAR_CUENTA&#038;p_p_lifecycle=0&#038;p_p_state=maximized&#038;p_p_mode=view&#038;_EDITAR_CUENTA_struts_action=%2Feditar_cuenta%2Fview</p>
<p>Aca le estoy pasando el portlet id, el estado del portlet, la fase del ciclo de vida, la acción de struts a ejecutar y 1 parametro (podrian ser muchos más).  Anteriormente la manipulación de esta url era medio complicada, ya que solo se podia generar a traves de JAVA o mediante una concatenación kilometrica de varios strings.  Con esta funcion nos proporciona mayor flexibilidad a la hora de programar.</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;script type=&quot;text/javascript&quot;&gt;
var portletURL = new Liferay.PortletURL(_PHASE);
portletURL.setParameter(&quot;key1&quot;, &quot;value&quot;);
portletURL.setParameter(&quot;key2&quot;, &quot;value&quot;);
portletURL.setPortletId(_PORTLET_ID);
&lt;/script&gt;
&nbsp;
&lt;a href=&quot;javascript: portletURL.toString()&quot;&gt;Go to&lt;/a&gt;</pre></div></div>

<p>Los valores que puede tomar _PHASE son:</p>
<ul>
<li>ACTION_PHASE</li>
<li>RENDER_PHASE</li>
<li>RESOURCE_PHASE</li>
</ul>
<p>También existen los siguientes métodos que permiten crear el PortletUrl según _PHASE:</p>
<ul>
<li>Liferay.PortletURL.createActionURL();</li>
<li>Liferay.PortletURL.createRenderURL();</li>
<li>Liferay.PortletURL.createResourceURL();</li>
</ul>
<p>Estos son los métodos restantes de la clase Liferay.PortletURL:</p>
<ul>
<li>setCopyCurrentRenderParameters: function(copyCurrentRenderParameters);</li>
<li>setDoAsUserId: function(doAsUserId);</li>
<li>setEncrypt: function(encrypt);</li>
<li>setEscapeXML: function(escapeXML);</li>
<li>setLifecycle: function(lifecycle);</li>
<li>setName: function(name);</li>
<li>setParameter: function(key, value);</li>
<li>setPlid: function(plid);</li>
<li>setPortletConfiguration: function(portletConfiguration);</li>
<li>setPortletId: function(portletId);</li>
<li>setPortletMode: function(portletMode);</li>
<li>setResourceId: function(resourceId);</li>
<li>setSecure: function(secure);</li>
<li>setWindowState: function(windowState);</li>
<li>toString: function();</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.lrlatinoblog.com.ar/2008/12/22/portleturl-en-javascript/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Crear una comunidad</title>
		<link>http://www.lrlatinoblog.com.ar/2008/11/20/crear-una-comunidad/</link>
		<comments>http://www.lrlatinoblog.com.ar/2008/11/20/crear-una-comunidad/#comments</comments>
		<pubDate>Thu, 20 Nov 2008 09:41:39 +0000</pubDate>
		<dc:creator>joyola83</dc:creator>
				<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[comunidades]]></category>

		<guid isPermaLink="false">http://www.lrlatinoblog.com/?p=59</guid>
		<description><![CDATA[A continuación esta el codigo que nos permite crear una comunidad a partir de una comunidad existente, Obtener comunidad template Group templateGroup = GroupLocalServiceUtil.getGroupByFriendlyUrl&#40;&#34;/template&#34;&#41;; Crear una comunidad String name = ParamUtil.getString&#40;actionRequest, &#34;name&#34;&#41;; String description = ParamUtil.getString&#40;actionRequest, &#34;description&#34;&#41;; String friendlyURL = &#8230; <a href="http://www.lrlatinoblog.com.ar/2008/11/20/crear-una-comunidad/">Sigue leyendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>A continuación esta el codigo que nos permite crear una comunidad a partir de una comunidad existente,</p>
<p><strong>Obtener comunidad template</strong></p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #003399;">Group</span> templateGroup <span style="color: #339933;">=</span> GroupLocalServiceUtil.<span style="color: #006633;">getGroupByFriendlyUrl</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;/template&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p><strong>Crear una comunidad</strong></p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #003399;">String</span> name <span style="color: #339933;">=</span> ParamUtil.<span style="color: #006633;">getString</span><span style="color: #009900;">&#40;</span>actionRequest, <span style="color: #0000ff;">&quot;name&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #003399;">String</span> description <span style="color: #339933;">=</span> ParamUtil.<span style="color: #006633;">getString</span><span style="color: #009900;">&#40;</span>actionRequest, <span style="color: #0000ff;">&quot;description&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #003399;">String</span> friendlyURL <span style="color: #339933;">=</span> ParamUtil.<span style="color: #006633;">getString</span><span style="color: #009900;">&#40;</span>actionRequest, <span style="color: #0000ff;">&quot;friendlyURL&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #003399;">Group</span> newGroup <span style="color: #339933;">=</span> GroupServiceUtil.<span style="color: #006633;">addGroup</span><span style="color: #009900;">&#40;</span>name, description,
GroupImpl.<span style="color: #006633;">TYPE_COMMUNITY_PRIVATE</span>, StringPool.<span style="color: #006633;">BLANK</span>, <span style="color: #000066; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p><strong>Copiar la configuración del LayoutSet</strong></p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">LayoutSet publicLayoutSet <span style="color: #339933;">=</span> LayoutSetLocalServiceUtil.<span style="color: #006633;">getLayoutSet</span><span style="color: #009900;">&#40;</span>templateGroup.<span style="color: #006633;">getGroupId</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>, <span style="color: #000066; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
LayoutSetServiceUtil.<span style="color: #006633;">updateLookAndFeel</span><span style="color: #009900;">&#40;</span>newGroup.<span style="color: #006633;">getGroupId</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>,
<span style="color: #000066; font-weight: bold;">false</span>, publicLayoutSet.<span style="color: #006633;">getThemeId</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>, publicLayoutSet
.<span style="color: #006633;">getColorSchemeId</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>, publicLayoutSet.<span style="color: #006633;">getCss</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>,
<span style="color: #000066; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
LayoutSetServiceUtil.<span style="color: #006633;">updateLookAndFeel</span><span style="color: #009900;">&#40;</span>newGroup.<span style="color: #006633;">getGroupId</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>,
<span style="color: #000066; font-weight: bold;">false</span>, publicLayoutSet.<span style="color: #006633;">getWapThemeId</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>, publicLayoutSet
.<span style="color: #006633;">getWapColorSchemeId</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>, StringPool.<span style="color: #006633;">BLANK</span>, <span style="color: #000066; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
LayoutSet privateLayoutSet <span style="color: #339933;">=</span> LayoutSetLocalServiceUtil.<span style="color: #006633;">getLayoutSet</span><span style="color: #009900;">&#40;</span>templateGroup.<span style="color: #006633;">getGroupId</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>, <span style="color: #000066; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
LayoutSetServiceUtil.<span style="color: #006633;">updateLookAndFeel</span><span style="color: #009900;">&#40;</span>newGroup.<span style="color: #006633;">getGroupId</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>,
<span style="color: #000066; font-weight: bold;">false</span>, privateLayoutSet.<span style="color: #006633;">getThemeId</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>, privateLayoutSet
.<span style="color: #006633;">getColorSchemeId</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>, privateLayoutSet.<span style="color: #006633;">getCss</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>,
<span style="color: #000066; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
LayoutSetServiceUtil.<span style="color: #006633;">updateLookAndFeel</span><span style="color: #009900;">&#40;</span>newGroup.<span style="color: #006633;">getGroupId</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>,
<span style="color: #000066; font-weight: bold;">false</span>, privateLayoutSet.<span style="color: #006633;">getWapThemeId</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>, privateLayoutSet
.<span style="color: #006633;">getWapColorSchemeId</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>, StringPool.<span style="color: #006633;">BLANK</span>, <span style="color: #000066; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p><strong>Definir que copiar</strong></p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">Map<span style="color: #339933;">&lt;</span>String, <span style="color: #003399;">String</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">&gt;;</span> parameterMap <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> HashMap<span style="color: #339933;">&lt;</span>String, <span style="color: #003399;">String</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">&gt;</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
parameterMap.<span style="color: #006633;">put</span><span style="color: #009900;">&#40;</span>PortletDataHandlerKeys.<span style="color: #006633;">PERMISSIONS</span>,
<span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">String</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#123;</span> <span style="color: #003399;">Boolean</span>.<span style="color: #000066; font-weight: bold;">TRUE</span>.<span style="color: #006633;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
parameterMap.<span style="color: #006633;">put</span><span style="color: #009900;">&#40;</span>PortletDataHandlerKeys.<span style="color: #006633;">USER_PERMISSIONS</span>,
<span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">String</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#123;</span> <span style="color: #003399;">Boolean</span>.<span style="color: #000066; font-weight: bold;">TRUE</span>.<span style="color: #006633;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
parameterMap.<span style="color: #006633;">put</span><span style="color: #009900;">&#40;</span>PortletDataHandlerKeys.<span style="color: #006633;">PORTLET_DATA</span>,
<span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">String</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#123;</span> <span style="color: #003399;">Boolean</span>.<span style="color: #000066; font-weight: bold;">TRUE</span>.<span style="color: #006633;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
parameterMap.<span style="color: #006633;">put</span><span style="color: #009900;">&#40;</span>PortletDataHandlerKeys.<span style="color: #006633;">PORTLET_SETUP</span>,
<span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">String</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#123;</span> <span style="color: #003399;">Boolean</span>.<span style="color: #000066; font-weight: bold;">TRUE</span>.<span style="color: #006633;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
parameterMap.<span style="color: #006633;">put</span><span style="color: #009900;">&#40;</span>PortletDataHandlerKeys.<span style="color: #006633;">PORTLET_ARCHIVED_SETUPS</span>,
<span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">String</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#123;</span> <span style="color: #003399;">Boolean</span>.<span style="color: #000066; font-weight: bold;">TRUE</span>.<span style="color: #006633;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
parameterMap.<span style="color: #006633;">put</span><span style="color: #009900;">&#40;</span>PortletDataHandlerKeys.<span style="color: #006633;">PORTLET_USER_PREFERENCES</span>,
<span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">String</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#123;</span> <span style="color: #003399;">Boolean</span>.<span style="color: #000066; font-weight: bold;">TRUE</span>.<span style="color: #006633;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
parameterMap.<span style="color: #006633;">put</span><span style="color: #009900;">&#40;</span>PortletDataHandlerKeys.<span style="color: #006633;">THEME</span>,
<span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">String</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#123;</span> <span style="color: #003399;">Boolean</span>.<span style="color: #000066; font-weight: bold;">TRUE</span>.<span style="color: #006633;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p><strong>Exportar datos de la comunidad template</strong></p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">byte</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> publicOriginalGroup <span style="color: #339933;">=</span> LayoutServiceUtil.<span style="color: #006633;">exportLayouts</span><span style="color: #009900;">&#40;</span>
templateGroupId, <span style="color: #000066; font-weight: bold;">false</span>, parameterMap, <span style="color: #000066; font-weight: bold;">null</span>, <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000066; font-weight: bold;">byte</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> privateOriginalGroup <span style="color: #339933;">=</span> LayoutServiceUtil.<span style="color: #006633;">exportLayouts</span><span style="color: #009900;">&#40;</span>
templateGroupId, <span style="color: #000066; font-weight: bold;">true</span>, parameterMap, <span style="color: #000066; font-weight: bold;">null</span>, <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p><strong>Importar datos a la nueva comunidad</strong></p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">LayoutServiceUtil.<span style="color: #006633;">importLayouts</span><span style="color: #009900;">&#40;</span>newGroup.<span style="color: #006633;">getGroupId</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>, <span style="color: #000066; font-weight: bold;">false</span>,
parameterMap, publicOriginalGroup<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
LayoutServiceUtil.<span style="color: #006633;">importLayouts</span><span style="color: #009900;">&#40;</span>newGroup.<span style="color: #006633;">getGroupId</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>, <span style="color: #000066; font-weight: bold;">true</span>,
parameterMap, privateOriginalGroup<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.lrlatinoblog.com.ar/2008/11/20/crear-una-comunidad/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Portlet de sistema</title>
		<link>http://www.lrlatinoblog.com.ar/2008/11/19/portlet-de-sistema/</link>
		<comments>http://www.lrlatinoblog.com.ar/2008/11/19/portlet-de-sistema/#comments</comments>
		<pubDate>Wed, 19 Nov 2008 14:38:35 +0000</pubDate>
		<dc:creator>joyola83</dc:creator>
				<category><![CDATA[configuracion]]></category>
		<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[portlet]]></category>

		<guid isPermaLink="false">http://www.lrlatinoblog.com/?p=56</guid>
		<description><![CDATA[En varias ocasiones tuve el requerimiento de no mostrar algunos portlets en la lista de portlets disponibles para ser agregados a una página, y este ocultamiento no se podia hacer mediante permisos porque el usuario tenia que usar el portlet &#8230; <a href="http://www.lrlatinoblog.com.ar/2008/11/19/portlet-de-sistema/">Sigue leyendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>En varias ocasiones tuve el requerimiento de no mostrar algunos portlets en la lista de portlets disponibles para ser agregados a una página, y este ocultamiento no se podia hacer mediante permisos porque el usuario tenia que usar el portlet y no debia tirar el error de que el portlet no estaba disponibles.  Entonces me di cuenta de que algunos portlets del core de Liferay no estaban disponibles para ser agregados a una página, por ejemplo el portlet de Look and Feel, el My Account o el del Page Setting.  Para esto hay que declarar al portlet como portlet de sistema en liferay-portlet.xml.</p>
<p><strong>liferay-portlet.xml</strong></p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;portlet<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
   <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;portlet-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>MIPORTLET<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/portlet-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    ...
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;system<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>;rue<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/system</span>&lt;</span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/portlet<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>Desde otro portlet vamos a llamar a MIPORTLET</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #339933;">&lt;%</span>
&nbsp;
PortletURL miPortletURL <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> PortletURLImpl<span style="color: #009900;">&#40;</span>
request, <span style="color: #0000ff;">&quot;MIPORTLET&quot;</span>, plid, PortletRequest.<span style="color: #006633;">ACTION_PHASE</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
miPortletURL.<span style="color: #006633;">setWindowState</span><span style="color: #009900;">&#40;</span>WindowState.<span style="color: #006633;">MAXIMIZED</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
miPortletURL.<span style="color: #006633;">setPortletMode</span><span style="color: #009900;">&#40;</span>PortletMode.<span style="color: #006633;">VIEW</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
miPortletURL.<span style="color: #006633;">setParameter</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;struts_action&quot;</span>, <span style="color: #0000ff;">&quot;/miportlet/view&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #339933;">%&gt;</span>
&nbsp;
<span style="color: #339933;">&lt;</span>a href<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;&lt;%= miPortletURL %&gt;&quot;</span><span style="color: #339933;">&lt;</span>IR A MI PORTLET<span style="color: #339933;">&lt;/</span>a<span style="color: #339933;">&gt;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.lrlatinoblog.com.ar/2008/11/19/portlet-de-sistema/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mostrar un portlet en un PopUp</title>
		<link>http://www.lrlatinoblog.com.ar/2008/11/12/mostrar-un-portlet-en-un-popup/</link>
		<comments>http://www.lrlatinoblog.com.ar/2008/11/12/mostrar-un-portlet-en-un-popup/#comments</comments>
		<pubDate>Thu, 13 Nov 2008 02:27:07 +0000</pubDate>
		<dc:creator>joyola83</dc:creator>
				<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[portlet]]></category>

		<guid isPermaLink="false">http://www.lrlatinoblog.com/?p=34</guid>
		<description><![CDATA[Armo la URL &#60;portlet:renderURL windowState=&#34;&#60;%= LiferayWindowState.EXCLUSIVE.toString() %&#62;&#34; var=&#34;url&#34;&#62; &#60;portlet:param name=&#34;struts_action&#34; value=&#34;/miportlet/popupview&#34; /&#62; &#60;/portlet:actionURL&#62; Llamo al POPUP &#60;script type=&#34;text/javascript&#34;&#62; function mostrar_popup() { var _dialog = Liferay.Popup( { width: 700, modal: true, message: '&#60;div class=&#34;loading-animation&#34; /&#62;', position: ['center', 100], title: &#60;liferay-ui:message key&#34;popup-title&#34;/&#62;, &#8230; <a href="http://www.lrlatinoblog.com.ar/2008/11/12/mostrar-un-portlet-en-un-popup/">Sigue leyendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><strong>Armo la URL</strong></p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>portlet<span style="color: #339933;">:</span>renderURL windowState<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;&lt;%= LiferayWindowState.EXCLUSIVE.toString() %&gt;&quot;</span> var<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;url&quot;</span><span style="color: #339933;">&gt;</span>
   <span style="color: #339933;">&lt;</span>portlet<span style="color: #339933;">:</span>param name<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;struts_action&quot;</span> value<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;/miportlet/popupview&quot;</span> <span style="color: #339933;">/&gt;</span>
<span style="color: #339933;">&lt;/</span>portlet<span style="color: #339933;">:</span>actionURL<span style="color: #339933;">&gt;</span></pre></div></div>

<p><strong>Llamo al POPUP</strong></p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">script</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/javascript&quot;</span>&gt;</span>
   function mostrar_popup() {
      var _dialog = Liferay.Popup( 	{
      width: 700,
      modal: true,
      message: '<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;loading-animation&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span>',
      position: ['center', 100],
      title: <span style="color: #009900;">&lt;liferay-ui:message key<span style="color: #ff0000;">&quot;popup-title&quot;</span><span style="color: #66cc66;">/</span>&gt;</span>,
      resizable: false,
      draggable: false,
      onClose: function() {
         // se ejecuta cuando el portle se cierra
      }
   });
&nbsp;
   jQuery.ajax( {
      url: &quot;<span style="color: #009900;">&lt;%<span style="color: #66cc66;">=</span> url %&gt;</span>&quot;,
      success: function(message) {
         _dialog.html(message);
      }
   });
}
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">script</span>&gt;</span>
&nbsp;
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;javascript:mostrar_popup();&quot;</span>&gt;</span>mostrar popup<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;</span></pre></div></div>

<p>Al definir el estado de la ventana como exclusivo, el resultado de la respuesta solamente va a ser el contenido del portlet al cual se invoca.</p>
<p><strong>Ejemplo:</strong></p>
<p><a href="http://www.lrlatinoblog.com.ar/wp-content/uploads/2008/11/mostrar-popup.png"><br />
<img class="alignnone size-medium wp-image-54" title="mostrar-popup" src="http://www.lrlatinoblog.com.ar/wp-content/uploads/2008/11/mostrar-popup-300x208.png" alt="" width="300" height="208" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lrlatinoblog.com.ar/2008/11/12/mostrar-un-portlet-en-un-popup/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Agregar portlets en un Layout en tiempo de ejecución</title>
		<link>http://www.lrlatinoblog.com.ar/2008/11/11/agregar-portlets-en-un-layout-en-tiempo-de-ejecucion/</link>
		<comments>http://www.lrlatinoblog.com.ar/2008/11/11/agregar-portlets-en-un-layout-en-tiempo-de-ejecucion/#comments</comments>
		<pubDate>Wed, 12 Nov 2008 02:08:41 +0000</pubDate>
		<dc:creator>idlt</dc:creator>
				<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[layouts]]></category>
		<category><![CDATA[themes]]></category>

		<guid isPermaLink="false">http://www.lrlatinoblog.com/?p=44</guid>
		<description><![CDATA[A veces, cuando el diseño del sitio es complejo, necesitamos agregar a una página un portlet en determinado lugar del sitio fuera del contendor de portlets, o simplemente queremos agregar un portlet y que aparezca en todas las paginas que &#8230; <a href="http://www.lrlatinoblog.com.ar/2008/11/11/agregar-portlets-en-un-layout-en-tiempo-de-ejecucion/">Sigue leyendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>A veces, cuando el diseño del sitio es complejo, necesitamos agregar a una página un portlet en determinado lugar del sitio fuera del contendor de portlets, o simplemente queremos agregar un portlet y que aparezca en todas las paginas que utilicen este layout, y que nadie lo pueda mover o cerrar.</p>
<p>Para esto, y a partir de la version 4.3.x de Liferay, tenemos la posibilidad de agregar portlets en tiempo de ejecución en los archivos .tpl que definen los layouts disponibles en el sitio (ubicados en la carpeta &#8220;layouttpl&#8221;)</p>
<p>Simplemente agregamos esta linea:</p>
<pre>$processor.processPortlet("71")</pre>
<p>donde 71 es el Id del portlet que quiero agregar.</p>
<p>Entonces un template común, en este caso (30/70) se veria así:</p>
<pre>  &lt;table id="layout-grid"&gt;
   &lt;tr&gt;
    &lt;td class="lfr-column thirty" id="left" valign="top"&gt;
     $processor.processPortlet("71")
     $processor.processColumn("left")
    &lt;/td&gt;
    &lt;td class="lfr-column seventy" id="column-1" valign="top"&gt;
     $processor.processPortlet("73")
     $processor.processColumn("column-1")
    &lt;/td&gt;
   &lt;/tr&gt;
  &lt;/table&gt;</pre>
<p>y en este layout el portlet de navegación (id = 71) y el breadcrumb (id = 73) estarían fijos en todas las paginas que usen este layout por encima del contenedor de portlets de cada columna.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lrlatinoblog.com.ar/2008/11/11/agregar-portlets-en-un-layout-en-tiempo-de-ejecucion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

