commets.php

  1. <?php
  2. if(isset($_REQUEST['id'])){
  3. $id=$_REQUEST['id'];
  4. } else {$id="dvw-satzung-1935";}
  5. if(isset($_REQUEST['commonscat'])){
  6. $commonscat=$_REQUEST['commonscat'];
  7. } else {$commonscat = "Satzung des Deutschen Vereins für Vermessungswesen, 1935";}
  8. if(isset($_REQUEST['own'])){
  9. $own=$_REQUEST['own'];
  10. } else {$own="vermessungs-bibliothek.de";}
  11. $commonscat = str_replace(" ","_",$commonscat);
  12. $home = "https://".$own;
  13. header('Content-type: text/plain; charset=UTF-8');
  14. header("Content-Disposition: attachment; filename=".$id.".xml");
  15. echo '<?xml version="1.0" encoding="UTF-8"?>'."\n";
  16. ?>
  17. <mets:mets xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:mets="http://www.loc.gov/METS/" xsi:schemaLocation="http://www.loc.gov/METS/ http://www.loc.gov/mets/mets.xsd">
  18. <mets:dmdSec ID="dmd_<?php echo $id; ?>">
  19. <mets:mdWrap MIMETYPE="text/xml" MDTYPE="MODS"><mets:xmlData><mods:mods xmlns:mods="http://www.loc.gov/mods/v3">
  20. <mods:titleInfo><mods:title xml:lang="de">### Titel ###</mods:title></mods:titleInfo>
  21. <mods:name><mods:displayForm>### Autor ###</mods:displayForm></mods:name>
  22. <mods:originInfo>
  23. <mods:place><mods:placeTerm type="text">### Ort ###</mods:placeTerm></mods:place>
  24. <mods:dateIssued>### Jahr ###</mods:dateIssued>
  25. </mods:originInfo>
  26. <mods:location>
  27. <mods:physicalLocation>### Standort ###</mods:physicalLocation>
  28. <mods:shelfLocator>### Signatur ###</mods:shelfLocator>
  29. </mods:location>
  30. </mods:mods></mets:xmlData></mets:mdWrap></mets:dmdSec>
  31. <mets:amdSec ID="amd_<?php echo $id; ?>">
  32. <mets:rightsMD ID="rights_<?php echo $id; ?>"><mets:mdWrap MIMETYPE="text/xml" MDTYPE="OTHER" OTHERMDTYPE="DVRIGHTS">
  33. <mets:xmlData><dv:rights xmlns:dv="http://dfg-viewer.de/">
  34. <dv:owner><?php echo $own; ?></dv:owner>
  35. <dv:ownerContact><?php echo $home; ?>/impressum/</dv:ownerContact>
  36. <dv:ownerLogo><?php echo $home; ?>/img/logo.png</dv:ownerLogo>
  37. <dv:ownerSiteURL><?php echo $home; ?>/</dv:ownerSiteURL>
  38. </dv:rights></mets:xmlData>
  39. </mets:mdWrap></mets:rightsMD>
  40. <mets:digiprovMD ID="digiprov_<?php echo $id; ?>"><mets:mdWrap MIMETYPE="text/xml" MDTYPE="OTHER" OTHERMDTYPE="DVLINKS">
  41. <mets:xmlData><dv:links xmlns:dv="http://dfg-viewer.de/">
  42. <dv:reference><!-- ### Link zum (lokalen) Katalogeintrag ### --></dv:reference>
  43. <dv:presentation>https://commons.wikimedia.org/wiki/Category:<?php echo $commonscat; ?></dv:presentation>
  44. </dv:links></mets:xmlData>
  45. </mets:mdWrap></mets:digiprovMD>
  46. </mets:amdSec>
  47. <mets:fileSec>
  48. <?php
  49. $params = [
  50. "action" => "query",
  51. "generator" => "categorymembers",
  52. "gcmtitle" => "Category:".$commonscat,
  53. "gcmlimit" => "100",
  54. "gcmtype" => "file",
  55. "prop" => "imageinfo",
  56. "iiprop" => "url",
  57. "format" => "json"];
  58. $ch = curl_init("https://commons.wikimedia.org/w/api.php?" . http_build_query($params));
  59. curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true);
  60. $output = curl_exec($ch);
  61. curl_close($ch);
  62. $pages = json_decode($output,true)["query"]["pages"];
  63. $i=0;
  64. echo "<mets:fileGrp USE=\"DEFAULT\">\n";
  65. foreach( $pages as $page ){;
  66. echo sprintf('<mets:file ID="'.$id.'_%03d_def" MIMETYPE="image/jpeg"><mets:FLocat LOCTYPE="URL" xlink:href="', ++$i);
  67. echo ($page["imageinfo"][0]["url"])."\"/></mets:file>\n";}
  68. echo "</mets:fileGrp>\n";
  69. $i=0;
  70. echo "<mets:fileGrp USE=\"THUMBS\">\n";
  71. foreach( $pages as $page ){;
  72. echo sprintf('<mets:file ID="'.$id.'_%03d_thumb" MIMETYPE="image/jpeg"><mets:FLocat LOCTYPE="URL" xlink:href="', ++$i);
  73. echo str_replace("/commons/","/commons/thumb/",$page["imageinfo"][0]["url"]);
  74. echo "/150px-".substr(strrchr($page["imageinfo"][0]["url"], "/"),1)."\"/></mets:file>\n";}
  75. echo "</mets:fileGrp>\n";
  76. $i=0;
  77. echo "<mets:fileGrp USE=\"DOWNLOAD\">\n";
  78. foreach( $pages as $page ){;
  79. echo sprintf('<mets:file ID="'.$id.'_%03d_dwnl" MIMETYPE="image/jpeg"><mets:FLocat LOCTYPE="URL" xlink:href="', ++$i);
  80. echo ($page["imageinfo"][0]["url"])."\"/></mets:file>\n";}
  81. echo '<mets:file ID="FULLDOWNLOAD" MIMETYPE="application/pdf"><mets:FLocat LOCTYPE="URL" xlink:href="'.$home."/download/". $id .".pdf\"/></mets:file>\n</mets:fileGrp>\n</mets:fileSec>\n";
  82. echo "<mets:structMap TYPE=\"PHYSICAL\"><mets:div ID=\"phys_".$id."\" TYPE=\"physSequence\">\n<mets:fptr FILEID=\"FULLDOWNLOAD\"/>\n";
  83. for ($j = 1; $j <= $i; $j++) {
  84. echo sprintf('<mets:div ID="div_'.$id.'_%1$03d" ORDER="%1$d" ORDERLABEL="%1$d" TYPE="page" CONTENTIDS="'.$home.'/view.php?id='.$id.'&amp;s=%1$d"><mets:fptr FILEID="'.$id.'_%1$03d_def"/><mets:fptr FILEID="'.$id.'_%1$03d_dwnl"/><mets:fptr FILEID="'.$id.'_%1$03d_thumb"/></mets:div>', $j);
  85. echo "\n";}
  86. echo "</mets:div>\n</mets:structMap>\n";
  87. echo "<mets:structMap TYPE=\"LOGICAL\">\n";
  88. echo '<mets:div ID="log_'.$id.'" TYPE="monograph" DMDID="dmd_'.$id.'" ADMID="amd_'.$id.'" CONTENTIDS="'.$home.'/view.php?id='.$id.'"/>';
  89. echo "\n</mets:structMap>\n<mets:structLink><mets:smLink xlink:from=\"log_".$id.'" xlink:to="phys_'.$id."\"/></mets:structLink>\n</mets:mets>";
  90. ?>

