Beispiel #1
0
 static function ISSN(&$kod)
 {
     $kod = str_replace('-', '', strtoupper($kod));
     if (ltrim($kod, '0123456789X') != '' or strlen($kod) != 8) {
         error::add('Błędny ISSN - dozwolone tylko cyfry');
     }
     if (substr($kod, -1) != checksum::ISSN(substr($kod, 0, -1))) {
         error::add('Podany ISSN jest błędny');
     }
 }
Beispiel #2
0
 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);
 }
Beispiel #3
0
 static function ISSN8_to_ISSN13($kod)
 {
     validate::ISSN($kod);
     $kod = '977' . substr($kod, 0, -1) . '00';
     return $kod . checksum::EAN($kod);
 }