static function is_error() { if ($e = yaz_error(self::$connection)) { error::add('Błąd YAZ: ' . $e); } else { return FALSE; } }
static function ISBN13_to_ISBN10($kod) { validate::EAN($kod); if (substr($kod, 0, 3) == '978') { $kod = substr($kod, 3, 9); return strtoupper($kod . checksum::ISBN($kod)); } else { error::add('Kodu ISBN-13 ' . $kod . ' nie można zamienić na ISBN-10!'); } }
static function zwrot($kod) { if (self::pozyczona($kod) === FALSE) { error::add('Książka nie jest wypożyczona!'); } $st = PDOO::Singleton()->prepare('INSERT INTO pozycz_historia (id, kto, od, do) SELECT id, kto, od, ? FROM pozycz WHERE id=?'); $st->execute(array(time(), $kod)); $st = PDOO::Singleton()->prepare('DELETE FROM pozycz WHERE id=?'); $st->execute(array($kod)); ksiazki::cache_update($kod); }
function kod($kod) { global $code; if (trim($kod, '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $') != '') { error::add('Znaki inne niż cyfry, litery, pauza, kropka, spacja, ukośnik'); } $kod = $code['SS'] . $code['BT'] . gen_binary($kod) . $code['SS']; $i = imagecreate(strlen($kod), 40); $w = imagecolorallocate($i, 255, 255, 255); $b = imagecolorallocate($i, 0, 0, 0); print_code($kod, $i, $b, $w); ob_start(); imagegif($i); $img = ob_get_contents(); ob_end_clean(); return $img; }
static function lista() { if (!in_array($_GET['sort'], array('id', 'autor', 'tytul', 'miejsce', 'rok', 'wydawnictwo'))) { $_GET['sort'] = 'tytul'; self::$default = TRUE; } if ($_GET['ord'] != 'desc') { $_GET['ord'] = 'asc'; } if (!ctype_digit($_GET['strona'])) { $_GET['strona'] = 0; } if ($_GET['id']) { self::add('id', 13); self::add('polka', 3); self::add('rzad', 3); } else { self::add('tytul'); self::add('autor'); self::add('wydanie', 25); self::add('miejsce'); self::add('rok', 4); self::add('wydawnictwo'); } if (self::$default) { $sort = array('revelance' => self::invert_sort($_GET['ord']), $_GET['sort'] => $_GET['ord']); } else { $sort = array($_GET['sort'] => $_GET['ord']); } list($num, $ksiazki, $revelance) = ksiazki::szukaj_info($_GET, $sort, $_GET['strona'] * self::$nastrone, self::$nastrone); if ($num == 0) { error::add('Brak książek spełniających podane kryteria'); } elseif ($num == 1 and !$revelance) { self::informacje(NULL, $ksiazki[0]); return TRUE; } echo '<table class="width"> <tr> <th>Okł.</th> <th> <b><a href="' . self::sort('id') . '">Kod</a></b> <br /> Wyd. </th> <th> <a href="' . self::sort('autor') . '">Autor</a> <br /> <b><a href="' . self::sort('tytul') . '">Tytuł</a></b> </th> <th> <a href="' . self::sort('miejsce') . '">Miejsce</a>, <a href="' . self::sort('rok') . '">rok</a> <br /> <a href="' . self::sort('wydawnictwo') . '">Wydawnictwo</a> </th>' . ($revelance ? ' <th><a href="' . self::sort('default') . '">Trafność</a></th>' : '') . ' <th> Wypożyczenie <br /> Opcje </th> </tr> '; foreach ($ksiazki as $ksiazka) { if ($ksiazka['wycofana']) { $info = 'Książka wycofana'; $class = 'wyc'; } else { if ($ksiazka['do'] !== NULL or $ksiazka['od'] === NULL) { $class = 'norm'; $info = 'Książka w bibliotece'; } else { $class = 'poz'; $info = $ksiazka['kto']; $pozycz = TRUE; } } $cover = ksiazki::okladka($ksiazka['id'], $ksiazka['ISBN']); echo '<tr' . ($class ? ' class="' . $class . '"' : '') . '> <td> ' . ($cover ? '<a href="cover.php?KOD=' . $ksiazka['id'] . '&ISBN=' . $ksiazka['ISBN'] . '"><img src="' . $cover . '" alt="Okładka" /></a>' : '') . ' </td> <td> <b>' . $ksiazka['id'] . '</b> <br /> ' . ($ksiazka['wydanie'] ? 'W. ' . $ksiazka['wydanie'] : '') . ' </td> <td> ' . $ksiazka['autor'] . ($ksiazka['regal'] ? ' <span>(' . $ksiazka['regal'] . ($ksiazka['polka'] ? '/' . $ksiazka['polka'] : '') . ($ksiazka['rzad'] ? '/' . $ksiazka['rzad'] : '') . ')</span>' : '') . ' <br /> <b>' . $ksiazka['tytul'] . '</b> </td> <td> ' . $ksiazka['miejsce'] . ' ' . $ksiazka['rok'] . ' <br /> ' . $ksiazka['wydawnictwo'] . ' </td>' . ($revelance ? ' <td>' . min(100, (int) ($ksiazka['revelance'] * 10)) . '% </td>' : '') . ' <td class="n"> ' . $info . ' <br /> <a href="info.php?kod=' . $ksiazka['id'] . '">Więcej</a> <a href="edit.php?kod=' . $ksiazka['id'] . '">Edycja</a> <a href="del.php?kod=' . $ksiazka['id'] . '">Usuń</a> </td> </tr> '; } echo '</table> '; self::strony($num); }
static function type(&$kod) { $kod = str_replace('-', '', $kod); switch (strlen($kod)) { case 13: self::EAN($kod); if (substr($kod, 0, 3) == '978' or substr($kod, 0, 3) == '979') { return 'ISBN'; } elseif (substr($kod, 0, 3) == '977') { return 'ISSN'; } break; case 9: if (self::$kod) { $kod = substr($kod, 1); self::ISSN($kod); $kod = convert::ISSN8_to_ISSN13($kod); return 'ISSN'; } break; case 8: if (self::$kod) { self::KOD($kod); return 'KOD'; } else { self::ISSN($kod); $kod = convert::ISSN8_to_ISSN13($kod); return 'ISSN'; } break; case 10: self::ISBN($kod); $kod = convert::ISBN10_to_ISBN13($kod); return 'ISBN'; break; default: if (self::$kod and ctype_digit($kod)) { self::KOD($kod); return 'KOD'; } break; } if (self::$kod) { self::MSC($kod); return 'MSC'; } error::add('Nieznany typ kodu'); }
<?php if (!extension_loaded('gd')) { error::add('Brak rozszerzenia GD/GD2. Generowanie kodów kreskowych jest niemożliwe.'); } $code = array('SS' => '1011110000100001', 'BT' => '0', '0' => '1010100001111', '1' => '1010111100001', '2' => '1010000101111', '3' => '1111000010101', '4' => '1011110100001', '5' => '1111010100001', '6' => '1000010101111', '7' => '1000010111101', '8' => '1000011110101', '9' => '1111010000101', '-' => '1010000111101', '$' => '1011110000101', ':' => '1111010111101111', '/' => '1111011110101111', '.' => '1111011110111101', '+' => '1011110111101111'); function gen_binary($kod) { global $code; $kod = str_split($kod); $ret = ''; foreach ($kod as $key => $val) { $ret .= $code[$val] . $code['BT']; } return $ret; } function print_code($kod, $img, $b, $w) { $kod = str_split($kod); foreach ($kod as $val) { if ($val == 1) { imageline($img, $now, 0, $now, 40, $b); $now++; } elseif ($val == 0) { $now++; } } } function kod($kod) { global $code;
static function skaluj($file, $max_width, $max_height, $outfile) { list($width, $height, $type) = getimagesize($file); switch ($type) { case IMAGETYPE_JPEG: $image = imagecreatefromjpeg($file); break; case IMAGETYPE_PNG: $image = imagecreatefrompng($file); break; case IMAGETYPE_GIF: $image = imagecreatefromgif($file); break; case IMAGETYPE_XBM: $image = imagecreatefromxpm($file); break; default: error::add('Nieznany format obrazka: ' . $type . '!'); return FALSE; break; } if ($width > $max_width or $height > $max_height) { if ($width * $max_height > $height * $max_width) { $new_width = $max_width; $new_height = round($new_width / $width * $height); } else { $new_height = $max_height; $new_width = round($new_height / $height * $width); } $new_image = imagecreatetruecolor($new_width, $new_height); imagecopyresampled($new_image, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); return imagejpeg($new_image, $outfile, 100); } else { return imagejpeg($image, $outfile, 100); } }
<?php include './includes/std.php'; validate::KOD($_POST['kod'], FALSE); if (!is_uploaded_file($_FILES['marc']['tmp_name'])) { error::add('Nie wysłano pliku!'); } $szukaj = array(MARC21::to_array(MARC21::from_string(file_get_contents($_FILES['marc']['tmp_name'])))); $i = 0; $title = 'Dodawanie książki'; include './design/top.php'; ?> <h3> Krok 2 - wybierz żądaną książkę </h3> <?php gotowe::dodaj_lista($_POST['kod'], $szukaj); ?> <?php include './design/bottom.php';
<?php include './includes/std.php'; if ($_POST['id'] == '' or empty($_POST['autor']) or empty($_POST['tytul']) or empty($_POST['jezyk'])) { error::add('Brak wymaganych danych o książce (kod, autor, tytuł, język)'); } ksiazki::dodaj($_POST); $title = 'Dodawanie książki'; include './design/top.php'; ?> <h3> Książka została dodana! </h3> <p>Informacje o dodanym egzemplarzu:</p> <?php gotowe::informacje($_POST['id']); include './design/bottom.php';
static function edytuj(&$dane) { validate::KOD($dane['id']); $kod = $dane['id']; $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)'); } if ($dane['nid'] != '') { validate::KOD($dane['nid']); $dane['id'] = $dane['nid']; } unset($dane['nid']); if ($dane['ISBN']) { $t = validate::type($dane['ISBN']); if ($t != 'ISBN') { error::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); } } if (!$dane['wycofana']) { $dane['wycofana'] = 0; $dane['powod'] = NULL; } okladki::przenies($old['id'], $old['ISBN'], $dane['id'], $dane['ISBN']); unset($_POST['okladka']); // Nowa okładka if (isset($_POST['okladka_del']) || isset($_FILES['okladka']) && is_uploaded_file($_FILES['okladka']['tmp_name'])) { okladki::usun($dane['id'], $dane['ISBN']); unset($_POST['okladka_del']); } okladki::upload($_FILES['okladka'], $dane['id'], $dane['ISBN']); db2::edit('ksiazki', $dane, array('id' => $kod)); self::cache_update($kod); if ($dane['id'] != $kod) { self::cache_update($dane['id']); } }
<?php include './includes/std.php'; validate::KOD($_GET['kod']); $ksiazka = ksiazki::szukaj_KOD($_GET['kod']); if (empty($ksiazka)) { error::add('Wybrana książka nie istnieje'); } $title = 'Usuwanie książki'; include './design/top.php'; ?> <h3>Czy na pewno chcesz usunąć poniższą książkę?</h3> <form action="del_book.php" method="post" onsubmit="return ffalse('step4')"> <p>KOD: <input type="text" name="kod" id="step41" value="<?php echo $_GET['kod']; ?> " readonly="readonly" required="required" /><br /> Tytuł: <?php echo $ksiazka['tytul']; ?> <br /> Autor: <?php echo $ksiazka['autor']; ?> <br /> Wydanie: <?php echo $ksiazka['wydanie']; ?> </p>