From 07517ae563097e04e91ea3fae2c2ca1cf2309b86 Mon Sep 17 00:00:00 2001
From: Jacek Kowalski <Jacek@jacekk.info>
Date: Mon, 16 Dec 2019 20:48:17 +0000
Subject: [PATCH] Użycie API REST do pobierania danych z Biblioteki Narodowej

---
 inwentaryzacja/make.php |  109 ++++++++++++++++++++++++++++++------------------------
 1 files changed, 61 insertions(+), 48 deletions(-)

diff --git a/inwentaryzacja/make.php b/inwentaryzacja/make.php
index 5544aab..3d54497 100644
--- a/inwentaryzacja/make.php
+++ b/inwentaryzacja/make.php
@@ -1,63 +1,71 @@
 <?php
 $title = 'Inwentaryzacja - rozpoczęcie';
 include('design/top.php');
-include('../includes/config.php');
-include('../includes/db2.php');
 
-$fields = array('tytul', 'autor', 'miejsce', 'rok', 'wydawnictwo');
+require('../includes/config.php');
+require('../includes/PDOO.php');
 
-$data = sql::query('SELECT * FROM `ksiazki` WHERE `wycofana`=\'0\' ORDER BY `regal` ASC, `polka` ASC, `rzad` ASC');
+try {
+	$fields = array('tytul', 'autor', 'miejsce', 'rok', 'wydawnictwo');
 
-$fp = fopen('list.xml', 'w');
-fwrite($fp, '<?xml version="1.0" encoding="utf-8" ?>
-<!DOCTYPE inwentaryzacja [
-<!ENTITY % quot "&#34;">
-<!ENTITY % amp "&#38;">
-<!ENTITY % lt "&#60;">
-<!ENTITY % gt "&#62;">
-<!ELEMENT inwentaryzacja (lokalizacja)*>
-<!ELEMENT lokalizacja (ksiazka)*>
-<!ATTLIST lokalizacja
-	id	ID	#IMPLIED
-	regal	CDATA	#IMPLIED
-	polka	CDATA	#IMPLIED
-	rzad	CDATA	#IMPLIED>
-<!ELEMENT ksiazka (tytul | autor | miejsce | rok | wydawnictwo)*>
-<!ATTLIST ksiazka
-	id	ID	#IMPLIED
-	status	CDATA	#IMPLIED>
-<!ELEMENT tytul (#PCDATA)>
-<!ELEMENT autor (#PCDATA)>
-<!ELEMENT miejsce (#PCDATA)>
-<!ELEMENT rok (#PCDATA)>
-<!ELEMENT wydawnictwo (#PCDATA)>
-]>
-<inwentaryzacja>
-');
+	$PDO = PDOO::Singleton();
 
-$lastplace = NULL;
+	$st = $PDO->query('SELECT * FROM `ksiazki` WHERE `wycofana`=\'0\' ORDER BY `regal` ASC, `polka` ASC, `rzad` ASC');
 
-while( ($entry = sql::fetchone($data)) !== FALSE ) {
-	if($lastplace != $entry['regal'].'/'.$entry['polka'].'/'.$entry['rzad']) {
-		if($lastplace !== NULL) {
-			fwrite($fp, '</lokalizacja>'."\n");
+	$fp = fopen('list.xml', 'w');
+	if($fp === FALSE) {
+		throw new Exception('Otwarcie pliku inwentaryzacja/list.xml nie powiodło się.');
+	}
+
+	fwrite($fp, '<?xml version="1.0" encoding="utf-8" ?>
+	<!DOCTYPE inwentaryzacja [
+	<!ENTITY % quot "&#34;">
+	<!ENTITY % amp "&#38;">
+	<!ENTITY % lt "&#60;">
+	<!ENTITY % gt "&#62;">
+	<!ELEMENT inwentaryzacja (lokalizacja)*>
+	<!ELEMENT lokalizacja (ksiazka)*>
+	<!ATTLIST lokalizacja
+		id	ID	#IMPLIED
+		regal	CDATA	#IMPLIED
+		polka	CDATA	#IMPLIED
+		rzad	CDATA	#IMPLIED>
+	<!ELEMENT ksiazka (tytul | autor | miejsce | rok | wydawnictwo)*>
+	<!ATTLIST ksiazka
+		id	ID	#IMPLIED
+		status	CDATA	#IMPLIED>
+	<!ELEMENT tytul (#PCDATA)>
+	<!ELEMENT autor (#PCDATA)>
+	<!ELEMENT miejsce (#PCDATA)>
+	<!ELEMENT rok (#PCDATA)>
+	<!ELEMENT wydawnictwo (#PCDATA)>
+	]>
+	<inwentaryzacja>
+	');
+
+	$lastplace = NULL;
+
+	while($entry = $st->fetch()) {
+		if($lastplace != $entry['regal'].'/'.$entry['polka'].'/'.$entry['rzad']) {
+			if($lastplace !== NULL) {
+				fwrite($fp, '</lokalizacja>'."\n");
+			}
+			fwrite($fp, '<lokalizacja id="m_'.$entry['regal'].'_'.$entry['polka'].'_'.$entry['rzad'].'" regal="'.$entry['regal'].'" polka="'.$entry['polka'].'" rzad="'.$entry['rzad'].'">'."\n");
+			$lastplace = $entry['regal'].'/'.$entry['polka'].'/'.$entry['rzad'];
 		}
-		fwrite($fp, '<lokalizacja id="m_'.$entry['regal'].'_'.$entry['polka'].'_'.$entry['rzad'].'" regal="'.$entry['regal'].'" polka="'.$entry['polka'].'" rzad="'.$entry['rzad'].'">'."\n");
-		$lastplace = $entry['regal'].'/'.$entry['polka'].'/'.$entry['rzad'];
+		
+		fwrite($fp, '<ksiazka id="k'.$entry['id'].'">'."\n");
+		foreach($fields as $key) {
+			fwrite($fp, '<'.$key.'>'.htmlspecialchars($entry[$key]).'</'.$key.'>'."\n");
+		}
+		fwrite($fp, '</ksiazka>'."\n");
 	}
-	
-	fwrite($fp, '<ksiazka id="k'.$entry['id'].'">'."\n");
-	foreach($fields as $key) {
-		fwrite($fp, '<'.$key.'>'.htmlspecialchars($entry[$key]).'</'.$key.'>'."\n");
+
+	if($lastplace !== NULL) {
+		fwrite($fp, '</lokalizacja>'."\n");
 	}
-	fwrite($fp, '</ksiazka>'."\n");
-}
 
-if($lastplace !== NULL) {
-	fwrite($fp, '</lokalizacja>'."\n");
-}
-
-fwrite($fp, '</inwentaryzacja>'."\n");
+	fwrite($fp, '</inwentaryzacja>'."\n");
 
 ?>
 
@@ -70,5 +78,10 @@
 </form>
 
 <?php
+}
+catch(Exception $e) {
+	echo '<p style="color:red">Wystąpił błąd: '.$e->getMessage().'</p>';
+}
+
 include('design/bottom.php');
 ?>
\ No newline at end of file

--
Gitblit v1.9.1