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

---
 includes/ksiazki.php |   26 +++++++++++---------------
 1 files changed, 11 insertions(+), 15 deletions(-)

diff --git a/includes/ksiazki.php b/includes/ksiazki.php
index 051fb28..2ca24e7 100644
--- a/includes/ksiazki.php
+++ b/includes/ksiazki.php
@@ -13,10 +13,6 @@
 	}
 	
 	static function cache_add($kod, &$dane) {
-		if($dane['od2']) {
-			$dane['od'] = $dane['od2'];
-			unset($dane['od2']);
-		}
 		self::$cache[(int)$kod] = $dane;
 	}
 	
@@ -37,7 +33,7 @@
 	}
 	
 	static function cache_update($kod) {
-		$dane = db2::escape_data(sql::fetchone(sql::query('SELECT *, (SELECT MAX(`od`) FROM `pozycz` WHERE `pozycz`.`id`=`ksiazki`.`id`) as `od2`, (SELECT `do` FROM `pozycz` WHERE `pozycz`.`id`=`ksiazki`.`id` AND `od`=`od2`) as `do`, (SELECT `kto` FROM `pozycz` WHERE `pozycz`.`id`=`ksiazki`.`id` AND `od`=`od2`) as `kto` FROM `ksiazki` WHERE `id`=\''.sql::escape($kod).'\'')));
+		$dane = db2::escape_data(sql::fetchone(sql::query('SELECT `ksiazki`.*, `pozycz`.`od`, `pozycz`.`kto` FROM `ksiazki` LEFT OUTER JOIN `pozycz` ON `pozycz`.`id`=`ksiazki`.`id` WHERE `ksiazki`.`id`='.sql::escape($kod))));
 		self::cache_add($kod, $dane);
 	}
 }
@@ -57,13 +53,13 @@
 		if($dane['ISBN']) {
 			$t = validate::type($dane['ISBN']);
 			if($t!='ISBN') {
-				error::add('W polu ISBN znajduje się '.$t);
+				errorclass::add('W polu ISBN znajduje się '.$t);
 			}
 		}
 		if($dane['ISSN']) {
 			$t = validate::type($dane['ISSN']);
 			if($t!='ISSN') {
-				error::add('W polu ISSN znajduje się '.$t);
+				errorclass::add('W polu ISSN znajduje się '.$t);
 			}
 		}
 		
@@ -97,7 +93,7 @@
 		$old = self::szukaj_KOD($kod);
 		
 		if($dane['id']=='' OR empty($dane['autor']) OR empty($dane['tytul']) OR empty($dane['jezyk'])) {
-			error::add('Brak wymaganych danych o książce (kod, autor, tytuł, język)');
+			errorclass::add('Brak wymaganych danych o książce (kod, autor, tytuł, język)');
 		}
 		
 		if($dane['nid']!='') {
@@ -110,13 +106,13 @@
 		if($dane['ISBN']) {
 			$t = validate::type($dane['ISBN']);
 			if($t!='ISBN') {
-				error::add('W polu ISBN znajduje się '.$t);
+				errorclass::add('W polu ISBN znajduje się '.$t);
 			}
 		}
 		if($dane['ISSN']) {
 			$t = validate::type($dane['ISSN']);
 			if($t!='ISSN') {
-				error::add('W polu ISSN znajduje się '.$t);
+				errorclass::add('W polu ISSN znajduje się '.$t);
 			}
 		}
 		
@@ -233,25 +229,25 @@
 		else
 		{
 			if($dane['do']) {
-				$num = db2::num('pozycz', 'id', array('do' => NULL));
-				if($num==0) {
+				$num = db2::num('pozycz', 'id');
+				if($num == 0) {
 					$ret = array();
 				}
 				else
 				{
-					$ret = db2::get(array('pozycz', array('J', 'ksiazki', 'USING', 'id')), '*', array('do' => NULL), $order, $start, $limit);
+					$ret = db2::get(array('pozycz', array('J', 'ksiazki', 'USING', 'id')), '*', NULL, $order, $start, $limit);
 				}
 			}
 			else
 			{
 				$num = db2::num('ksiazki', 'id', $where);
-				if($num==0) {
+				if($num == 0) {
 					$ret = array();
 				}
 				else
 				{
 					$where = db2::__combine_where($where, TRUE);
-					$ret = db2::escape_data(sql::fetch(sql::query('SELECT *, (SELECT MAX(`od`) FROM `pozycz` WHERE `pozycz`.`id`=`ksiazki`.`id`) as `od2`, (SELECT `do` FROM `pozycz` WHERE `pozycz`.`id`=`ksiazki`.`id` AND `od`=`od2`) as `do`, (SELECT `kto` FROM `pozycz` WHERE `pozycz`.`id`=`ksiazki`.`id` AND `od`=`od2`) as `kto`'.(db2::revelance() ? ', '.db2::$revelance : '').' FROM `ksiazki`'.$where.db2::__combine_order($order, TRUE).db2::__combine_limit($start, $limit))));
+					$ret = db2::escape_data(sql::fetch(sql::query('SELECT `ksiazki`.*, `pozycz`.`od`, `pozycz`.`kto`'.(db2::revelance() ? ', '.db2::$revelance : '').' FROM `ksiazki` LEFT OUTER JOIN `pozycz` ON `pozycz`.`id`=`ksiazki`.`id` '.$where.db2::__combine_order($order, TRUE).db2::__combine_limit($start, $limit))));
 				}
 			}
 			

--
Gitblit v1.9.1