【问题标题】:Modifying dspace discover page in xmlui mirage theme修改 xmlui mirage 主题中的 dspace 发现页面
【发布时间】:2015-02-10 07:10:35
【问题描述】:

我正在尝试修改 DSpace 4.2 中的 Mirage 主题以满足我组织的特定需求。我们想添加我们自己的带有自定义搜索字段的搜索框,并修改搜索结果页面。

这是默认 dspace 搜索结果页面的外观:

在修改了cssxsl 之后,我想出了这个布局:

顶部搜索面板是我通过修改page-structure.xsl 文件添加的。现在,我想删除显示在结果页面中的默认搜索框。我查看了所有cssxslsitemap 文件。 通过检查站点地图文件,我发现搜索是通过调用[dspace-source]/dspace-xmlui/src/main/java/org/dspace/app/xmlui/aspect/discovery/SimpleSearch.java 文件进行的。 我评论了添加搜索框的代码部分,并重新构建和重新部署了 dspace,但仍然没有成功。

也许,由于缺乏理解,我没有查看正确的文件。

如果有人指出我正确的方向,那就太好了。 提前致谢

【问题讨论】:

  • 您是否对已成功部署的 java 文件进行了其他修改?您是否将 java 文件从 [dspace-source]/dspace-xmlui 复制到另一个模块? ([dspace-source]/dspace/modules/xmlui 是复制它们的正确位置)
  • @AntoineSnyers 我没有对其他 java 文件进行修改。我需要复制所有的 java 文件还是只复制我所做的更改?
  • 有什么方法可以在不更改源的情况下禁用 xmap 或 xslt 文件中的搜索框?
  • 只是您正在修改的文件。这应该是最简单的方法。
  • @AntoineSnyers 感谢您的帮助。对不起,如果我听起来很愚蠢,但你能告诉我需要放置修改文件的确切目录位置吗? [dspace-source]/dspace/modules/xmlui 包含两个目录 srctarget。将这些文件复制到这个特定文件夹的目的是什么?

标签: css xslt dspace


【解决方案1】:

您可以覆盖生成搜索框的模板。在[dspace]/webapps/xmlui/themes/Mirage/Mirage.xsl 中将其放在<xsl:output indent="yes"/> 行之后:

<xsl:template match="dri:div[@id='aspect.discovery.SimpleSearch.div.discovery-search-box']">
    <!-- You can also add content here
         to replace the default search box
    -->
</xsl:template>

【讨论】:

  • 谢谢!!这有帮助。
【解决方案2】:

您似乎走在正确的道路上。如果你确实注释掉了lines after 131,你应该会看到框被移除的效果。

因此,如果您没有看到更改,则可能是您部署这些更新的方式有问题。你能确认在重启你的tomcat之前你已经执行了mvn clean package和ant update吗?

【讨论】:

  • 感谢您的回答@Bram。实际上,我确实注释掉了您指出的行,并且确实执行了 mvn clean package 和 ant update。我按照此链接重建和部署更新 (wiki.duraspace.org/display/DSPACE/…*%29)。我还清理了tomcat的localhost文件夹。并且确实部署了新的更新,因为我的 dspace 恢复为默认的 Mirage 主题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-12
  • 2017-10-13
相关资源
最近更新 更多