From eb85ebcaed19bcdac32265000580fba36edc762c Mon Sep 17 00:00:00 2001
From: David Maus <maus@hab.de>
Date: Tue, 29 May 2018 11:28:50 +0200
Subject: [PATCH] Verwende Unterverzeichnis /record

---
 .../proxy/opac-de-23/{ => record}/.htaccess    |  4 ++--
 .../proxy/opac-de-23/{ => record}/index.php    | 18 +++++++++---------
 src/xslt/mods2rdf.xsl                          |  2 +-
 src/xslt/pica/auth.xsl                         |  6 +++---
 src/xslt/pica/mods.xsl                         |  2 +-
 src/xslt/prune.xsl                             |  8 ++++++++
 6 files changed, 24 insertions(+), 16 deletions(-)
 rename public/instance/proxy/opac-de-23/{ => record}/.htaccess (52%)
 rename public/instance/proxy/opac-de-23/{ => record}/index.php (90%)
 create mode 100644 src/xslt/prune.xsl

diff --git a/public/instance/proxy/opac-de-23/.htaccess b/public/instance/proxy/opac-de-23/record/.htaccess
similarity index 52%
rename from public/instance/proxy/opac-de-23/.htaccess
rename to public/instance/proxy/opac-de-23/record/.htaccess
index 62da46e6b..600be62ba 100644
--- a/public/instance/proxy/opac-de-23/.htaccess
+++ b/public/instance/proxy/opac-de-23/record/.htaccess
@@ -1,4 +1,4 @@
 RewriteEngine On
-RewriteBase /instance/proxy/opac-de-23/
+RewriteBase /instance/proxy/opac-de-23/record
 
-RewriteRule ^([0-9]+[0-9X](\.[a-z]+)?)$ /instance/proxy/opac-de-23/index.php/$1 [END]
+RewriteRule ^([0-9]+[0-9X](\.[a-z]+)?)$ /instance/proxy/opac-de-23/record/index.php/$1 [END]
diff --git a/public/instance/proxy/opac-de-23/index.php b/public/instance/proxy/opac-de-23/record/index.php
similarity index 90%
rename from public/instance/proxy/opac-de-23/index.php
rename to public/instance/proxy/opac-de-23/record/index.php
index f3ad45bd0..08a74b06b 100644
--- a/public/instance/proxy/opac-de-23/index.php
+++ b/public/instance/proxy/opac-de-23/record/index.php
@@ -1,6 +1,6 @@
 <?php
 
-require_once __DIR__ . '/../../../../vendor/autoload.php';
+require_once __DIR__ . '/../../../../../vendor/autoload.php';
 
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpFoundation\Response;
@@ -13,9 +13,9 @@ use HAB\Pica\Reader\PicaNormReader;
 use HAB\Pica\Writer\PicaXmlWriter;
 
 define('PSI_TEMPLATE', 'http://opac.lbs-braunschweig.gbv.de/DB=2/PLAIN=Y/CHARSET=UTF8/PLAINTTLCHARSET=UTF8/PPN?PPN=%s');
