带有社交媒体链接的 DSpace

DSpace with links to social media

在新西兰 Massey University and University of Waikato 的 DSpace 存储库中,有一些按钮可以将 link 共享到存储库中的文档到 Twitter、Facebook 和其他社交媒体。
也让两个站点都具有 Twitter 推文 Window。
我希望你们中有人愿意解释这两种功能是如何添加到 DSpace Mirage 2 主题中的。

我们在 DSpace 安装中使用 addThis 服务:http://www.addthis.com/

该服务允许您自定义站点的共享选项。

对于 Mirage2,我们将以下 javascript 添加到 Mirage2/xsl/core/page-structure.xsl 以将服务添加到我们的站点。 link 将包含您的配置的唯一 ID。

   <script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=..."></script>        

我们还添加了一些自定义 CSS 到 Mirage2/styles/_style.scss

.container {
  padding-left: 50px;
  padding-right: 50px;
}

您可以在我们的存储库站点上预览:https://repository.library.georgetown.edu/

terrywb 的回答涵盖了共享按钮方面——这正是 Peter 链接到的怀卡托大学知识库中使用的服务。我们在 navigation.xsl 而不是 page-structure.xsl 中添加了 JavaScript,并且我们还添加了

<div class="addthis_sharing_toolbox list-group" style="min-height:37.5px"></div>

紧跟在 #ds-options div 的开始标记之后,符合 AddThis 嵌入说明。

首页推文请参考Twitter embedded timeline instructions。我相信我们通过 news-xmlui.xml 添加一个占位符 div,然后触发 theme.xsl 中的模板,该模板拉入 JavaScript 并生成所需的 a 元素 -下面的示例来自 Twitter 文档。

<a class="twitter-timeline"
  href="https://twitter.com/TwitterDev"
  data-width="300"
  data-height="300">
Tweets by @TwitterDev
</a>

如果您想避免像 AddThis 这样的服务跟踪您的用户,或者只是想保持简单,您可以使用简单的共享链接。添加到 dspace-xmlui-mirage2/src/main/webapp/xsl/aspect/artifactbrowser/item-view.xsl 这个模板:

<xsl:template name="share-section">
    <div class="item-page-field-wrapper table hidden-print">
        <h5><i18n:text>xmlui.mirage2.itemSummaryView.ShareSection</i18n:text></h5>

        <xsl:variable name="url">
            <xsl:value-of select="encoder:encode(confman:getProperty('dspace.baseUrl'))" />
            <xsl:value-of select="encoder:encode('/handle/')" />
            <xsl:value-of select="encoder:encode(substring-after(/mets:METS/@OBJID,'handle/'))" />
        </xsl:variable>

        <a target="_blank" i18n:attr="title" title="xmlui.export.mendeley"
                href="http://www.mendeley.com/import/?url={$url}">
            <img src="{concat($theme-path,'/images/mendeley.png')}"
                 i18n:attr="alt" alt="xmlui.export.mendeley" />
        </a>

        <a class="social-network-icon twitter"
           href="http://twitter.com/home/?status={$url}"
           title="Share on Twitter" target="_blank">&#xFEFF;</a>

        <a class="social-network-icon facebook"
           href="http://www.facebook.com/sharer.php?u={$url}"
           title="Share on Facebook" target="_blank">&#xFEFF;</a>
    </div>
</xsl:template>

Here 您可以找到其他社交网络的更多分享链接。

然后,您必须从您希望它出现的地方调用模板。例如,我们将它添加到项目元数据的第一列,在同一文件的 <xsl:template match="dim:dim" mode="itemSummaryView-DIM"> 模板中。

我们从 Expando 获取图标(与社交网络共享的另一种选择,它是免费软件)。这个CSS是为了显示图标:

.social-network-icon {
  background-image: url("../images/social-networks-icons.png");
  background-repeat: no-repeat;
  background-origin: 0;
  display: inline-block;
  height: 16px;
  margin-left: 4px;
  vertical-align: middle;
  width: 16px;
}

.social-network-icon.facebook {
  background-position: -0*16px 0;
}

.social-network-icon.google-plus {
  background-position: -2*16px 0;
}