在 Liferay 中更改网页内容的友好 URL

bla*_*ake 2 friendly-url liferay-6

我目前正在使用文章显示页面在Liferay 6.2 中显示我的网页内容。我试图弄清楚如何在/-/.

当前网址: siteName/-/articleName

所需网址: siteName/-/topicSection/articleName

Tob*_*fke 5

你说的是属性JournalArticle.urlTitle。问题是,Liferay 中没有 UI,它可以让您更改该属性(至少不是开箱即用)。

你有两个选择:

  • 如果您只想更改现有文章,则可以更改数据库中的该属性(我想附加/的没有问题):

    UPDATE JournalArticle 
        SET urlTitle = 'topicSection/articleName' 
        WHERE urlTitle = 'articleName'
    
    Run Code Online (Sandbox Code Playgroud)
  • 如果您想提供用于编辑该属性的 UI,您可以编写一个钩子。

这里简要总结一下如何编写这样的钩子:

  1. 将此行添加到您的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> 
    
    Run Code Online (Sandbox Code Playgroud)
  2. portal.properties在 Java 源目录中创建一个文件并添加以下行:

    journal.article.form.update = urlTitle
    
    Run Code Online (Sandbox Code Playgroud)
  3. Language.properties在 Java 源目录中创建一个文件并添加以下行:

    urlTitle = Friendly URL
    
    Run Code Online (Sandbox Code Playgroud)
  4. 将文件添加WEB-INF/custom_jsps/html/portlet/journal/article/urlTitle.jsp到 Web 内容文件夹中:

    <%@ 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" />
    
    Run Code Online (Sandbox Code Playgroud)

  • 我不敢相信这个答案没有任何赞成或评论。这个棒极了!!最后一个很好解释的方法来改变网页内容 url 标题。我正在使用“更新数据库”丑陋的模式,但现在我使用你的钩子终于能够修改 url 标题。最后,我可以通过复制其他内容或使用愚蠢的标题来创建网络内容,我可以稍后更改并更改其 url 标题。没有人想要这些东西,或者每个人都放弃并转向 liferay 7 左右??? (2认同)