Page tree
Skip to end of metadata
Go to start of metadata

Visualisierung von RVK-Notationen als Mashup im Pica Katalog

Einführung

Die Stellen der RVK Systematik erschließen sich nicht auf den ersten Blick. Als kleine Hilfe für die Katalogdarstellung ist eine Expansion hilfreich. Die API der Regensburger zusammen mit dem in Kooperation zwischen dem kobv und dem bsb enstandenen RVK-VISUAL expandiert die Notation im Katalog.

Änderungen für Pica OPC4 (Version 2.8.4.0)

Die Funktionsweise von RVK-VISUAL setzt ein HTML Element der class="rvklink" (die Class ist wählbar) in der Titelanzeige voraus. Dieses Element wird dann im Browser per JavaScript angereichert.

Ergebnis im OPC4

  • Zwei RVK Stellen expandiert:

 

  • RVK Hierarchie einer Stelle aufgeklappt:

 

Erzeugung des HTML Elements

Sacherschließung Titel

Hier ist eine Änderung an FCV Syntax notwendig. Sie spielt ausschließlich in der <lib>_opc4_<version>_tab_sacher.fcv.i.

 rvkspan 	= "\<span class=\"rvklink\" style=\"display:b;\"\>";
 spanclose	= "\</span\>"; 
 RVKSPAN_45 =	 reset ( [ rvkspan $a spanclose ] ) ;

THEMA =	
...
/* RVK-VISUAL */
[   set_tag(#045T/00) regensbvk(option("lang")) ": \<ul class='rvklist'\>\<li\>" TTL_45 RVKSPAN_45 "\</li\>"
    [[ find_tag(#045T/00) " \<li\> " TTL_45 RVKSPAN_45 "\</li\>" ].
   "\</ul\>#" ]
]
...

Sacherschließung lokal

Möchte man auch die lokale (RVK-)Sacherschließung expandieren, muss das erforderliche span-Element außerdem an der entsprechenden Stelle in <lib>_opc4_<version>_tab_defaultweblabelledlocal.fcv.i erzeugt werden. Hierzu reicht es, die vorher definierte Gruppe RVKSPAN_45 einzufügen:

...
LOK_SG =        [reset_tag
                  [ find_tag(#145Z) COP_45 RVKSPAN_45 "#" ].
                  erase
                ] or fatal;
...

Ansicht im Katalog (Bsp.: es wird ausschließlich die Benennung hinzugefügt):

Rvk-visual lok.png

Einbindung JavaScript und Konfiguration

Die Aktivierung erfolgt in der zzgbv.asc, wobei die Variable RVK_VISUAL je nach Teilkatalog belegt werden kann. Wenn sie leer bleibt, erfolgt keine Einbindung.

 <%if not(%empty(%classoption(RVK_VISUAL)))>
       <script src="<%classoption(RVK_VISUAL)>" type="text/javascript" id="rvk_visual"> </script>
       <script type="application/javascript">
        // Instanz von RvkVisual anlegen
        // Der erste Parameter ist die CSS-Klasse, die RVK Notationen identifiziert.
        // Der zweite Parameter ist der Name der Variable (Default: 'rvkVisual')
        var rvkVisual = RvkVisual.newInstance('rvklink');
 
        // embedded into https://ub.hsu-hh.de/
        rvkVisual.rvkUrl="/api/json/ancestors/";
 
        // Instanz konfigurieren
        rvkVisual.displayHierarchy = true;
 	rvkVisual.highlightErrorsEnabled = true;
        rvkVisual.togglePosition = RvkVisual.WRAP;
        rvkVisual.toggleEnabled = true;
        rvkVisual.rvkTagName = 'span';
 
        rvkVisual.htmlToggleOff = "<img src='/RVK-VISUAL/images/plus.png' style='width: 12px'>";
        rvkVisual.htmlToggleOn = "<img src='/RVK-VISUAL/images/minus.png' style='width: 12px'>";
 
        // Beim Laden der Seite prepareLinks aufrufen
 	window.addEventListener("load", function () {
            RvkVisual.prepareLinks();
        }, false);
        </script>
 
    <!-- Stylesheet fuer RvkVisual einbinden. -->
    <link href="/RVK-VISUAL/rvk-visual.css" rel="stylesheet" type="text/css" />
 <%end>

Katalogsicht

Die Aktivierung für einzelne Katalogsichten erfolgt in der jeweiligen classprf.asc . Die RVK_VISIAL Basis URL wird als Variable übergeben.

 [HERMES#CLASSPRF#1#]
 \RVK_VISUAL=/RVK-VISUAL/rvk-visual.js

Besonderheiten / Wünsche

kein https://rvk.uni-regensburg.de/api/json/ancestors/

Der Aufruf der Regensburger API ist derzeit nur als http:// möglich. Aktuelle Browser weigern sich aber, Unverschlüsseltes in verschlüsselt geladene Inhalte einzubetten. Hier hilft es, den Aufruf der API in den eigenen Auftritt einzubetten. RVK-VISUAL erlaubt die Angabe der API URL: (siehe zzgbv.asc)

rvkVisual.rvkUrl="/api/json/ancestors/";

Die Einbettung kann mit Apache mod_rewrite etwa so aussehen:

#embed rvk.uni-regensburg.de, as they dont do https:
RewriteRule /api/json/ancestors/(.*)$  http://rvk.uni-regensburg.de/api/json/ancestors/$1       [P]

OPC4 schreibt <strong> Tags

Bei einer Klammerung der Suchworte mit <strong></strong>, so z.B. auch bei einer Suche nach dem Schlüssel [RVK], werden die Notationen durch das ursprüngliche JavaScript des Zuse-Institutes nicht aufgelöst. Abhilfe schafft eine kleine Änderung des Scripts, die statt innerHTML die Eigenschaft textContent verwendet. Dazu siehe auch [1][2].

    // extract notation from tags
    for (var i = 0; i < rvkTags.length; i++) {
        var tagObj = rvkTags[i];
        var rvkTag = tagObj.textContent;
        rvkTag = rvkTag.replace(/\ /, "+");
        tagObj.setAttribute("name", tagObj.textContent);
        rvkNotations[rvkTag] = true; // add attribute to object, if it already exists overwrite
        if (this.debug) console.log("InnerText: " + tagObj.textContent);
    }

Quellen

 

  • Diese Seite wurde zuletzt am 23. Dezember 2015 um 14:54 Uhr geändert.
  • No labels