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 """> -<!ENTITY % amp "&"> -<!ENTITY % lt "<"> -<!ENTITY % gt ">"> -<!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 """> + <!ENTITY % amp "&"> + <!ENTITY % lt "<"> + <!ENTITY % gt ">"> + <!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