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 ISBN(&$kod) { $kod = str_replace('-', '', strtoupper($kod)); if (ltrim($kod, '0123456789X') != '' or strlen($kod) != 10) { error::add('Błędny ISBN - dozwolone tylko cyfry i znak X'); } if (substr($kod, -1) != checksum::ISBN(substr($kod, 0, -1))) { error::add('Podany ISBN jest błędny'); } }
static function to_array($MARC) { if (!$MARC['020']) { $MARC['020'] = array(); } foreach ($MARC['020'] as $value) { $value = (string) $value['a']; if (strlen($value) == 9 and strlen($value) != 13) { $value .= checksum::ISBN($value); } if (strlen($value) > strlen($ISBN)) { $ISBN = $value; } } if (!$MARC['022']) { $MARC['022'] = array(); } foreach ($MARC['022'] as $value) { $value = (int) $value['a']; if (strlen($value) > strlen($ISSN)) { $ISSN = $value; } } if ($MARC['100'][0]['f0'] == 1) { $autor = explode(', ', $MARC['100'][0]['a'], 2); $MARC['100'][0]['a'] = str_replace('.', '', $autor[1]) . ' ' . $autor[0]; } if (empty($MARC['100'][0]['a'])) { $MARC['100'][0]['a'] = 'Praca zbiorowa'; } $MARC['260'][0]['b'] = str_replace(array('Wydaw.', 'Państ.', 'Państw.', 'PK', 'Min.'), array('Wydawnictwo', 'Państwowy', 'Państwowe', 'Politechnika Krakowska', 'Ministerstwa'), $MARC['260'][0]['b']); if ($MARC['041'][0]['a'] == 'pol') { $MARC['041'][0]['a'] = 'polski'; } if (empty($MARC['041'][0]['a'])) { $MARC['041'][0]['a'] = 'polski'; } if (!empty($MARC['245'][0]['b'])) { $MARC['245'][0]['a'] = trim($MARC['245'][0]['a'], '().,\\/"\' ') . '. ' . ucfirst(trim($MARC['245'][0]['b'], '().,\\/"\' ')); } return array('tytul' => trim($MARC['245'][0]['a'], '().,\\/"\' '), 'autor' => trim($MARC['100'][0]['a'], '().,\\/"\' '), 'rok' => trim($MARC['260'][0]['c'], '().,\\/"\' '), 'miejsce' => trim($MARC['260'][0]['a'], '().,\\/"\' '), 'wydawnictwo' => trim($MARC['260'][0]['b'], '().,\\/"\' '), 'wydanie' => trim($MARC['250'][0]['a'], '().,\\/"\' '), 'jezyk' => $MARC['041'][0]['a'], 'ISBN' => $ISBN, 'ISSN' => $ISSN); }