<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <title>RE: Traductions pour Liferay 6.0.6!!</title>
  <link rel="alternate" href="http://www.liferay.com/pt/c/message_boards/find_recent_posts?p_l_id=" />
  <subtitle>RE: Traductions pour Liferay 6.0.6!!</subtitle>
  <entry>
    <title>RE: Présentation des membres et inscriptions</title>
    <link rel="alternate" href="http://www.liferay.com/pt/c/message_boards/find_message?p_l_id=&amp;messageId=13023703" />
    <author>
      <name>Mickaël Bertrand</name>
    </author>
    <id>http://www.liferay.com/pt/c/message_boards/find_message?p_l_id=&amp;messageId=13023703</id>
    <updated>2012-03-16T14:39:07Z</updated>
    <published>2012-03-16T14:39:07Z</published>
    <summary type="html">Bonjour à tous,&lt;br /&gt;&lt;br /&gt;Mickaël BERTRAND, IED à Montpellier, j&amp;#039;ai commencé à travailler sous Liferay en 2010.&lt;br /&gt;En février 2011, j&amp;#039;ai participé à la formation officielle Développeur dispensée par Altendis et Pascal Simon, à Paris.&lt;br /&gt;&lt;br /&gt;Heureux de voir la communauté francophone de Liferay se développer !&lt;br /&gt;&lt;br /&gt;A bientôt !</summary>
    <dc:creator>Mickaël Bertrand</dc:creator>
    <dc:date>2012-03-16T14:39:07Z</dc:date>
  </entry>
  <entry>
    <title>RE: How to force a "profile" page for all users and update that page later?</title>
    <link rel="alternate" href="http://www.liferay.com/pt/c/message_boards/find_message?p_l_id=&amp;messageId=10587198" />
    <author>
      <name>Mickaël Bertrand</name>
    </author>
    <id>http://www.liferay.com/pt/c/message_boards/find_message?p_l_id=&amp;messageId=10587198</id>
    <updated>2011-08-26T15:51:47Z</updated>
    <published>2011-08-26T15:51:47Z</published>
    <summary type="html">Is it possible to change the default template site ? &lt;br /&gt;Create a different site template and used it at the first time the user logs instead of the default template site ?&lt;br /&gt;&lt;br /&gt;Thks !</summary>
    <dc:creator>Mickaël Bertrand</dc:creator>
    <dc:date>2011-08-26T15:51:47Z</dc:date>
  </entry>
  <entry>
    <title>RE: How can I associate new user with a specific organization automatically</title>
    <link rel="alternate" href="http://www.liferay.com/pt/c/message_boards/find_message?p_l_id=&amp;messageId=7624845" />
    <author>
      <name>Mickaël Bertrand</name>
    </author>
    <id>http://www.liferay.com/pt/c/message_boards/find_message?p_l_id=&amp;messageId=7624845</id>
    <updated>2011-02-22T15:46:48Z</updated>
    <published>2011-02-22T15:46:48Z</published>
    <summary type="html">&lt;div class="quote-title"&gt;Martin Goldhahn:&lt;/div&gt;&lt;div class="quote"&gt;&lt;div class="quote-content"&gt;&lt;strong&gt;The &amp;#034;trigger&amp;#034;&lt;/strong&gt;&lt;br /&gt;We implemented a class OrgImportAction. This class has to be as light-weight as possible, because it will be put in TOMCAT_HOME/lib/ext. I.e. no spring, no commons-httpclient etc.&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;span class="code-lines"&gt;&amp;nbsp;1&lt;/span&gt;&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;2&lt;/span&gt;public class OrgImportAction extends com.liferay.portal.kernel.events.Action {&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;3&lt;/span&gt;&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;4&lt;/span&gt;&amp;nbsp; @SuppressWarnings(&amp;#034;unchecked&amp;#034;)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;5&lt;/span&gt;&amp;nbsp; @Override&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;6&lt;/span&gt;&amp;nbsp; public void run(HttpServletRequest req, HttpServletResponse res) throws ActionException {&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;7&lt;/span&gt;&amp;nbsp; &amp;nbsp; &lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;8&lt;/span&gt;&amp;nbsp; &amp;nbsp; String userId = PrincipalThreadLocal.getName();&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;9&lt;/span&gt;&amp;nbsp; &amp;nbsp; if (Validator.isNull(userId)) {&lt;br /&gt;&lt;span class="code-lines"&gt;10&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;return;&lt;br /&gt;&lt;span class="code-lines"&gt;11&lt;/span&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&lt;span class="code-lines"&gt;12&lt;/span&gt;&amp;nbsp; &amp;nbsp; String companyId = String.valueOf(CompanyThreadLocal.getCompanyId());&lt;br /&gt;&lt;span class="code-lines"&gt;13&lt;/span&gt;&amp;nbsp; &amp;nbsp; &lt;br /&gt;&lt;span class="code-lines"&gt;14&lt;/span&gt;&amp;nbsp; &amp;nbsp; sendRequest(req, res, companyId, userId);&lt;br /&gt;&lt;span class="code-lines"&gt;15&lt;/span&gt;&amp;nbsp; }&lt;br /&gt;&lt;span class="code-lines"&gt;16&lt;/span&gt;&lt;br /&gt;&lt;span class="code-lines"&gt;17&lt;/span&gt;&amp;nbsp; private void sendRequest(HttpServletRequest req, HttpServletResponse res, String companyId, String userId) throws ActionException {&lt;br /&gt;&lt;span class="code-lines"&gt;18&lt;/span&gt;&amp;nbsp; &amp;nbsp; Socket s = new Socket();&lt;br /&gt;&lt;span class="code-lines"&gt;19&lt;/span&gt;&amp;nbsp; &amp;nbsp; try {&lt;br /&gt;&lt;span class="code-lines"&gt;20&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;span class="code-lines"&gt;21&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;SocketAddress sa = new InetSocketAddress(InetAddress.getByName(&amp;#034;localhost&amp;#034;), req.getServerPort());&lt;br /&gt;&lt;span class="code-lines"&gt;22&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;s.connect(sa);&lt;br /&gt;&lt;span class="code-lines"&gt;23&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;OutputStream sOut = s.getOutputStream();&lt;br /&gt;&lt;span class="code-lines"&gt;24&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;PrintWriter pw = new PrintWriter(new OutputStreamWriter(sOut), true);&lt;br /&gt;&lt;span class="code-lines"&gt;25&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;pw.format(&amp;#034;GET /orgimport/orgimport?companyId=%s&amp;amp;userId=%s HTTP/1.0\n\n&amp;#034;, companyId, userId);&lt;br /&gt;&lt;span class="code-lines"&gt;26&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;InputStream sIn = s.getInputStream();&lt;br /&gt;&lt;span class="code-lines"&gt;27&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;BufferedReader reader = new BufferedReader(new InputStreamReader(sIn));&lt;br /&gt;&lt;span class="code-lines"&gt;28&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;String line = reader.readLine();&lt;br /&gt;&lt;span class="code-lines"&gt;29&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;String[] lineTokens = line.split(&amp;#034;\\s+&amp;#034;);&lt;br /&gt;&lt;span class="code-lines"&gt;30&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;String status = lineTokens[1];&lt;br /&gt;&lt;span class="code-lines"&gt;31&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if (!&amp;#034;200&amp;#034;.equals(status)) {&lt;br /&gt;&lt;span class="code-lines"&gt;32&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; throw new ActionException(&amp;#034;orgimport status: &amp;#034; + status);&lt;br /&gt;&lt;span class="code-lines"&gt;33&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;&lt;span class="code-lines"&gt;34&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;while(true) {&lt;br /&gt;&lt;span class="code-lines"&gt;35&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; line = reader.readLine();&lt;br /&gt;&lt;span class="code-lines"&gt;36&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; if (Validator.isNull(line)) {&lt;br /&gt;&lt;span class="code-lines"&gt;37&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; break;&lt;br /&gt;&lt;span class="code-lines"&gt;38&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;span class="code-lines"&gt;39&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;&lt;span class="code-lines"&gt;40&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if (line != null &amp;amp;&amp;amp; line.length() == 0) {&lt;br /&gt;&lt;span class="code-lines"&gt;41&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; line = reader.readLine();&lt;br /&gt;&lt;span class="code-lines"&gt;42&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; if (line != null &amp;amp;&amp;amp; line.equals(&amp;#034;OK&amp;#034;)) {&lt;br /&gt;&lt;span class="code-lines"&gt;43&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; return;&lt;br /&gt;&lt;span class="code-lines"&gt;44&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;span class="code-lines"&gt;45&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;&lt;span class="code-lines"&gt;46&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;throw new ActionException();&lt;br /&gt;&lt;span class="code-lines"&gt;47&lt;/span&gt;&amp;nbsp; &amp;nbsp; } catch(IOException e) {&lt;br /&gt;&lt;span class="code-lines"&gt;48&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;throw new ActionException(e);&lt;br /&gt;&lt;span class="code-lines"&gt;49&lt;/span&gt;&amp;nbsp; &amp;nbsp; } finally {&lt;br /&gt;&lt;span class="code-lines"&gt;50&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;try {&lt;br /&gt;&lt;span class="code-lines"&gt;51&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; s.close();&lt;br /&gt;&lt;span class="code-lines"&gt;52&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;} catch(IOException e) {&lt;br /&gt;&lt;span class="code-lines"&gt;53&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; log.error(&amp;#034;OrgImportAction.sendRequest&amp;#034;, e);&lt;br /&gt;&lt;span class="code-lines"&gt;54&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;&lt;span class="code-lines"&gt;55&lt;/span&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&lt;span class="code-lines"&gt;56&lt;/span&gt;&amp;nbsp; }&lt;br /&gt;&lt;span class="code-lines"&gt;57&lt;/span&gt;}&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;The sendRequest function sends a HTTP request to a normal servlet that implements the actual business logic.&lt;br /&gt;&lt;br /&gt;To enable the &amp;#034;trigger&amp;#034;, you need to add the following line to your portal-ext.properties file:&lt;br /&gt;&lt;div class="code"&gt;&lt;span class="code-lines"&gt;1&lt;/span&gt;login.events.post=com.liferay.portal.events.LoginPostAction,com.liferay.portal.events.DefaultLandingPageAction,no.uis.orgimport.portal.OrgImportAction&lt;/div&gt;&lt;br /&gt;Of course, you need to change the package name from no.uis.orgimport.portal to your liking.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The import code (business logic&lt;/strong&gt;&lt;br /&gt;This is deployed as a normal web application (servlet) on the portal, i.e. the servlet can access the portal-kernel and -service classes.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Why did we deploy 2 artifacts? Well, as mentioned earlier, we didn&amp;#039;t want to add spring or any business logic to the portal. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The attached code&lt;/strong&gt;&lt;br /&gt;I attached our code to this message. It will not compile out of the box, since we use a parent pom that sets some properties and maven-related config params. If you remove the parent-pom entry and define the missing properties for the artifacts, it should work. You can create an Eclipse project with the pom with &lt;div class="code"&gt;&lt;span class="code-lines"&gt;1&lt;/span&gt;mvn -DdownloadSources=true eclipse:eclipse&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Is this solution compatible with Liferay 6.0.5 ? Thanks for your answer !</summary>
    <dc:creator>Mickaël Bertrand</dc:creator>
    <dc:date>2011-02-22T15:46:48Z</dc:date>
  </entry>
  <entry>
    <title>RE: Formation Liferay 6 à Paris, France, Février 2011</title>
    <link rel="alternate" href="http://www.liferay.com/pt/c/message_boards/find_message?p_l_id=&amp;messageId=7582687" />
    <author>
      <name>Mickaël Bertrand</name>
    </author>
    <id>http://www.liferay.com/pt/c/message_boards/find_message?p_l_id=&amp;messageId=7582687</id>
    <updated>2011-02-17T20:38:38Z</updated>
    <published>2011-02-17T20:38:38Z</published>
    <summary type="html">J&amp;#039;ai suivi la formation Développeur de cette semaine (14 - 16 février) et j&amp;#039;en suis très satisfait ! Beaucoup de nouvelles choses apprises et très bonne ambiance durant ces trois jours !</summary>
    <dc:creator>Mickaël Bertrand</dc:creator>
    <dc:date>2011-02-17T20:38:38Z</dc:date>
  </entry>
  <entry>
    <title>RE: Traductions pour Liferay 6.0.6!!</title>
    <link rel="alternate" href="http://www.liferay.com/pt/c/message_boards/find_message?p_l_id=&amp;messageId=7574007" />
    <author>
      <name>Mickaël Bertrand</name>
    </author>
    <id>http://www.liferay.com/pt/c/message_boards/find_message?p_l_id=&amp;messageId=7574007</id>
    <updated>2011-02-17T10:15:44Z</updated>
    <published>2011-02-17T10:15:44Z</published>
    <summary type="html">&lt;div class="quote-title"&gt;Juan Fernández:&lt;/div&gt;&lt;div class="quote"&gt;&lt;div class="quote-content"&gt;Salut, les traducteurs!&lt;br /&gt;&lt;br /&gt;On va libérer une nouvelle version de Liferay pour la communauté (6.0.6) tôt avec de nombreux correctifs et améliorations: nous avons donc une autre chance d&amp;#039;améliorer nos traductions pour cette version.&lt;br /&gt;&lt;br /&gt;Julio a publié &lt;a href="http&amp;#x3a;&amp;#x2f;&amp;#x2f;www&amp;#x2e;liferay&amp;#x2e;com&amp;#x2f;es&amp;#x2f;community&amp;#x2f;forums&amp;#x2f;-&amp;#x2f;message_boards&amp;#x2f;message&amp;#x2f;7176118"&gt;un post&lt;/a&gt; dans le forums des traducteurs avec information de comment contribuer aux traductions.&lt;br /&gt;&lt;br /&gt;Le dernier jour pour contribuer est le 11 de Fevrier&lt;br /&gt;&lt;br /&gt;Merci à tous!&lt;br /&gt;&lt;br /&gt;Juan&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Merci pour l&amp;#039;info et à tous ceux qui ont contribué à cette traduction attendue.</summary>
    <dc:creator>Mickaël Bertrand</dc:creator>
    <dc:date>2011-02-17T10:15:44Z</dc:date>
  </entry>
</feed>