-define('PICA_TEMPLATE', 'http://uri.hab.de/instance/proxy/opac-de-23/%s.xml');
-define('MODS_TEMPLATE', 'http://uri.hab.de/instance/proxy/opac-de-23/%s.mods');
-define('RDF_TEMPLATE', 'http://uri.hab.de/instance/proxy/opac-de-23/%s.rdf');
+define('PICA_TEMPLATE', 'http://uri.hab.de/instance/proxy/opac-de-23/record/%s.xml');
+define('MODS_TEMPLATE', 'http://uri.hab.de/instance/proxy/opac-de-23/record/%s.mods');
+define('RDF_TEMPLATE', 'http://uri.hab.de/instance/proxy/opac-de-23/record/%s.rdf');
 
 function terminate (Request $request, Response $response) {
     $response->prepare($request);
@@ -85,11 +85,11 @@ switch ($format) {
         if ($type[0] === 'T') {
             $response = new Response('<h1>406 Not Acceptable</h1>', 406, array('Content-Type' => 'text/html'));
         } else {
-            $templateUri = __DIR__ . '/../../../../src/xslt/pica/mods.xsl';
+            $templateUri = __DIR__ . '/../../../../../src/xslt/pica/mods.xsl';
             $sourceUri = sprintf(PICA_TEMPLATE, $ident);
             $content = transform($sourceUri, $templateUri);
             if ($content) {
-                $response = new Response($content, 200, array('Content-Type' => 'application/mods+xml'));
+                $response = new Response($content, 200, array('Content-Type' => 'application/xml'));
                 break;
             }
         }
@@ -100,7 +100,7 @@ switch ($format) {
         if ($type[0] === 'T') {
             $response = new Response('<h1>406 Not Acceptable</h1>', 406, array('Content-Type' => 'text/html'));
         } else {
-            $templateUri = __DIR__ . '/../../../../src/xslt/mods2dc.xsl';
+            $templateUri = __DIR__ . '/../../../../../src/xslt/mods2dc.xsl';
             $sourceUri = sprintf(MODS_TEMPLATE, $ident);
             $content = transform($sourceUri, $templateUri);
             if ($content) {
@@ -113,7 +113,7 @@ switch ($format) {
     case 'rdf':
         $type = (string)$record->getFirstMatchingField('002@/00')->getNthSubfield(0, '0');
         if ($type[0] === 'T') {
-            $templateUri = __DIR__ . '/../../../../src/xslt/pica/auth.xsl';
+            $templateUri = __DIR__ . '/../../../../../src/xslt/pica/auth.xsl';
             $sourceUri = sprintf(PICA_TEMPLATE, $ident);
             $content = transform($sourceUri, $templateUri);
             if ($content) {
@@ -121,7 +121,7 @@ switch ($format) {
                 break;
             }
         } else {
-            $templateUri = __DIR__ . '/../../../../src/xslt/mods2rdf.xsl';
+            $templateUri = __DIR__ . '/../../../../../src/xslt/mods2rdf.xsl';
             $sourceUri = sprintf(MODS_TEMPLATE, $ident);
             $content = transform($sourceUri, $templateUri);
             if ($content) {
diff --git a/src/xslt/mods2rdf.xsl b/src/xslt/mods2rdf.xsl
index 15b58b005..2d743cbd3 100644
--- a/src/xslt/mods2rdf.xsl
+++ b/src/xslt/mods2rdf.xsl
@@ -9,7 +9,7 @@
                xmlns:mods="http://www.loc.gov/mods/v3"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 
-  <xsl:variable name="proxyBaseUrl">http://uri.hab.de/instance/proxy/opac-de-23/</xsl:variable>
+  <xsl:variable name="proxyBaseUrl">http://uri.hab.de/instance/proxy/opac-de-23/record/</xsl:variable>
 
   <xsl:template match="mods:mods">
     <rdf:RDF>
diff --git a/src/xslt/pica/auth.xsl b/src/xslt/pica/auth.xsl
index f641ef452..47180eb72 100644
--- a/src/xslt/pica/auth.xsl
+++ b/src/xslt/pica/auth.xsl
@@ -11,7 +11,7 @@
 
   <xsl:template match="pica:record[starts-with(pica:datafield[@tag = '002@']/pica:subfield[@code = '0'], 'Tp')]">
     <rdf:RDF>
-      <foaf:Person rdf:about="http://uri.hab.de/instance/proxy/opac-de-23/{pica:datafield[@tag = '003@']/pica:subfield[@code = '0']}">
+      <foaf:Person rdf:about="http://uri.hab.de/instance/proxy/opac-de-23/record/{pica:datafield[@tag = '003@']/pica:subfield[@code = '0']}">
         <xsl:apply-templates/>
         <xsl:call-template name="foaf:Person">
           <xsl:with-param name="nameField" select="pica:datafield[@tag = '028A']"/>
@@ -22,7 +22,7 @@
 
   <xsl:template match="pica:record[starts-with(pica:datafield[@tag = '002@']/pica:subfield[@code = '0'], 'Tb')]">
     <rdf:RDF>
-      <foaf:Person rdf:about="http://uri.hab.de/instance/proxy/opac-de-23/{pica:datafield[@tag = '003@']/pica:subfield[@code = '0']}">
+      <foaf:Person rdf:about="http://uri.hab.de/instance/proxy/opac-de-23/record/{pica:datafield[@tag = '003@']/pica:subfield[@code = '0']}">
         <xsl:apply-templates/>
         <xsl:call-template name="foaf:Organization">
           <xsl:with-param name="nameField" select="pica:datafield[@tag = '028A']"/>
@@ -34,7 +34,7 @@
   <xsl:template match="pica:record">
     <xsl:variable name="recordType" select="substring(pica:datafield[@tag = '002@']/pica:subfield[@code = '0'], 2, 1)"/>
     <rdf:RDF>
-      <skos:Concept rdf:about="http://uri.hab.de/instance/proxy/opac-de-23/{pica:datafield[@tag = '003@']/pica:subfield[@code = '0']}">
+      <skos:Concept rdf:about="http://uri.hab.de/instance/proxy/opac-de-23/record/{pica:datafield[@tag = '003@']/pica:subfield[@code = '0']}">
         <xsl:apply-templates/>
       </skos:Concept>
     </rdf:RDF>
diff --git a/src/xslt/pica/mods.xsl b/src/xslt/pica/mods.xsl
index c11451908..617df0b72 100644
--- a/src/xslt/pica/mods.xsl
+++ b/src/xslt/pica/mods.xsl
@@ -7,7 +7,7 @@
                xmlns:skos="http://www.w3.org/2004/02/skos/core#"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 
-  <xsl:variable name="proxyBaseUrl">http://uri.hab.de/instance/proxy/opac-de-23/</xsl:variable>
+  <xsl:variable name="proxyBaseUrl">http://uri.hab.de/instance/proxy/opac-de-23/record/</xsl:variable>
 
   <xsl:template match="pica:record">
 
diff --git a/src/xslt/prune.xsl b/src/xslt/prune.xsl
new file mode 100644
index 000000000..27c82937d
--- /dev/null
+++ b/src/xslt/prune.xsl
@@ -0,0 +1,8 @@
+<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:template match="node() | @*">
+    <xsl:copy>
+      <xsl:apply-templates select="node() | @*"/>
+    </xsl:copy>
+  </xsl:template>
+  <xsl:template match="*[normalize-space() = '']"/>
+</xsl:transform>
-- 
GitLab