1

我正在为一个由 Liferay EE 6.0 SP1 提供支持的站点构建一个 Portlet,它将根据用户当前正在查看的内容建议相关或其他有趣的内容。

例如,假设用户在一个页面上,该页面包含一个显示 Web 内容文章 5 的 Web 内容显示 portlet。我的 portlet 将包含指向用户可以查看 Web 内容文章 6 和 7 的页面的 HTML 链接(其中包含的内容被确定为与 Web Content 5) 中的内容相似。

问题出现是因为我不希望我的 portlet 显示指向 Web 内容文章 6 和 7 的 HTML 链接(假设这样的概念甚至是有效的),我希望我的 portlet 显示指向显示这些项目的页面的链接(即,指向包含 Web 内容显示 portlet 的页面的链接,这些 portlet 被配置为显示那些 Web 内容文章)。

有没有办法:

  • 将 Web 内容文章与页面相关联,以便如果我有前者,我可以获取后者?
  • 或者,确定包含显示 Web 内容文章的 portlet 的页面?

或者,如果有一种方法可以获取与特定页面关联的所有 portlet 实例,那么这也可能会导致解决方案。

4

3 回答 3

0

我们目前正在考虑的另一个解决方案是为门户(即“VIEW”、“PRINT”等)创建一个称为“XML”的自定义视图模式。当门户网站检测到浏览器正在请求 XML 模式(类似于Sitecore 检测要使用的设备的方式)时,它会绕过主题,并且所有支持这种 XML 模式的 portlet 都会以 XML 格式呈现它们的内容。

输出可能如下所示:

<?xml version="1.0" encoding="utf-8" ?>
<portal>
  <portlet id="..." title="..." ...>
    <JournalArticle>
      <uuid_>...</uuid_>
      ...
    </JournalArticle>
    ...
  </portlet>
</portal>

然后,一个周期性的过程将以 XML 模式对站点进行爬网并更新 Lucene 索引。

这种方法的明显问题是它要求我们在站点上使用的每个 portlet 都是定制开发的。由于各种原因(有些人会称其为过于雄心勃勃的创意部门;我称其为现有功能集明显不足),我们最终可能不得不走这条路。

于 2011-09-16T13:18:25.193 回答
0

恐怕这是 Liferay 上尚不存在的功能。至少在 Liferay 页面上,有一个关于同一主题的功能请求。讨论日期是 2011 年 3 月,所以可能很快就会有事情发生:)

于 2011-08-05T18:57:56.903 回答
0

解决此问题的一种方法似乎是将“链接到页面”控件添加到 Web 内容文章的结构中。内容管理员可以使用它来创建 Web 内容文章和页面之间的多对一关系。

但是,这种解决方案是有问题的,因为在编辑 Web 内容时选择的页面没有任何限制。

例如,内容管理员可能会创建标题为“我们的历史”的 Web 内容文章,但将“产品”页面指定为该文章的“链接到页面”控件的值。当相关内容 portlet 呈现“我们的历史”文章时,它将创建一个指向“产品”页面的超链接,在这种情况下,该页面不会在任何地方显示“我们的历史”文章。

可以说,这可以被认为是一个功能,但也许有更好的方法来做到这一点。

于 2011-08-03T15:04:06.570 回答