Zurück zum Beitrag

view.php

  1. <?php
  2. if(isset($_REQUEST['id'])){
  3. header("Referer: https://www.vermessungs-bibliothek.de");
  4. if(isset($_REQUEST['s'])){
  5. $param = "]=".urlencode($_REQUEST['s']);
  6. } else {
  7. $param = "grid]=1";
  8. }
  9. header("Location: https://dfg-viewer.de/show?tx_dlf[id]=https%3A//vermessungs-bibliothek.de/".urlencode($_REQUEST['id']).".xml&tx_dlf[page".$param);
  10. } else { header("Location: https://www.vermessungs-bibliothek.de");}
  11. ?>

Zurück zum Beitrag

test.xml

  1. <?xml version="1.0" encoding="UTF-8"?><mets:mets xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:mets="http://www.loc.gov/METS/" xsi:schemaLocation="http://www.loc.gov/METS/ http://www.loc.gov/mets/mets.xsd">
  2. <mets:dmdSec ID="dmd_test">
  3. <mets:mdWrap MIMETYPE="text/xml" MDTYPE="MODS"><mets:xmlData><mods:mods xmlns:mods="http://www.loc.gov/mods/v3">
  4. <mods:titleInfo><mods:title xml:lang="de">### Titel ###</mods:title></mods:titleInfo>
  5. <mods:name><mods:displayForm>### Autor ###</mods:displayForm></mods:name>
  6. <mods:originInfo>
  7. <mods:place><mods:placeTerm type="text">### Ort ###</mods:placeTerm></mods:place>
  8. <mods:dateIssued>### Jahr ###</mods:dateIssued>
  9. </mods:originInfo>
  10. <mods:location>
  11. <mods:physicalLocation>### Standort ###</mods:physicalLocation>
  12. <mods:shelfLocator>### Signatur ###</mods:shelfLocator>
  13. </mods:location>
  14. </mods:mods></mets:xmlData></mets:mdWrap></mets:dmdSec>
  15. <mets:amdSec ID="amd_test">
  16. <mets:rightsMD ID="rights_test"><mets:mdWrap MIMETYPE="text/xml" MDTYPE="OTHER" OTHERMDTYPE="DVRIGHTS">
  17. <mets:xmlData><dv:rights xmlns:dv="http://dfg-viewer.de/">
  18. <dv:owner>vermessungs-bibliothek.de</dv:owner>
  19. <dv:ownerContact>https://vermessungs-bibliothek.de/impressum/</dv:ownerContact>
  20. <dv:ownerLogo>https://vermessungs-bibliothek.de/img/logo.png</dv:ownerLogo>
  21. <dv:ownerSiteURL>https://vermessungs-bibliothek.de/</dv:ownerSiteURL>
  22. </dv:rights></mets:xmlData>
  23. </mets:mdWrap></mets:rightsMD>
  24. <mets:digiprovMD ID="digiprov_test"><mets:mdWrap MIMETYPE="text/xml" MDTYPE="OTHER" OTHERMDTYPE="DVLINKS">
  25. <mets:xmlData><dv:links xmlns:dv="http://dfg-viewer.de/">
  26. <dv:reference><!-- ### Link zum (lokalen) Katalogeintrag ### --></dv:reference>
  27. <dv:presentation>https://commons.wikimedia.org/wiki/Category:Satzung_des_Deutschen_Vereins_für_Vermessungswesen,_1935</dv:presentation>
  28. </dv:links></mets:xmlData>
  29. </mets:mdWrap></mets:digiprovMD>
  30. </mets:amdSec>
  31. <mets:fileSec>
  32. <mets:fileGrp USE="DEFAULT">
  33. <mets:file ID="test_001_def" MIMETYPE="image/jpeg"><mets:FLocat LOCTYPE="URL" xlink:href="https://upload.wikimedia.org/wikipedia/commons/b/b7/DVW-Satzung-1935-1.jpg"/></mets:file>
  34. <mets:file ID="test_002_def" MIMETYPE="image/jpeg"><mets:FLocat LOCTYPE="URL" xlink:href="https://upload.wikimedia.org/wikipedia/commons/5/58/DVW-Satzung-1935-2.jpg"/></mets:file>
  35. <mets:file ID="test_003_def" MIMETYPE="image/jpeg"><mets:FLocat LOCTYPE="URL" xlink:href="https://upload.wikimedia.org/wikipedia/commons/4/42/DVW-Satzung-1935-3.jpg"/></mets:file>
  36. </mets:fileGrp>
  37. <mets:fileGrp USE="THUMBS">
  38. <mets:file ID="test_001_thumb" MIMETYPE="image/jpeg"><mets:FLocat LOCTYPE="URL" xlink:href="https://upload.wikimedia.org/wikipedia/commons/thumb/b/b7/DVW-Satzung-1935-1.jpg/150px-DVW-Satzung-1935-1.jpg"/></mets:file>
  39. <mets:file ID="test_002_thumb" MIMETYPE="image/jpeg"><mets:FLocat LOCTYPE="URL" xlink:href="https://upload.wikimedia.org/wikipedia/commons/thumb/5/58/DVW-Satzung-1935-2.jpg/150px-DVW-Satzung-1935-2.jpg"/></mets:file>
  40. <mets:file ID="test_003_thumb" MIMETYPE="image/jpeg"><mets:FLocat LOCTYPE="URL" xlink:href="https://upload.wikimedia.org/wikipedia/commons/thumb/4/42/DVW-Satzung-1935-3.jpg/150px-DVW-Satzung-1935-3.jpg"/></mets:file>
  41. </mets:fileGrp>
  42. <mets:fileGrp USE="DOWNLOAD">
  43. <mets:file ID="test_001_dwnl" MIMETYPE="image/jpeg"><mets:FLocat LOCTYPE="URL" xlink:href="https://upload.wikimedia.org/wikipedia/commons/b/b7/DVW-Satzung-1935-1.jpg"/></mets:file>
  44. <mets:file ID="test_002_dwnl" MIMETYPE="image/jpeg"><mets:FLocat LOCTYPE="URL" xlink:href="https://upload.wikimedia.org/wikipedia/commons/5/58/DVW-Satzung-1935-2.jpg"/></mets:file>
  45. <mets:file ID="test_003_dwnl" MIMETYPE="image/jpeg"><mets:FLocat LOCTYPE="URL" xlink:href="https://upload.wikimedia.org/wikipedia/commons/4/42/DVW-Satzung-1935-3.jpg"/></mets:file>
  46. <mets:file ID="FULLDOWNLOAD" MIMETYPE="application/pdf"><mets:FLocat LOCTYPE="URL" xlink:href="https://vermessungs-bibliothek.de/download/test.pdf"/></mets:file>
  47. </mets:fileGrp>
  48. </mets:fileSec>
  49. <mets:structMap TYPE="PHYSICAL"><mets:div ID="phys_test" TYPE="physSequence">
  50. <mets:fptr FILEID="FULLDOWNLOAD"/>
  51. <mets:div ID="div_test_001" ORDER="3" ORDERLABEL="1" TYPE="page" CONTENTIDS="https://vermessungs-bibliothek.de/view.php?id=test&amp;s=1"><mets:fptr FILEID="test_001_def"/><mets:fptr FILEID="test_001_dwnl"/><mets:fptr FILEID="test_001_thumb"/></mets:div>
  52. <mets:div ID="div_test_002" ORDER="2" ORDERLABEL="2" TYPE="page" CONTENTIDS="https://vermessungs-bibliothek.de/view.php?id=test&amp;s=2"><mets:fptr FILEID="test_002_def"/><mets:fptr FILEID="test_002_dwnl"/><mets:fptr FILEID="test_002_thumb"/></mets:div>
  53. <mets:div ID="div_test_003" ORDER="1" ORDERLABEL="3" TYPE="page" CONTENTIDS="https://vermessungs-bibliothek.de/view.php?id=test&amp;s=3"><mets:fptr FILEID="test_003_def"/><mets:fptr FILEID="test_003_dwnl"/><mets:fptr FILEID="test_003_thumb"/></mets:div>
  54. </mets:div>
  55. </mets:structMap>
  56. <mets:structMap TYPE="LOGICAL">
  57. <mets:div ID="log_test" TYPE="monograph" DMDID="dmd_test" ADMID="amd_test" CONTENTIDS="https://vermessungs-bibliothek.de/view.php?id=test"/>
  58. </mets:structMap>
  59. <mets:structLink><mets:smLink xlink:from="log_test" xlink:to="phys_test"/></mets:structLink>
  60. </mets:mets>

