...
- Federacja Bibliotek Cyfrowych (nie wymaga klucza API)
- Europeana (wymaga klucza API)
- Digital Public Library of America (wymaga klucza API).
Przykłady użycia:
- Repozytorium Instytucjonalne PCSS: http://lib.psnc.pl/publication/517
- Cyfrowe Archiwum Pamiątek: http://fbc.pionier.net.pl/zbiorki/publication/117
W przypadku pytań lub problemów prosimy o kontakt: http://dl.psnc.pl/contact/.
Instalacja instalacji
Dodaj następujący fragment kodu do pliku dlibra-webapp/WEB-INF/layout/templates/simple-inv.vm
pomiędzy liniami #foreach( $comp in $left)
a #if ( ${comp.RenderedTemplate}!= "" )
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
#if(4 == ${velocityCount} && ${pageId} == "docmetadata") <div id="chcontext-widget" class="chcontext-widget-wrapper" data-searchProvider="FBC+" data-resultCount="5" data-queryselector="span#Subject a" data-show-img="false"> <h3 id="chc-widget-header" class="leftDiv"> $res.getProperty("CHContext.SeeAlso") <img src="${homepageUrl}/style/dlibra/theme1/l_open.gif" class="sh_button"></h3> <div class="chcontext-widget-container left_box"></div> </div> <script type="text/javascript" src="http://cdn.jsdelivr.net/chcontext/1.1.0/chcontext.min.js"></script> #end |
Alternatywnie można skopiować plik chcontext.min.js na serwer i wskazać na skrypt zlokalizowany na własnym serwerze.
Powyższa konfiguracja widżetu zakłada, że:
...
Code Block | ||
---|---|---|
| ||
<entry key="CHContext.SeeAlso">See also</entry> |
Chcemy wyszukiwać podobne obiekty bazując na słowach kluczowych. Aby to zrealizować, musimy zmienić kod HTML strony z opisem publikacji w ten sposób, aby umożliwić dostęp do nich. W tym celu musimy zmodyfikować makro dispNode.
Do pliku dlibra-webapp/WEB-INF/components/templates/custom_library.vm
dodajmy następującą treść (treść tego makra można znaleźć w pliku custom_library.vm
, który znajduje się w archiwum dlibra-webapp/WEB-INF/lib/dcore-web-components-x.x.x.jar
):
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
#macro ( dispNode $node $info)
<span class="attributeJustify">
#if($documentMetadata.getAttributeValues($info.Id, $metadataLanguage, $valueLangType).size() > 0)
<a href="${homepageUrl}${servletName}/indexsearch?attId=${info.id}" class="attributeInfo">
#set($t = "#printParentsLabels($node 0)")
#if($printAttParents)
${t.trim()}:
#else
${node.Info.Label}:
#end
</a>
<ul>
<li class="attributeValuesListElement">
<span class="attribute" style="margin:0;">
#foreach($value in $documentMetadata.getAttributeValues($info.Id, $metadataLanguage, $valueLangType))
#if($velocityCount > 1); #end
#if($value.toString().startsWith('http://'))
#set($urlName = ${res.getProperty("element_metadata.link")})
#set($urlValue = $value)
#if($value.toString().indexOf(" ") > 0)
#set($urlValue = $value.toString().substring(0,$value.toString().indexOf(" ")))
#set($urlName = $value.toString().substring($value.toString().indexOf(" "), $value.toString().length()))
#end
<a href="${urlValue}" target="_blank">$urlName</a>
<a href="${urlValue}" target="_blank">
<img alt=" " src="${homepageUrl}/style/common/img/popicon.gif"/></a>
#elseif($value.toString().startsWith('oai:'))
#if(${conf.get("use.fbc")})
<a href="${conf.get("fbc.url")}/id/${value}">${value}</a>
#else
<a href="${homepageUrl}${servletName}/docmetadata?id=${value}">${value}</a>
#end
#elseif(!$info.getRoleId().toString().equals("description"))
#set ( $strValue = $value.toString() )
<script type="text/javascript"><!--
function submit${info.Id}_${velocityCount}() {
submitQuery(${info.Id},'\'${escapeUtil.escapeForJS($strValue)}\'');
}
//--> </script>
<a href="javascript:submit${info.Id}_${velocityCount}()">${escapeUtil.escapeHtml("${value}")}</a>
## perform slice of long data but considering only "description" attributes
#else
#set ( $strValue = $value.toString() )
<script type="text/javascript"><!--
function submit${info.Id}_${velocityCount}() {
return '\'${escapeUtil.escapeForJS($strValue)}\'';
}
//--> </script>
<a href="javascript:submit${info.Id}_${velocityCount}()" id="attr_anch_${info.Id}_${velocityCount}">${escapeUtil.escapeHtml("${value}")}</a>
#end
#end
</span>
</li>
</ul>
#end
</span>
#end
|
a następnie zamieńmy linię:
Code Block |
---|
<span class="attribute" style="margin:0;"> |
na:
Code Block |
---|
<span class="attribute" style="margin:0;" id="${info.RDFName}"> |
Pozostało tylko zmodyfikowanie domyślnego wyglądu, poprzez dodanie następującego kodu w pliku dlibra-webapp/style/dlibra/theme1/simple-inv.css
(przy założeniu, że wykorzystywany temat kolorystyczny to theme1
):
Code Block | ||
---|---|---|
| ||
#chcontext-widget ol { padding-left: 15px; margin: 0; } |