如何访问资源文件(css,主题文件夹中的 js 文件)并从 FTL 获取 link?
How to access resources file (css, js files from theme folder) and get link from FTL?
我有 "Neon - Bootstrap Admin Theme" (https://themeforest.net/item/neon-bootstrap-admin-theme/6434477)。我的职责是将这个 bootstrap 主题整合到 Ofbiz 16.11.02 中。我试了 3 天,但还是卡住了。
这是我的完整源代码:https://gitlab.com/Donhu/ofbiz
我一直在创建一个新主题,命名为 "BOOTSTRAP",基于主题 "TOMAHAWK"。
我不知道如何访问静态资源文件(css、js、图片)
我已将更多信息添加到 https://gitlab.com/Donhu/ofbiz/blob/master/framework/common/config/CommonEntityLabels.xml
https://gitlab.com/Donhu/ofbiz/tree/master/themes/bootstrap(第一步,我从 TOMAHAWK 克隆而来)。
这些文件(https://gitlab.com/Donhu/ofbiz/tree/master/themes/bootstrap/webapp/bootstrap/assets) come from "Neon - Bootstrap Admin Theme". I don't know how to access, how to get its relative links, and put inside FTL file (for example: https://gitlab.com/Donhu/ofbiz/blob/master/themes/bootstrap/template/Header.ftl#L47当前,它不起作用)
<#if layoutSettings.VT_HDR_JAVASCRIPT?has_content>
<#list layoutSettings.VT_HDR_JAVASCRIPT as javaScript>
<script src="<@ofbizContentUrl>${StringUtil.wrapString(javaScript)}</@ofbizContentUrl>" type="text/javascript"></script>
</#list>
</#if>
我的问题:如何从自定义主题文件夹中访问静态文件,并将其放入 FTL 文件?
主题资源的文件路径存储在主题数据中,例如:
<VisualThemeResource visualThemeId="TOMAHAWK" resourceTypeEnumId="VT_HDR_JAVASCRIPT" resourceValue="/images/jquery/plugins/asmselect/jquery.asmselect-1.0.4a-beta.js" sequenceId="05"/>
<VisualThemeResource visualThemeId="TOMAHAWK" resourceTypeEnumId="VT_HDR_JAVASCRIPT" resourceValue="/images/jquery/plugins/datetimepicker/jquery-ui-timepicker-addon.min-1.4.3.js" sequenceId="07"/>
<VisualThemeResource visualThemeId="TOMAHAWK" resourceTypeEnumId="VT_HDR_JAVASCRIPT" resourceValue="/images/jquery/plugins/fjTimer/jquerytimer-min.js" sequenceId="09"/>
<VisualThemeResource visualThemeId="TOMAHAWK" resourceTypeEnumId="VT_HDR_JAVASCRIPT" resourceValue="/images/jquery/plugins/jquery.maskedinput-1.3.1.min.js" sequenceId="10"/>
<VisualThemeResource visualThemeId="TOMAHAWK" resourceTypeEnumId="VT_HDR_JAVASCRIPT" resourceValue="/images/jquery/plugins/jeditable/jquery.jeditable.js" sequenceId="11"/>
<VisualThemeResource visualThemeId="TOMAHAWK" resourceTypeEnumId="VT_HDR_JAVASCRIPT" resourceValue="/images/jquery/plugins/validate/jquery.validate.min.js" sequenceId="12"/>
在这种情况下,header 的所有 Javascript 资源都存储在具有不同 sequenceId 的相同 resourceTypeEnumId 下以控制加载顺序。
然后您可以在您的 ftl 模板中访问这些资源,例如 Tomahawk 主题中的 Header.ftl:
<#if layoutSettings.VT_HDR_JAVASCRIPT?has_content>
<#list layoutSettings.VT_HDR_JAVASCRIPT as javaScript>
<script src="<@ofbizContentUrl>${StringUtil.wrapString(javaScript)}</@ofbizContentUrl>" type="text/javascript"></script>
</#list>
</#if>
它们在 header 中呈现如下:
<script src="/images/jquery/plugins/asmselect/jquery.asmselect-1.0.4a-beta.js" type="text/javascript"></script>
<script src="/images/jquery/plugins/datetimepicker/jquery-ui-timepicker-addon.min-1.4.3.js" type="text/javascript"></script>
<script src="/images/jquery/plugins/fjTimer/jquerytimer-min.js" type="text/javascript"></script>
<script src="/images/jquery/plugins/jquery.maskedinput-1.3.1.min.js" type="text/javascript"></script>
<script src="/images/jquery/plugins/jeditable/jquery.jeditable.js" type="text/javascript"></script>
<script src="/images/jquery/plugins/validate/jquery.validate.min.js" type="text/javascript"></script>
资源必须存储在 /themes/theme-name/webapp/theme-name/ 子文件夹中,例如 /images、/css 等。当然,您可以指定不同的子文件夹布局并相应地更改 VisualThemeResource 条目。
如果当前用户没有 VISUAL_THEME UserPreference 记录,则默认主题取自 general.properties 文件。您可以在这里设置新的默认主题:
VISUAL_THEME=TOMAHAWK
我有 "Neon - Bootstrap Admin Theme" (https://themeforest.net/item/neon-bootstrap-admin-theme/6434477)。我的职责是将这个 bootstrap 主题整合到 Ofbiz 16.11.02 中。我试了 3 天,但还是卡住了。
这是我的完整源代码:https://gitlab.com/Donhu/ofbiz
我一直在创建一个新主题,命名为 "BOOTSTRAP",基于主题 "TOMAHAWK"。
我不知道如何访问静态资源文件(css、js、图片)
我已将更多信息添加到 https://gitlab.com/Donhu/ofbiz/blob/master/framework/common/config/CommonEntityLabels.xml https://gitlab.com/Donhu/ofbiz/tree/master/themes/bootstrap(第一步,我从 TOMAHAWK 克隆而来)。
这些文件(https://gitlab.com/Donhu/ofbiz/tree/master/themes/bootstrap/webapp/bootstrap/assets) come from "Neon - Bootstrap Admin Theme". I don't know how to access, how to get its relative links, and put inside FTL file (for example: https://gitlab.com/Donhu/ofbiz/blob/master/themes/bootstrap/template/Header.ftl#L47当前,它不起作用)
<#if layoutSettings.VT_HDR_JAVASCRIPT?has_content>
<#list layoutSettings.VT_HDR_JAVASCRIPT as javaScript>
<script src="<@ofbizContentUrl>${StringUtil.wrapString(javaScript)}</@ofbizContentUrl>" type="text/javascript"></script>
</#list>
</#if>
我的问题:如何从自定义主题文件夹中访问静态文件,并将其放入 FTL 文件?
主题资源的文件路径存储在主题数据中,例如:
<VisualThemeResource visualThemeId="TOMAHAWK" resourceTypeEnumId="VT_HDR_JAVASCRIPT" resourceValue="/images/jquery/plugins/asmselect/jquery.asmselect-1.0.4a-beta.js" sequenceId="05"/>
<VisualThemeResource visualThemeId="TOMAHAWK" resourceTypeEnumId="VT_HDR_JAVASCRIPT" resourceValue="/images/jquery/plugins/datetimepicker/jquery-ui-timepicker-addon.min-1.4.3.js" sequenceId="07"/>
<VisualThemeResource visualThemeId="TOMAHAWK" resourceTypeEnumId="VT_HDR_JAVASCRIPT" resourceValue="/images/jquery/plugins/fjTimer/jquerytimer-min.js" sequenceId="09"/>
<VisualThemeResource visualThemeId="TOMAHAWK" resourceTypeEnumId="VT_HDR_JAVASCRIPT" resourceValue="/images/jquery/plugins/jquery.maskedinput-1.3.1.min.js" sequenceId="10"/>
<VisualThemeResource visualThemeId="TOMAHAWK" resourceTypeEnumId="VT_HDR_JAVASCRIPT" resourceValue="/images/jquery/plugins/jeditable/jquery.jeditable.js" sequenceId="11"/>
<VisualThemeResource visualThemeId="TOMAHAWK" resourceTypeEnumId="VT_HDR_JAVASCRIPT" resourceValue="/images/jquery/plugins/validate/jquery.validate.min.js" sequenceId="12"/>
在这种情况下,header 的所有 Javascript 资源都存储在具有不同 sequenceId 的相同 resourceTypeEnumId 下以控制加载顺序。
然后您可以在您的 ftl 模板中访问这些资源,例如 Tomahawk 主题中的 Header.ftl:
<#if layoutSettings.VT_HDR_JAVASCRIPT?has_content>
<#list layoutSettings.VT_HDR_JAVASCRIPT as javaScript>
<script src="<@ofbizContentUrl>${StringUtil.wrapString(javaScript)}</@ofbizContentUrl>" type="text/javascript"></script>
</#list>
</#if>
它们在 header 中呈现如下:
<script src="/images/jquery/plugins/asmselect/jquery.asmselect-1.0.4a-beta.js" type="text/javascript"></script>
<script src="/images/jquery/plugins/datetimepicker/jquery-ui-timepicker-addon.min-1.4.3.js" type="text/javascript"></script>
<script src="/images/jquery/plugins/fjTimer/jquerytimer-min.js" type="text/javascript"></script>
<script src="/images/jquery/plugins/jquery.maskedinput-1.3.1.min.js" type="text/javascript"></script>
<script src="/images/jquery/plugins/jeditable/jquery.jeditable.js" type="text/javascript"></script>
<script src="/images/jquery/plugins/validate/jquery.validate.min.js" type="text/javascript"></script>
资源必须存储在 /themes/theme-name/webapp/theme-name/ 子文件夹中,例如 /images、/css 等。当然,您可以指定不同的子文件夹布局并相应地更改 VisualThemeResource 条目。
如果当前用户没有 VISUAL_THEME UserPreference 记录,则默认主题取自 general.properties 文件。您可以在这里设置新的默认主题:
VISUAL_THEME=TOMAHAWK