带有社交媒体链接的 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"></a>
<a class="social-network-icon facebook"
href="http://www.facebook.com/sharer.php?u={$url}"
title="Share on Facebook" target="_blank"></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;
}
在新西兰 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"></a>
<a class="social-network-icon facebook"
href="http://www.facebook.com/sharer.php?u={$url}"
title="Share on Facebook" target="_blank"></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;
}