Zurück zum Beitrag

djvumets.php

  1. <?php
  2. if(isset($_REQUEST['id'])){
  3. $id=$_REQUEST['id'];
  4. } else {$id="djvu";}
  5. if(isset($_REQUEST['djvu'])){
  6. $djvu=$_REQUEST['djvu'];
  7. } else {$djvu = "Bertschinger Unternehmungen Stadt Krems (1931).djvu";}
  8. if(isset($_REQUEST['own'])){
  9. $own=$_REQUEST['own'];
  10. } else {$own="vermessungs-bibliothek.de";}
  11. $djvu = str_replace(" ","_",$djvu);
  12. $home = "https://".$own;
  13. header('Content-type: text/plain; charset=UTF-8');
  14. header("Content-Disposition: attachment; filename=".$id.".xml");
  15. echo '<?xml version="1.0" encoding="UTF-8"?>'."\n";
  16. ?>
  17. <mets:mets xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:mets="http://www.loc.gov/METS/" xsi:schemaLocation="http://www.loc.gov/METS/ http://www.loc.gov/mets/mets.xsd">
  18. <mets:dmdSec ID="dmd_<?php echo $id; ?>">
  19. <mets:mdWrap MIMETYPE="text/xml" MDTYPE="MODS"><mets:xmlData><mods:mods xmlns:mods="http://www.loc.gov/mods/v3">
  20. <mods:titleInfo><mods:title xml:lang="de">### Titel ###</mods:title></mods:titleInfo>
  21. <mods:name><mods:displayForm>### Autor ###</mods:displayForm></mods:name>
  22. <mods:originInfo>
  23. <mods:place><mods:placeTerm type="text">### Ort ###</mods:placeTerm></mods:place>
  24. <mods:dateIssued>### Jahr ###</mods:dateIssued>
  25. </mods:originInfo>
  26. <mods:location>
  27. <mods:physicalLocation>### Standort ###</mods:physicalLocation>
  28. <mods:shelfLocator>### Signatur ###</mods:shelfLocator>
  29. </mods:location>
  30. </mods:mods></mets:xmlData></mets:mdWrap></mets:dmdSec>
  31. <mets:amdSec ID="amd_<?php echo $id; ?>">
  32. <mets:rightsMD ID="rights_<?php echo $id; ?>"><mets:mdWrap MIMETYPE="text/xml" MDTYPE="OTHER" OTHERMDTYPE="DVRIGHTS">
  33. <mets:xmlData><dv:rights xmlns:dv="http://dfg-viewer.de/">
  34. <dv:owner><?php echo $own; ?></dv:owner>
  35. <dv:ownerContact><?php echo $home; ?>/impressum/</dv:ownerContact>
  36. <dv:ownerLogo><?php echo $home; ?>/img/logo.png</dv:ownerLogo>
  37. <dv:ownerSiteURL><?php echo $home; ?>/</dv:ownerSiteURL>
  38. </dv:rights></mets:xmlData>
  39. </mets:mdWrap></mets:rightsMD>
  40. <mets:digiprovMD ID="digiprov_<?php echo $id; ?>"><mets:mdWrap MIMETYPE="text/xml" MDTYPE="OTHER" OTHERMDTYPE="DVLINKS">
  41. <mets:xmlData><dv:links xmlns:dv="http://dfg-viewer.de/">
  42. <dv:reference><!-- ### Link zum (lokalen) Katalogeintrag ### --></dv:reference>
  43. <dv:presentation>https://commons.wikimedia.org/wiki/File:<?php echo $djvu; ?></dv:presentation>
  44. </dv:links></mets:xmlData>
  45. </mets:mdWrap></mets:digiprovMD>
  46. </mets:amdSec>
  47. <mets:fileSec>
  48. <?php
  49. $ch = curl_init("https://commons.wikimedia.org/w/api.php?action=query&format=json&iiprop=url&prop=imageinfo&titles=File:".$djvu);
  50. curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true);
  51. $output = curl_exec($ch);
  52. curl_close($ch);
  53. $url = current(json_decode($output,true)["query"]["pages"])["imageinfo"][0]["url"];
  54. $ch = curl_init("https://commons.wikimedia.org/w/api.php?action=query&iiprop=metadata&format=json&prop=imageinfo&titles=File:".$djvu);
  55. curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true);
  56. $output = curl_exec($ch);
  57. curl_close($ch);
  58. $result = json_decode( $output, true );
  59. $pages = current($result["query"]["pages"])["imageinfo"][0]["metadata"][0]["value"][0]["value"];
  60. $i=0;
  61. echo "<mets:fileGrp USE=\"DEFAULT\">\n";
  62. foreach($pages as $page ){
  63. echo sprintf('<mets:file ID="'.$id.'_%03d_def" MIMETYPE="image/jpeg"><mets:FLocat LOCTYPE="URL" xlink:href="', ++$i);
  64. echo str_replace("/commons/","/commons/thumb/",$url);
  65. echo "/page".$i."-".$page["value"][1]["value"]."px-".$djvu.".jpg\"/></mets:file>\n";}
  66. echo "</mets:fileGrp>\n";
  67. $i=0;
  68. echo "<mets:fileGrp USE=\"THUMBS\">\n";
  69. foreach($pages as $page ){
  70. echo sprintf('<mets:file ID="'.$id.'_%03d_thumb" MIMETYPE="image/jpeg"><mets:FLocat LOCTYPE="URL" xlink:href="', ++$i);
  71. echo str_replace("/commons/","/commons/thumb/",$url);
  72. echo "/page".$i."-150px-".$djvu.".jpg\"/></mets:file>\n";}
  73. echo "</mets:fileGrp>\n";
  74. $i=0;
  75. echo "<mets:fileGrp USE=\"DOWNLOAD\">\n";
  76. foreach($pages as $page ){
  77. echo sprintf('<mets:file ID="'.$id.'_%03d_dwnl" MIMETYPE="image/jpeg"><mets:FLocat LOCTYPE="URL" xlink:href="', ++$i);
  78. echo str_replace("/commons/","/commons/thumb/",$url);
  79. echo "/page".$i."-".$page["value"][1]["value"]."px-".$djvu.".jpg\"/></mets:file>\n";}
  80. echo '<mets:file ID="FULLDOWNLOAD" MIMETYPE="application/djvu"><mets:FLocat LOCTYPE="URL" xlink:href="'.$url."\"/></mets:file>\n</mets:fileGrp>\n</mets:fileSec>\n";
  81. echo "<mets:structMap TYPE=\"PHYSICAL\"><mets:div ID=\"phys_".$id."\" TYPE=\"physSequence\">\n<mets:fptr FILEID=\"FULLDOWNLOAD\"/>\n";
  82. for ($j = 1; $j <= $i; $j++) {
  83. echo sprintf('<mets:div ID="div_'.$id.'_%1$03d" ORDER="%1$d" ORDERLABEL="%1$d" TYPE="page" CONTENTIDS="'.$home.'/view.php?id='.$id.'&amp;s=%1$d"><mets:fptr FILEID="'.$id.'_%1$03d_def"/><mets:fptr FILEID="'.$id.'_%1$03d_dwnl"/><mets:fptr FILEID="'.$id.'_%1$03d_thumb"/></mets:div>', $j);
  84. echo "\n";}
  85. echo "</mets:div>\n</mets:structMap>\n";
  86. echo "<mets:structMap TYPE=\"LOGICAL\">\n";
  87. echo '<mets:div ID="log_'.$id.'" TYPE="monograph" DMDID="dmd_'.$id.'" ADMID="amd_'.$id.'" CONTENTIDS="'.$home.'/view.php?id='.$id.'"/>';
  88. echo "\n</mets:structMap>\n<mets:structLink><mets:smLink xlink:from=\"log_".$id.'" xlink:to="phys_'.$id."\"/></mets:structLink>\n</mets:mets>";
  89. ?>

Zurück zum Beitrag