1

我们有多个应用程序共享单个 css 主题。所以我们想把这些通用的 CSS 和资源移动到通用数据库中,并在主题中动态引用它们。

我可以使用以下硬编码路径来引用这些 css:

<resource>
    <content-type>text/css</content-type>
    <href>/.ibmxspres/domino/common/designstore.nsf/custom_layout.css</href>
</resource>

这样它工作正常。但是我们想从配置中获取数据库路径。因此,'/common/designstore.nsf' 路径不必在主题中进行硬编码。

我尝试在 Xpage 的 RenderResponse 之前将 designstore db 路径放在 sessionScope 变量中。并在主题中引用范围变量。

<resource>
    <content-type>text/css</content-type>
    <href>#{sessionScope.commonCSSPath}</href>
</resource>

其中 sessionScope.commonCSSPath = "/.ibmxspres/domino/common/designstore.nsf/custom_layout.css"

请让我知道我们是否可以计算资源中的 db 路径,或者以任何其他方式使用计算路径从其他数据库引用 CSS 文件。

先感谢您。

4

1 回答 1

1

Try calculating the href value using Javascript instead of EL:

<resource>
    <content-type>text/css</content-type>
    <href>#{javascript:sessionScope.commonCSSPath}</href>
</resource>

I am not sure if the timing of beforeRenderResponse and when a theme kicks in, makes it possible to reference a sessionScope variable. Let us know how it goes.

--

Update:

I use the following in a theme to determine the rendered property of a field and it works:

<control>
    ...
    <property>
        <name>rendered</name>
        <value>#{javascript:document.isEditable()}</value> 
    </property>
</control>

I also use a function to determine the value property where the function is a SSJS function that looks up a value in a profile document:

<control>
    ...
    <property>
        <name>value</name>
        <value>#{javascript:getNecessaryValue("SetupProfile", "fieldWithValue")}</value> 
    </property>
</control>

Hopefully this can inspire you to achieve what you want.

于 2012-08-16T04:25:30.767 回答