1

我需要在基于 Websphere Portal 8 主题的自定义主题中创建的 portlet 皮肤中添加最大化、最小化和恢复按钮。目前,皮肤会使用这些生成下拉上下文菜单。

这在版本 6.1.5 和以前使用门户标签时很容易,但版本 7 和 8 大不相同,使用 json 和大量 javascript 来填充菜单,我不清楚这些操作的 url 是如何以及在哪里生成的. 信息中心的信息至少可以说不清楚!

有谁知道如何创建 url 以最小化和最大化皮肤中的 portlet?

4

1 回答 1

2

似乎我找到了在页面上最大化和最小化 portlet 的方法,但是您需要尝试

当您按下上下文菜单按钮时,门户返回带有操作的 json,如下所示

    {
      "type":"Menuitem",
      "actionUrl":"?uri=op:ibm.portal.operations.changeWindowState(%257B%2522windowState%2522%253A%2522normal%2522%252C%2522resourceURI%2522%253A%2522pm%253Aoid%253AZ7_MP8E1O42IGIT10IF8IR80N1052%2540oid%253AZ6_MP8E1O42IGIT10IF8IR80N10C0%2522%257D)",
      "moduleArgs":"windowState=normal",
      "visibilityFn":"wptheme.isValidOp",
      "id":"ibm.portal.operations.changeWindowState",
      "actionHttpMethod":"GET",
      "title":{
         "lang":"en",
         "value":"Restore"
      },
      "description":{
         "lang":"en",
         "value":"Restore"
      },
      "metadata":{
         "windowState":"normal",
         "wid":"Z7_MP8E1O42IGIT10IF8IR80N1052"
      }
   },

当您按下 portelt 菜单操作时,例如最大化,您提交的链接是这样的

http://yuorhost:10039/wps/myportal/yourpage/!ut/p/b1/hdDLDoJADAXQT2ohyGOJgDAKaAhEmI0ZdcRRGEgkJPL1onELdH1uc1ugkAOVrBcl60QjWQUFFNQ4RQfTU_aaSnySKkg2JklMjBVcqZBXvGSXN6SyjiCrhRS1GPj1u4jqk0EHR1CMACfGxqX8EeiPOL4daEaI6B8MC4m7tjCKCfp7fQlofzDXYbbFToE4aGoOW6Bl1ZzHf41XPbV71ttAXx3rOORNyyW01WMI9cS7uaH9AdoyOYI!/dl4/d5/L2dBISEvZ0FBIS9nQSEh/?uri=op:ibm.portal.operations.changeWindowState(%257B%2522windowState%2522%253A%2522maximized%2522%252C%2522resourceURI%2522%253A%2522pm%253Aoid%253AZ7_MP8E1O42IGIT10IF8IR80N1052%2540oid%253AZ6_MP8E1O42IGIT10IF8IR80N10C0%2522%257D)

你对这部分感兴趣

?uri=op:ibm.portal.operations.changeWindowState(%257B%2522windowState%2522%253A%2522maximized%2522%252C%2522resourceURI%2522%253A%2522pm%253Aoid%253AZ7_MP8E1O42IGIT10IF8IR80N1052%2540oid%253AZ6_MP8E1O42IGIT10IF8IR80N10C0%2522%257D)

这是上面 json 中的动作 uri。例如,如果你用这个( http://meyerweb.com/eric/tools/dencoder/ )解码这个字符串两次,你会得到

{"windowState":"maximized","resourceURI":"pm:oid:Z7_MP8E1O42IGIT10IF8IR80N1052@oid:Z6_MP8E1O42IGIT10IF8IR80N10C0"}

pm:oid: = portlet id, oid: = 页面 id。

因此,要 mazimize\minimize portlet,您需要使用解码参数在当前页面上构造链接\发送 get,您可以从 json 中看到另一个操作。

此外,我相信要使这项工作正常进行,您需要在自定义主题中包含门户页面构建器主题 javascript 和其他内容。

希望这可以帮助

于 2013-07-09T09:19:02.720 回答