gpt4 book ai didi

themes - 根据安装的 Domino 版本使用 OneUI 主题

转载 作者:行者123 更新时间:2023-12-04 04:51:29 26 4
gpt4 key购买 nike

基于此代码段 ( http://openntf.org/XSnippets.nsf/snippet.xsp?id=oneui-on-the-fly-theme-changer ),我尝试根据 Domino 的发布来计算主题。我想在 Domino<9 上使用“oneuiv2.1”,在 9 版本上使用“oneuiv3.0.2”。

编辑:要明确:我已经可以识别版本,问题是关于在正确的时间计算和设置主题,因为我的以下方法似乎为时已晚。页面呈现,然后主题设置 - 但这是我的印象。

这些是我的第一个方法:

  • 在主题的“扩展”属性中计算主题名称 - 没有用。
  • 在我的 Xpage 的 beforeRenderResponse 和 beforePageLoad 事件中计算并设置 session 属性“xsp.theme”的值 - 这也失败了
  • 设置 bean 来计算值并在 bean 初始化时设置 session 属性 - 结果相同

  • 因为您可以计算(渲染)主题文件中 OneUIv2.1 和 OneUIv3 的所有需要​​的样式表和脚本,但是,嘿,对于这么多资源来说,这很麻烦,不是吗?

    所以我的问题是:您还有其他想法如何实现这一目标吗?如果您的应用程序可以使用具有相同布局的两个主题,独立于应用程序运行的位置 - 无论是在 8.5.x 还是 9 机器上,这将非常方便使用。

    期待讨论:-)

    最佳答案

    您可以在 beforePageLoad 上更改主题事件:

    <xp:view xmlns:xp="http://www.ibm.com/xsp/core"
    beforePageLoad='#{javascript:
    var theme = session.getNotesVersion().startsWith("Release 8") ? "oneuiv2.1" : "oneuiv3.0.2";
    if ( ! theme.equals(context.getSessionProperty("xsp.theme"))) {
    context.setSessionProperty("xsp.theme", theme);
    context.redirectToPage(context.getUrl().toSiteRelativeString(context));
    }
    }'>

    诀窍是设置 session 属性“xsp.theme” 重定向到同一页面 如果 主题必须改变。
    redirectToPage()每个 session 只会发生一次,因为 Notes 版本在 session 期间不会更改。

    关于themes - 根据安装的 Domino 版本使用 OneUI 主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17379316/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com