Search code examples
liferay-6friendly-url

Change the friendly URL of a web content in Liferay


I am currently using an article display page to display my web content in Liferay 6.2. I'm trying to figure out how to edit the path of my friendly URL after the /-/.

Current URL: siteName/-/articleName

Desired URL: siteName/-/topicSection/articleName


Solution

  • You are talking about the attribute JournalArticle.urlTitle. The problem is, that there is no UI in Liferay, which lets you change that attribute (at least not out of the box).

    You've got two options:

    • If you just want to change an existing article, you can change that attribute in the database (I'd guess that the additional / is no problem):

      UPDATE JournalArticle 
          SET urlTitle = 'topicSection/articleName' 
          WHERE urlTitle = 'articleName'
      
    • If you want to offer an UI for editing that attribute, you could write a hook.

    Here a short summary how to write such a hook:

    1. Add this lines to your liferay-hook.xml:

      <portal-properties>portal.properties</portal-properties>
      <language-properties>Language.properties</language-properties> 
      <custom-jsp-dir>/WEB-INF/custom_jsps</custom-jsp-dir> 
      
    2. Create a file portal.properties in the Java source directory and add this line:

      journal.article.form.update = urlTitle
      
    3. Create a file Language.properties in the Java source directory and add this line:

      urlTitle = Friendly URL
      
    4. Add a file WEB-INF/custom_jsps/html/portlet/journal/article/urlTitle.jsp into the web content folder:

      <%@ include file="/html/portlet/journal/init.jsp" %>
      <% JournalArticle article = (JournalArticle)request.getAttribute(WebKeys.JOURNAL_ARTICLE); %>
      <aui:model-context bean="<%= article %>" model="<%= JournalArticle.class %>" />
      
      <h3>Friendly URL</h3>
      
      <aui:input name="urlTitle" />