Skip to content
Snippets Groups Projects
Commit 30478625 authored by Oyvind.Gjesdal's avatar Oyvind.Gjesdal
Browse files

Merge branch '1-ta-inn-endringer-fra-skeivt-arkiv-lodspeakr' into 'master'

Resolve "Ta inn endringer fra skeivt arkiv lodspeakr"

Closes #1

See merge request !1
parents 8b2d9e0d 78905cc2
No related branches found
No related tags found
1 merge request!1Resolve "Ta inn endringer fra skeivt arkiv lodspeakr"
Showing
with 44 additions and 643 deletions
settings.inc.php
*~
components
cache/*
meta/*
meta/db.sqlite
......
......@@ -11,7 +11,9 @@ class Endpoint{
public function query($q, $output = 'json'){
global $conf;
if (!empty($this->params['output'])){
$auxoutput = $this->params['output'];
}
$accept = 'application/sparql-results+json';
if($output != null){
$this->params['output'] = $output;
......@@ -25,7 +27,7 @@ class Endpoint{
$modified = 0;
$now = time();
$cacheFile = "";
if(is_int($conf['cache']['global']) && $conf['cache']['global'] > 0){
if(!empty($conf['cache']['global']) && is_int($conf['cache']['global']) && $conf['cache']['global'] > 0){
$cacheFile = $conf['home']."cache/query".md5($this->sparqlUrl.$q);
if(file_exists($cacheFile)){
$modified = filemtime($cacheFile);
......@@ -59,7 +61,9 @@ class Endpoint{
}
$http_status = intval(curl_getinfo($c, CURLINFO_HTTP_CODE));
curl_close($c);
if (!empty($auxoutput)) {
$this->params['output'] = $auxoutput;
}
if(is_int($conf['cache']['global']) && $conf['cache']['global'] > 0 && $http_status == 200){
file_put_contents($cacheFile,($aux), LOCK_EX);
if($conf['debug']){
......
......@@ -84,7 +84,8 @@ class Utils{
$row[$k]['value'] = $v['value'];
if($v['type'] == 'uri'){
$row[$k]['curie'] = Utils::uri2curie($v['value']);
$row[$k]['localname'] = array_pop(explode(":",$row[$k]['curie']));
$exploded = explode(":",$row[$k]['curie']);
$row[$k]['localname'] = array_pop($exploded);
$row[$k]['uri'] = 1;
}elseif($v['type'] == 'bnode'){
$row[$k]['curie'] = 'blankNode';
......@@ -216,9 +217,9 @@ class Utils{
case 'json':
$ser = ARC2::getRDFJSONSerializer();
break;
case 'jsonp':
$ser = ARC2::getRDFJSONSerializer();
break;
case 'jsonp':
$ser = ARC2::getRDFJSONSerializer();
break;
case 'rdf':
$ser = ARC2::getRDFXMLSerializer();
break;
......@@ -465,7 +466,7 @@ class Utils{
));
//Haanga supports the dot (.) convention only for objects
if(is_array($lodspk)){
if(is_array($lodspk) && !empty($lodspk)){
$lodspkObj = Convert::array_to_object($lodspk);
$lodspk = $lodspkObj;
}
......@@ -486,7 +487,7 @@ class Utils{
$lodspk = $lodspkObj;
}
$query = Utils::addPrefixes($query);
if($lodspk['transform_select_query']==true){
if(!empty($lodspk['transform_select_query']) && $lodspk['transform_select_query']==true){
include_once($conf['home'].'lib/arc2/ARC2.php');
$parser = ARC2::getSPARQLParser();
$parser->parse($query);
......@@ -578,7 +579,9 @@ class Utils{
}
if(Utils::getResultsType($query) == $conf['output']['select']){
$rPointer[$strippedModelFile] = Utils::sparqlResult2Obj($aux);
$fPointer[$strippedModelFile] = $rPointer[$strippedModelFile][0];
if (!empty($rPointer[$strippedModelFile][0])) {
$fPointer[$strippedModelFile] = $rPointer[$strippedModelFile][0];
}
}else{
$lodspk['resultRdf'] = true;
$rPointer[$strippedModelFile] = $aux;
......@@ -638,6 +641,7 @@ class Utils{
public static function getfirstResults($array){
global $conf;
$firstResultsKeyAppearance = true;
if (is_iterable($array)){
foreach($array as $key => $value){
if(!isset($value['value'])){
$aux = Utils::getfirstResults($value);
......@@ -648,6 +652,7 @@ class Utils{
}
}
}
}
return $array;
}
......
......@@ -50,9 +50,9 @@ class ServiceModule extends abstractModule{
$lodspk['model'] = $conf['home'].$conf['model']['directory'].'/'.$conf['service']['prefix'].'/'.$serviceName.'/';
$lodspk['view'] = $conf['home'].$conf['view']['directory'].'/'.$conf['service']['prefix'].'/'.$serviceName.'/'.$extension.'.template';
}else{
if($lodspk['model'] == null && $lodspk['view'] == null){
if(is_null($lodspk['model']) && is_null($lodspk['view'])){
//checking other components
if(sizeof($conf['components']['services'])>0){
if(!empty($conf['components']['services']) && count($conf['components']['services'])>0){
foreach($conf['components']['services'] as $service){
$serviceArray = explode("/", $service);
if($serviceName == end($serviceArray)){
......
......@@ -12,7 +12,7 @@ class StaticModule extends abstractModule{
global $endpoints;
global $lodspk;
$q = preg_replace('|^'.$conf['basedir'].'|', '', $localUri);
if(sizeof($q)>0 && file_exists($conf['home'].$conf['static']['directory'].$q)){
if(strlen($q)>0 && file_exists($conf['home'].$conf['static']['directory'].$q)){
return $q;
}
return FALSE;
......@@ -24,8 +24,9 @@ class StaticModule extends abstractModule{
global $uri;
global $acceptContentType;
global $endpoints;
global $lodspk;
$extension = array_pop(explode(".", $file));
global $lodspk;
$filenamearray =explode(".",$file);
$extension = end($filenamearray);
$ct = $this->getContentType($extension);
header("Content-type: ".$ct);
$uri = $localUri;
......@@ -62,7 +63,7 @@ class StaticModule extends abstractModule{
'js' => 'application/javascript',
'json' => 'application/json',
'jsonp'=> 'application/javascript',
'nt' => 'text/plain',
'nt' => 'text/plain',
'ttl' => 'text/turtle',
'png' => 'image/png',
'jpg' => 'image/jpeg',
......@@ -70,7 +71,8 @@ class StaticModule extends abstractModule{
'bmp' => 'image/bmp',
'pdf' => 'application/pdf',
'zip' => 'application/zip',
'gz' => 'application/gzip'
'gz' => 'application/gzip',
'svg' => 'image/svg+xml'
);
//Add new/override existing mime types defined by user
......
......@@ -68,7 +68,9 @@ class TypeModule extends abstractModule{
$modelFile = $obj['modelFile'];
$lodspk['model'] = $conf['model']['directory'];
$viewFile = $obj['viewFile'];
if (!empty($obj['view'])){
$lodspk['view'] = $obj['view']['directory'];
}
if($viewFile == null){
$lodspk['transform_select_query'] = true;
}
......@@ -92,7 +94,7 @@ class TypeModule extends abstractModule{
//chdir($conf['home'].$conf['model']['directory']);
Utils::queryFile($modelFile, $endpoints['local'], $results, $firstResults);
if(!$lodspk['resultRdf']){
if(empty($lodspk['resultRdf'])){
$results = Utils::internalize($results);
$firstAux = Utils::getfirstResults($results);
......@@ -123,8 +125,14 @@ class TypeModule extends abstractModule{
//Get the firstResults type available
//$typesAndValues = array('rdfs:Resource' => -1);
//$typesAndValues = array('rdfs__Resource' => -1);
$typesAndValues = array('bibo:Document' => -1);
$typesAndValues = array('bibo__Document' => -1);
//$typesAndValues = array('bibo:Document' => -1);
if (isset($conf['typesAndValues'])){
$typesAndValues = $conf['typesAndValues'];
}
else{
$typesAndValues = array('bibo__Document' => -1);
}
if(!isset($conf['disableComponents']) || $conf['disableComponents'] != true){
foreach($t as $v){
$curie = Utils::uri2curie($v);
......@@ -169,7 +177,7 @@ class TypeModule extends abstractModule{
break;
}else{
$found = false;
if(sizeof($conf['components']['types'])>0){
if(!empty($conf['components']['types']) && sizeof($conf['components']['types'])>0){
foreach($conf['components']['types'] as $type){
$typeArray = explode("/", $type);
$typeName = end($typeArray);
......
......@@ -12,7 +12,7 @@ class UriModule extends abstractModule{
global $endpoints;
global $lodspk;
if($conf['disableComponents'] == true){
if(!empty($conf['disableComponents']) && $conf['disableComponents'] == true){
return FALSE;
}
require_once('classes/MetaDb.php');
......@@ -21,8 +21,8 @@ class UriModule extends abstractModule{
$pair = Queries::getMetadata($localUri, $acceptContentType, $metaDb);
#Stripping html to look up and write correct url in database if not exists
#Fix to handle pages that have not been loaded after cleaning out database
$localUri_stripped = eregi_replace("^(.+)\.html", "\\1", $localUri);
$uri_stripped = eregi_replace("^(.+)\.html", "\\1", $uri);
$localUri_stripped = preg_replace("/^(.+)\.html$/i", "\\1", $localUri);
$uri_stripped = preg_replace("/^(.+)\.html$/i", "\\1", $uri);
if($pair == NULL){ // Original URI is not in metadata
if(Queries::uriExist($uri_stripped, $endpoints['local'])){
$page = Queries::createPage($uri_stripped, $localUri_stripped, $acceptContentType, $metaDb);
......
......@@ -4,8 +4,8 @@ $conf['version'] = '20130612';
$conf['output']['select'] = 'json';
$conf['output']['ask'] = 'json';
$conf['output']['describe'] = 'rdf';
$conf['endpointParams']['config']['show_inline'] = 0;
$conf['endpointParams']['config']['named_graph'] = '';
//$conf['endpointParams']['config']['show_inline'] = 0;
//$conf['endpointParams']['config']['named_graph'] = '';
//ALternative endpoints
$conf['endpoint']['dbpedia'] = 'http://dbpedia.org/sparql';
$conf['endpoint']['data_gov'] = 'http://services.data.gov/sparql';
......
<div id="full-meta-view" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
<h4 class="modal-title" id="myModalLabel">{% for row in models.main %}{{ row.title.value }}{% endfor %} - data</h4>
</div>
<div class="modal-body">
<p>Dette er våre data om <i>{% for row in models.main %}{{ row.title.value }}{%endfor%}</i>. Her får du også et innblikk i hvordan vår samling er modellert og relasjonene er bygget opp.
<table style="table-layout:fixed; word-wrap: break-word;" class="table table-striped" about="{{uri}}">
<thead>
<tr><th>Subjekt</th><th>Predikat</th><th>Objekt</th></tr>
</thead>
{% for row in models.po %}
<tr>
<td>{%if forloop.first%}<a href='{{lodspk.this.value}}'>{{lodspk.this.curie}}</a>{%endif%}</td>
<td><a href='{{row.p.value}}'>{{row.p.curie}}</a></td>
<td>
{%if row.o.uri == 1%}
<a rel='{{row.p.value}}' href='{{row.o.value}}'>{{row.o.curie}}</a>
{%else%}
<span property='{{row.p.value}}'>{{row.o.value}}</span>
{%endif%}
</td>
</tr>
{% endfor %}
{% for row in models.sp %}
<tr>
<td><a href='{{row.s.value}}'>{{row.s.curie}}</a></td>
<td><a rev='{{row.s.value}}' href='{{row.p.value}}'>{{row.p.curie}}</a></td>
<td>{%if forloop.first%}<a href='{{lodspk.this.value}}'>{{lodspk.this.curie}}</a>{%endif%}</td>
</tr>
{% endfor %}
<tfoot>
<tr><th>Subjekt</th><th>Predikat</th><th>Objekt</th></tr>
</tfoot>
</table>
</div>
</div>
</div>
</div>
{% if models.collections|length != 0 %}
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title"><i class="fa fa-archive"></i> Samling</h3>
</div>
<div class="panel-body">
{% for row in models.collections %}
{% if row.logo %}
<div class="col-md-6 col-lg-6 col-sm-12 col-xs-12">
<div class="col-lg-4 col-md-4 col-sm-2 hidden-xs">
<a href="{{row.uri.value}}"><img class="img-responsive img-border img-circle" src="{{row.logo.value}}"/></a>
</div>
<div class="col-lg-8 col-md-8 col-sm-10">
<h4><a href="{{row.uri.value}}">{% if row.title && row.title.value != "" %}{{row.title.value}}{% else %}{% if row.label && row.label.value != "" %}{{row.label.value}}{% else %} {{row.identifier.value}}{%endif%}{%endif%}</a></h4>
{% if row.description %}
<p>{{row.description.value|truncatechars:65}} <a href="{{row.uri.value}}">se mer</a>{%endif%}</p>
</div>
</div>
{% endif %}
{% endfor %}
{% for row in models.collections %}
{% if !row.logo %}
<div class="col-md-6 col-lg-6 col-sm-10 col-xs-10 col-sm-offset-2 col-lg-offset-0 col-md-offset-0">
<h4><a href="{{row.uri.value}}">{% if row.title && row.title.value != "" %}{{row.title.value}}{% else %}{% if row.label && row.label.value != "" %}{{row.label.value}}{% else %} {{row.identifier.value}}{%endif%}{%endif%}</a></h4>
{% if row.description %}
<p class="text-muted">{{row.description.value|truncatewords:25}} <a href="{{row.uri.value}}">se mer</a>{%endif%}</p>
</div>
{% endif %}
{% endfor %}
</div>
</div>
{% endif %}
<div id="disqus_thread" class="col-md-12"></div>
<script type="text/javascript">
/* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
var disqus_shortname = 'ubblod';
/* * * DON'T EDIT BELOW THIS LINE * * */
(function() {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
/* * * DON'T EDIT BELOW THIS LINE * * */
(function () {
var s = document.createElement('script'); s.async = true;
s.type = 'text/javascript';
s.src = '//' + disqus_shortname + '.disqus.com/count.js';
(document.getElementsByTagName('HEAD')[0] || document.getElementsByTagName('BODY')[0]).appendChild(s);
}());
</script>
<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
<a href="http://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>
\ No newline at end of file
<div id="dzi1"></div>
<!-- <div id="navigatorDiv"></div> -->
<div class="hidden-md hidden-lg hidden-xs hidden-sm" id="dzi2"></div>
<div id="dzi-control" class="row">
<ul class="list-inline">
<li id="resetZoom"><a class="btn btn-default"><i class="fa fa-arrows-alt"></i> <span class="hidden-xs">tilpass zoom</span></a></li>
<li id="full-page"><a class="btn btn-default" alt="Fullskjermvisning av og på"><i id="fullPage"></i></a></li>
<li><i class="text-muted fa fa-minus"></i></li>
<li id="zoom-out"><button class="btn btn-default"><i class="fa fa-search-minus"></i></button></li>
<li id="zoom-in"><button class="btn btn-default"><i class="fa fa-search-plus"></i></button></li>
{% if models.dzi|length > 1 %}
<li id="previous"><a class="btn btn-default"><i class="fa fa-arrow-left"></i> forrige</a></li>
<li>gå til side &nbsp;<input style="width: 55px;" type="number" id="page" value="1"/> av <span id="tileSourcesLength"></span></li>
<li id="next"><a class="btn btn-default">neste <i class="fa fa-arrow-right"></i></a></li>
{%endif%}
</ul>
</div>
<!-- <div id="navigatorDiv" style="width: 100px; height: 100px;"></div> -->
<script type="text/javascript" src="{{lodspk.home}}js/bower_components/openseadragon/bower_components/openseadragon/built-openseadragon/openseadragon/openseadragon.js"></script>
<script type="text/javascript">
var viewer = OpenSeadragon({
id: "dzi1",
prefixUrl: "{{lodspk.home}}vjs/openseadragon/images/",
tileSources: [
{% for row in models.dzi %}{%if !forloop.first && models.dzi|length > 1 %},{%endif%}
"{{ row.dziUri.value }}"{% endfor %}
],
//visibilityRatio: 0.3,
//minZoomLevel: 0.7,
constrainDuringPan: false,
preserveViewport: false,
sequenceMode: true,
//minZoomImageRatio: 0.6,
minPixelRatio: 0.5,
animationTime: 0.8,
springStiffness: 8,
showNavigator: true,
//navigatorId: "navigatorDiv",
toolbar: "dzi-control",
zoomInButton: "zoom-in",
zoomOutButton: "zoom-out",
homeButton: "resetZoom",
fullPageButton: "full-page",
nextButton: "next",
previousButton: "previous"
});
$('#page').change(function() {
chpage = $('#page').val();
currentPage = chpage-1;
viewer.goToPage(chpage-1);
});
viewer.addHandler('page', function(event){
$('#page').val(event.page+1);
});
function tileSourceLength() {
length = viewer.tileSources.length ;
$('#tileSourcesLength').append(length);
};
tileSourceLength();
// Under forsoek paa aa lage flip paa ikon for aa gaa inn og ut av fullskjermvisning
function fullPage() {
if (viewer.fullScreen === true) {
$('#fullPage').removeClass('fa fa-expand').addClass('fa fa-compress');
}
else {
$('#fullPage').removeClass('fa fa-compress').addClass('fa fa-expand');
}
};
fullPage();
</script>
<footer class="footer hidden-print">
<div class="container">
<div class="row">
<div class="col-md-3">
<div class="col-md-12 hidden-xs">
<img class="col-md-12" data-pin-nopin="true" src="{{lodspk.home}}img/UiBmerke_grayscale.svg" />
</div>
<p class="text-center"><span class="marcus-logo">Marcus</span> er Spesialsamlingene til <a href="http://www.uib.no/ub">Universitetsbiblioteket i Bergen</a> sin portal til digitaliserte manuskript, fotografi, diplomer og mye mer. Oppkalt etter <a href="/instance/person/f37c8581-29b2-4724-8900-965223b3cf06">Marcus Selmer</a>, Bergens første fotograf.</p>
</div>
<div class="col-md-3">
<!--
<ul class="nav">
<li><a href="{{lodspk.home}}collections"><i style="color: black;" class="fa fa-th fa-fw"></i> Samlinger</a></li>
<li><a href="{{lodspk.home}}topics"><i style="color: black;" class="fa fa-tags fa-fw"></i> Emner</a></li>
<li><a href="{{lodspk.home}}persons"><i style="color: black;" class="fa fa-users fa-fw"></i> Personer</a></li>
<li><a href="{{lodspk.home}}conceptschemes"><i style="color: black;" class="fa fa-sitemap"></i></i> Register</a></li>
<li><a href="{{lodspk.home}}manuscripts"><i class="fa fa-book"></i> Manuskript</a></li>
<li><a href="{{lodspk.home}}charters"><i class="fa fa-book"></i> Diplom</a></li>
</ul>
-->
<ul class="list-unstyled">
<li class="h5"><i class="fa fa-info fa-lg fa-fw"></i> <a href="{{lodspk.home}}about-marcus">Om nettsiden</a></li>
<li class="h5"><i class="fa fa-cubes fa-lg fa-fw"></i> <a href="http://sparql.ub.uib.no">Åpne data (Sparql)</a></li>
<!-- <li class="h5"><a href="{{lodspk.home}}rights.html"><span class="glyphicon glyphicon-copyright-mark"></span> Rettigheter</a></li> -->
<li class="h5"><i class="fa fa-cog fa-lg fa-fw"></i> <a href="{{lodspk.home}}technology.html">Teknologi</a></li>
<li class="h5"><i class="fa fa-bar-chart-o fa-lg fa-fw"></i> <a href="{{lodspk.home}}stats">Statistikk</a></li>
</ul>
</div>
<div class="col-md-6">
<div class="row">
<div class="col-md-6 col-sm-6">
<h4><a href="http://spesial.b.uib.no/?page_id=505">Manuskript- og librarsamlingen</a></h4>
<p><i class="fa fa-clock-o"></i> <a href="http://www.uib.no/ub/#uib-tab--7">Åpningstider og kontaktinformasjon</a></p>
<address>
<i class="fa fa-envelope"></i> <a href="mailto:mslib@ub.uib.no">Epost</a>
</address>
<ul class="hidden-xs list-unstyled">
<li><i class="fa fa-angle-right fa-fw"></i> <a href="http://spesial.b.uib.no/?page_id=1928">Samlingene</a></li>
<li><i class="fa fa-angle-right fa-fw"></i> <a href="http://spesial.b.uib.no/?page_id=1749">Om Manuskriptsamlingen</a></li>
<li><i class="fa fa-angle-right fa-fw"></i> <a href="http://spesial.b.uib.no/?page_id=1013">Utstillinger</a></li>
<li><i class="fa fa-angle-right fa-fw"></i> <a href="http://spesial.b.uib.no/?page_id=762">Godbiter fra samlingene</a></li>
<li><i class="fa fa-angle-right fa-fw"></i> <a href="http://spesial.b.uib.no/?page_id=776">Presse</a></li>
<li><i class="fa fa-angle-right fa-fw"></i> <a href="http://spesial.b.uib.no/?page_id=1914">Digitalisert materiale</a></li>
</ul>
</div>
<div class="col-md-6 col-sm-6">
<h4><a href="http://spesial.b.uib.no/?page_id=14">Billedsamlingen</a></h4>
<p><i class="fa fa-clock-o"></i> <a href="http://www.uib.no/ub/#uib-tab--6">Åpningstider og kontaktinformasjon</a></p>
<address>
<i class="fa fa-envelope"></i> <a href="mailto:billed@ub.uib.no">Epost</a>
</address>
<ul class="hidden-xs list-unstyled">
<li><i class="fa fa-angle-right fa-fw"></i> <a href="http://spesial.b.uib.no/?page_id=97">Samlingene</a></li>
<li><i class="fa fa-angle-right fa-fw"></i> <a href="http://spesial.b.uib.no/?page_id=304">Vilkår for bruk av Universitetsbiblioteket i Bergens Billedsamling</a></li>
<li><i class="fa fa-angle-right fa-fw"></i> <a href="http://spesial.b.uib.no/?page_id=24">Priser og tjenester</a></li>
<li><i class="fa fa-angle-right fa-fw"></i> <a href="http://spesial.b.uib.no/?page_id=175">Nettutstillinger</a></li>
<li><i class="fa fa-angle-right fa-fw"></i> <a href="http://spesial.b.uib.no/?page_id=229">Tekster og artikler fra Billedsamlingen</a></li>
</ul>
<p><i class="fa fa-facebook-square"></i> <a href="https://www.facebook.com/pages/Billedsamlingen/132221843465746">Følg Billedsamlingen på Facebook</a></p>
</div>
</div>
</div>
</div>
<div class="row">
<hr style="border: 1px solid #ddd;">
<div class="col-md-12">
<div typeof="dcat:Dataset" resource="http://data.ub.uib.no/dataset/marcus">
<p>
<a rel="dct:license" href="http://creativecommons.org/publicdomain/zero/1.0/">
<img src="/img/cc.large.png" style="border-style: none;" width="20px" alt="CC0" />
<img src="/img/zero.large.png" style="border-style: none;" width="20px" alt="CC0" />
</a>
<small property="dct:rights"><span rel="dct:publisher" resource="http://data.ub.uib.no/instance/organization/universitetsbiblioteket-i-bergen">Universitetsbiblioteket i Bergen</span> deler <span property="dct:title">Marcus datasettet</span> fritt.</small><br>
<small>Innholdet i Marcus er derimot ikke delt med CC0. Innhold vil bli merket med korrekt lisens.</small>
</p>
</div>
<p><small>Feil på sidene? Kontakt <a href="maito:tarje.lavik@ub.uib.no">webredaktør</a>.</small></p>
</div>
</div>
</div>
</footer>
<script type="text/javascript">
$('.bs-sidebar').affix({
offset: {
top: 120,
offset: { top: 120 },
bottom: function () {
return (this.bottom = $('footer').outerHeight(false)-300)
}
}
})
</script>
<script src="{{lodspk.home}}js/holder.js"></script>
<!-- Piwik -->
<script type="text/javascript">
var _paq = _paq || [];
_paq.push(["trackPageView"]);
_paq.push(["enableLinkTracking"]);
(function() {
var u=(("https:" == document.location.protocol) ? "https" : "http") + "://stats.uib.no/";
_paq.push(["setTrackerUrl", u+"piwik.php"]);
_paq.push(["setSiteId", "23"]);
var d=document, g=d.createElement("script"), s=d.getElementsByTagName("script")[0]; g.type="text/javascript";
g.defer=true; g.async=true; g.src=u+"piwik.js"; s.parentNode.insertBefore(g,s);
})();
</script>
<!-- End Piwik Code -->
\ No newline at end of file
<!DOCTYPE html>
<html lang="no" prefix="og: http://ogp.me/ns#
dct: http://purl.org/dc/terms/
dcat: http://www.w3.org/ns/dcat#">
<head>
<meta charset="utf-8">
<title>{% if first.main.title.value != "" %}{{first.main.title.value}} - {% else %}{% if first.main.label.value != "" %}{{first.main.label.value}} - {%endif%}{%endif%}{{lodspk.title}}</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<link rel="shortcut icon" type="image/x-icon" href="{{lodspk.home}}/img/favicon.ico">
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-72707758-1', 'auto');
ga('send', 'pageview');
</script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<!-- <script type="text/javascript" src="{{lodspk.home}}js/jquery.js"></script> -->
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
<!-- Latest compiled and minified JavaScript -->
<script src="//netdna.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
<link href="{{lodspk.home}}css/basic.css" rel="stylesheet" type="text/css" media="screen" />
<link href="{{lodspk.home}}css/print.css" rel="stylesheet" type="text/css" media="print" />
<!-- Font Awesome -->
<!-- <link rel="stylesheet" href="{{lodspk.home}}static/Font-Awesome/css/font-awesome.min.css"> -->
<link href="//netdna.bootstrapcdn.com/font-awesome/4.6.1/css/font-awesome.min.css" rel="stylesheet">
<!-- Leaflet CSS -->
<link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.6.4/leaflet.css" />
<!--[if lte IE 8]>
<link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.6.4/leaflet.ie.css" />
<![endif]-->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="{% if first.main.description.value %}{{first.main.description.value}}{% else %}{% if first.description.description.value %}{{first.description.description.value}}{% else %}Marcus er Spesialsamlingene til Universitetsbiblioteket i Bergen sin portal til digitaliserte manuskript, fotografi, diplomer og mye mer. Oppkalt etter Marcus Selmer, Bergens første fotograf.{% endif %}{% endif %}">
<meta name="author" content="{{first.maker.makerName.value}}">
<link rel="canonical" href="{{lodspk.local.value}}">
<!-- FACEBOOK INSIGHT -->
<meta property="fb:admins" content="717130125" />
<!-- FACEBOOK OPEN GRAPH -->
<meta property="og:type" content="{%if lodspk.local.value == "http://marcus.uib.no/home" %}website{%else%}article{%endif%}"/>
<meta property="og:title" content="{% if first.main.title != "" %}{{first.main.title.value}}{% else %}{% if first.main.label != "" %}{{first.main.label.value}}{%endif%}{%endif%}"/>
<meta property="og:description" content="{% if first.main.description.value %}{{first.main.description.value}}{% else %}{% if first.description.description.value %}{{first.description.description.value}}{% else %}Marcus er Spesialsamlingene til Universitetsbiblioteket i Bergen sin portal til digitaliserte manuskript, fotografi, diplomer og mye mer. Oppkalt etter Marcus Selmer, Bergens første fotograf.{% endif %}{% endif %}"/>
<meta property="og:image" content="{%if first.digitalresources.imgMD %}{{first.digitalresources.imgMD.value}}{% else %}{{first.digitalresources.imgSM.value}}{% endif %}"/>
<meta property="og:image" content="{%if main.logo %}{{main.logo.value}}{% endif %}"/>
<meta property="og:url" content="{{lodspk.local.value}}"/>
<meta property="og:site_name" content="Marcus"/>
<!-- TWITTER CARD -->
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:url" content="{{lodspk.local.value}}">
<meta name="twitter:description" content="{% if first.description.description.value %}{{first.description.description.value}}{% else %}Marcus er Spesialsamlingene til Universitetsbiblioteket i Bergen sin portal til digitaliserte manuskript, fotografi, diplomer og mye mer. Oppkalt etter Marcus Selmer, Bergens første fotograf.{% endif %}">
<meta name="twitter:image:src" content="{%if first.digitalresources.imgMD %}{{first.digitalresources.imgMD.value}}{% else %}{{first.digitalresources.imgSM.value}}{% endif %}">
<meta name="twitter:domain" content="marcus.uib.no">
<meta name="twitter:site" content="@UiB_UB">
<meta name="twitter:creator" content="@UiB_UB">
<!-- CITATION -->
<meta name="citation_title" content="{% if first.main.title != "" %}{{first.main.title.value}}{% else %}{% if first.main.label != "" %}{{first.main.label.value}}{%endif%}{%endif%}">
<meta name="citation_publisher" content="Avdeling for spesialsamlinger, Universitetsbiblioteket i Bergen">
{% spaceless %}
{% if first.maker.makerName.value != null %}
{% for row in models.maker %}
{% ifchanged row.maker.value %}
<meta name="dc.creator" content="{{ row.makerName.value }}" />
{% endifchanged %}
{% endfor %}
{% endif %}
{% endspaceless %}
<script type="text/javascript" src="{{lodspk.home}}js/qrcode/jquery.qrcode-0.7.0.min.js"></script>
<link href='http://fonts.googleapis.com/css?family=IM+Fell+Great+Primer' rel='stylesheet' type='text/css'>
<link rel="alternate" type="application/rdf+xml" title="RDF/XML Version" href="{{lodspk.local.value}}.rdf" />
<link rel="alternate" type="text/turtle" title="Turtle Version" href="{{lodspk.local.value}}.ttl" />
<link rel="alternate" type="text/plain" title="N-Triples Version" href="{{lodspk.local.value}}.nt" />
<link rel="alternate" type="application/json" title="RDFJSON Version" href="{{lodspk.local.value}}.json" />
<script type="text/javascript" src="{{lodspk.home}}js/bootstrap-typeahead.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('.typeahead').typeahead({
minLength: 4,
source: function (typeahead, query) {
$('.typeahead').addClass('wait');[]
return $.get('{{lodspk.home}}search/'+encodeURIComponent(query), { }, function (data) {
$('.typeahead').removeClass('wait');[]
return typeahead.process(data);
}, 'json');
},
onselect: function (obj) {
$('.typeahead').attr('disabled', true);
window.location = obj.uri;
}
});
$(".header-search").on('keyup', function(){$("form").attr("action", '{{lodspk.home}}search/'+$(this).val())});
});
</script>
<script src="http://cdn.leafletjs.com/leaflet-0.6.4/leaflet.js"></script>
<!-- <script src="{{lodspk.home}}js/Leaflet/dist/leaflet.js"></script> -->
<script src="{{lodspk.home}}js/Leaflet/leaflet-providers.js"></script>
<!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
</head>
<body>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '332990033526856',
xfbml : true,
version : 'v2.5'
});
};
(function(d, s, id){
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
<div id="wrap">
<header>
<nav style="margin-bottom: 0;" class="navbar navbar-inverse navbar-static-top marcus-header" role="navigation">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<i class="fa fa-bars fa-2x" aria-hidden="true"></i>
</button>
<img class="logo" style="float: left;" data-pin-nopin="true" src="{{lodspk.home}}img/UiBmerke_white.svg">
<a class="navbar-brand" href="{{lodspk.home}}">{{lodspk.title}}</a>
<a class="nav-subtitle hidden-xs hidden-sm hidden-md" href="{{lodspk.home}}"><small>Spesialsamlingene ved <br>Universitetsbiblioteket i Bergen</small></a>
</div>
<div class="collapse navbar-collapse">
<form class="navbar-form pull-right" role="search" method="get" action="/search">
<div class="input-group">
<input type="text" class="form-control" placeholder="Søk ..." name="q">
<span class="input-group-btn">
<button type="submit" class="btn btn-default">
<i class="fa fa-search fa-lg">
<span class="sr-only">Search</span>
</i>
</button>
</span>
</div>
</form>
<ul class="nav navbar-nav navbar-right">
<li><a href="{{lodspk.home}}">Hjem</a></li>
<li class="dropdown">
<a id="browse1" class="dropdown-toggle" role="button" data-toggle="dropdown" data-target="#" href="#"> Meny <i class="fa fa-chevron-down" aria-hidden="true"></i></a>
<ul class="dropdown-menu" aria-labelledby="browse1" role="meny">
<li><a href="{{lodspk.home}}collections"><i style="color: #aaa;" class="fa fa-th fa-fw"></i> Samlinger</a></li>
<li><a href="{{lodspk.home}}search/?filter=type.exact%23Fotografi&filter=type.exact%23Album&filter=type.exact%23Grafikk&filter=type.exact%23Postkort"><i style="color: #aaa;" class="fa fa-picture-o fa-fw"></i> Bilder</a></li>
<li><a href="{{lodspk.home}}events"><i style="color: #aaa;" class="fa fa-calendar fa-fw"></i> Hendelser</a></li>
<li><a href="{{lodspk.home}}albums"><i style="color: #aaa;" class="fa fa-book fa-fw"></i> Album</a></li>
<li><a href="{{lodspk.home}}exhibitions"><i style="color: #aaa;" class="fa fa-university fa-fw"></i> Utstillinger</a></li></ul>
</li>
<li class="dropdown">
<a id="browse1" class="dropdown-toggle" role="button" data-toggle="dropdown" data-target="#" href="#"> Om <i class="fa fa-chevron-down" aria-hidden="true"></i></a>
<ul class="dropdown-menu" aria-labelledby="browse2" role="meny">
<li><a href="{{lodspk.home}}about-marcus"><i class="fa fa-archive"></i> Om Marcus</a></li>
<li><a href="http://sparql.ub.uib.no"><i class="fa fa-cubes"></i> Åpne data (Sparql)</a></li>
<li><a href="{{lodspk.home}}technology.html"><i style="color: black;" class="fa fa-cog"></i> Teknologi</a></li>
<li><a href="{{lodspk.home}}stats"><i style="color: black;" class="fa fa-bar-chart-o"></i> Statistikk</a></li>
</ul>
</li>
<li>
<a href="/cart.html"><span class="fa fa-lg fa-shopping-cart"></span> <span class="hidden">Handlekurv</span> <span style="margin-top: -8px;" class="label label-primary simpleCart_quantity"></span></a>
</li>
</ul>
</div>
</div>
</nav><!--/.nav-collapse -->
</header>
<li><a href="{{lodspk.home}}collections"><i style="color: black;" class="fa fa-th fa-fw"></i> Samlinger</a></li>
<li><a href="{{lodspk.home}}search/?filter=type.exact%23Fotografi&filter=type.exact%23Album&filter=type.exact%23Grafikk&filter=type.exact%23Postkort"><i style="color: black;" class="fa fa-picture-o fa-fw"></i> Bilder</a></li>
<li class="hidden"><a href="{{lodspk.home}}topics"><i style="color: black;" class="fa fa-tags fa-fw"></i> Emner</a></li>
<li class="hidden"><a href="{{lodspk.home}}agents"><i style="color: black;" class="fa fa-users fa-fw"></i> Aktører</a></li>
<li><a href="{{lodspk.home}}events"><i style="color: black;" class="fa fa-calendar fa-fw"></i> Hendelser</a></li>
<li><a href="{{lodspk.home}}albums"><i style="color: black;" class="fa fa-book fa-fw"></i> Album</a></li>
<li><a href="{{lodspk.home}}exhibitions"><i style="color: black;" class="fa fa-university fa-fw"></i> Utstillinger</a></li>
\ No newline at end of file
<li><a href="{{ row.uri.value }}"><span class="fa fa-user"></span> {{row.label.value}}</a></li>
<div class="map-wrap panel panel-default">
{% if first.main.hasLong.value == "false" %}
<div class="panel-heading">
<h3 class="panel-title"><i class="fa fa-map-marker"></i> Tilknyttede steder</h3>
</div>
{% endif %}
{% if first.main.hasLong.value == "true" %}
<div id="map"></div>
{% endif %}
<div class="panel-body">
<ul class="places-inline-list">
{% for row in models.places %}
{% ifchanged row.uri.value %}
<li><i class="fa fa-map-marker"></i> <a href="{{ row.uri.value }}">{{row.label.value}}</a></li>
{% endifchanged %}
{% endfor %}
</ul>
</div>
</div>
<script>
var map = L.map('map', {maxZoom: 18});
var bounds = [{% for row in models.places %}{%if !forloop.last && row.lat.value != null%}, {%endif%}{% if row.lat.value != null %}[{{ row.lat.value }}, {%endif%}{% if row.long.value != "" %}{{ row.long.value }}]{%endif%}{% endfor %}];
bounds = $.grep(bounds,function(n){ return(n) });
if (bounds.length > 1) { map.fitBounds(new L.LatLngBounds(bounds)); } else { map.setView(bounds[0], 12);}
var defaultLayer = L.tileLayer.provider('OpenStreetMap.Mapnik').addTo(map);
var baseLayers = [ 'OpenStreetMap.Mapnik', 'MapQuestOpen.OSM', 'MapQuestOpen.Aerial', 'Stamen.Watercolor' ];
var overlayLayers = [ 'Kartverket', 'Rodekart9', 'Rodekart4', 'Rodekart1' ];
L.control.layers.provided(baseLayers, overlayLayers, {collapsed: true}).addTo(map);
{% for row in models.places %}{% if row.long.value != null %}
L.marker([{{ row.lat.value }}, {{ row.long.value }}]).addTo(map).bindPopup("<b><a href=\"{{ row.uri.value }}\">{{row.label.value}}</a></b>").openPopup();
{% endif %}{% endfor %}
map.touchZoom.disable();
</script>
\ No newline at end of file
<form action="{{lodspk.this.local}}" method="POST">
<div class="input-group">
<span class="input-group-btn">
<button class="btn btn-info" type="submit"><span class="fa fa-search"></span></button>
</span>
<input type="text" class="form-control" name="query">
</div><!-- /input-group -->
</form>
<script src="{{lodspk.home}}js/sweetalert/lib/sweet-alert.min.js"></script>
<link rel="stylesheet" type="text/css" href="{{lodspk.home}}js/sweetalert/lib/sweet-alert.css">
<script type="text/javascript" src="{{lodspk.home}}js/node_modules/parsleyjs/src/i18n/no.js"></script>
<script type="text/javascript" src="{{lodspk.home}}js/node_modules/parsleyjs/dist/parsley.min.js"></script>
<div class="simpleCart_shelfItem row">
<div class="col-md-12">
<h5>Bestill</h5>
<div class="row">
<form role="form">
<input class="item_name" hidden value="{{ first.main.title.value }}">
<input class="item_link" hidden value="{{lodspk.local.curie}}">
<input class="item_thumb" hidden value="{{first.thumb.thumb.value}}">
<input class="item_sign" hidden value="{{ first.main.identifier.value }}">
<div class="col-md-3">
<input type="number" value="1" min="1" max="50" style="width: 100%;" class="form-control item_Quantity" required="true">
</div>
<div class="col-md-9">
<select class="form-control item_type" required="required">
<option value="error">Velg produkt</option>
<option value="13x18">Trykk 13x18 - 100kr</option>
<option value="18x24">Trykk 18x24 - 150kr</option>
<option value="24x30">Trykk 24x30 - 200kr</option>
<option value="30x40">Trykk 30x40 - 250kr</option>
<option value="40x50">Trykk 40x50 - 350kr</option>
<option value="50x60">Trykk 50x60 - 450kr</option>
<option value="60x70">Trykk 60x70 - 550kr</option>
<option value="70x100">Trykk 70x100 - 650kr</option>
<option value="publikasjon">Bruk i publisering - 500kr</option>
</select>
</div>
</div>
<div class="row">
<div class="col-md-6">
<span style="margin-top: 8px;" class="item_price"></span>
</div>
<div style="text-align: right;" class="col-md-6">
<a style="margin-top: 10px;" class="btn btn-default item_add" href="javascript:;"> Legg i handlekurv </a><br>
<a class="btn btn-link" href="/cart.html">Gå til handlekurven <span style="margin-top: 8px;" class="label label-primary simpleCart_quantity"></span></a>
</div>
<div class="clearfix"></div>
</div>
<!--<div class="alert alert-warning"><p><i class="fa fa-warning"></i> Siste frist for bestilling av bilder fra Billedsamlingen før sommerferien er 23. juni.</p></div>-->
</form>
</div>
</div>
<script type="text/javascript" src="http://assets.pinterest.com/js/pinit.js"></script>
<script type="text/javascript">
(function(d){
var f = d.getElementsByTagName('SCRIPT')[0], p = d.createElement('SCRIPT');
p.type = 'text/javascript';
p.async = true;
p.src = '//assets.pinterest.com/js/pinit.js';
f.parentNode.insertBefore(p, f);
}(document));
</script>
<ul class="list-inline social">
<li><a href='https://twitter.com/intent/tweet?text={% if first.main.title != "" %}{{first.main.title.value|urlencode}}{% else %}{% if first.main.label != "" %}{{first.main.label.value|urlencode}}{%endif%}{%endif%}&url={{lodspk.local.value}}'><i class="fa fa-twitter fa-2x"></i></a></li>
<li><a href="https://www.facebook.com/sharer/sharer.php?u={{lodspk.local.value}}" target="_blank"><i class="fa fa-facebook-square fa-2x"></i></a></li>
{% if first.digitalresources.imgMD.value || first.digitalresources.imgSM.value %}
<li><a href="http://www.pinterest.com/pin/create/button/?url={{lodspk.local.value}}&media={% if first.digitalresources.imgMD.value %}{{first.digitalresources.imgMD.value}}{% else %}{{first.digitalresources.imgSM.value}}{% endif %}&description={% if first.main.title != '' %}{{first.main.title.value}}{% else %}{% if first.main.label != '' %}{{first.main.label.value}}{%endif%}{%endif%} fra marcus.uib.no" data-pin-do="buttonPin" data-pin-height="16"></i></a></li>
{% endif %}
</ul>
<!-- THE URL TO THE RESOURCE MUST BE CHANGED WHEN GOING TO PRODUCTON (value to curie)-->
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment