You are here

biblio.type.mapper.inc in Bibliography Module 6

File

biblio.type.mapper.inc
View source
<?php

function biblio_get_type_map($file_format, $default = FALSE) {
  if ($default) {
    switch ($file_format) {
      case 'bibtex':
        return array(
          'article' => 102,
          'book' => 100,
          'booklet' => 129,
          'conference' => 103,
          'inbook' => 101,
          'incollection' => 101,
          'inproceedings' => 103,
          'manual' => 129,
          'mastersthesis' => 108,
          'misc' => 129,
          'phdthesis' => 108,
          'proceedings' => 104,
          'techreport' => 129,
          'unpublished' => 124,
        );
      case 'tagged':
        return array(
          "Journal Article" => 102,
          "Conference Paper" => 103,
          "Conference Proceedings" => 104,
          "Report" => 109,
          "Book" => 100,
          "Edited Book" => 100,
          "Book Section" => 101,
          "Thesis" => 108,
          "Patent" => 119,
          "Generic" => 129,
          "Newspaper Article" => 105,
          "Magazine Article" => 106,
          "Web Page" => 107,
          "Film or Broadcast" => 110,
          "Artwork" => 112,
          "Audiovisual Material" => 114,
          "Hearing" => 115,
          "Case" => 116,
          "Bill" => 117,
          "Statute" => 118,
          "Personal Communication" => 120,
          "Manuscript" => 121,
          "Map" => 122,
          "Chart or Table" => 123,
          "Unpublished Work" => 124,
          "Online Database" => 125,
          "Government Document" => 126,
          "Classical Work" => 127,
          "Legal Rule or Regulation" => 128,
        );
      case 'ris':
        return array(
          'ABST' => 129,
          'ADVS' => 114,
          'ART' => 112,
          'BILL' => 117,
          'BOOK' => 100,
          'CASE' => 116,
          'CHAP' => 101,
          'COMP' => 113,
          'CONF' => 103,
          'CTLG' => 129,
          'DATA' => 125,
          'ELEC' => 129,
          'GEN' => 129,
          'HEAR' => 115,
          'ICOMM' => 107,
          'INPR' => 129,
          'JFULL' => 129,
          'JOUR' => 102,
          'MAP' => 122,
          'MGZN' => 106,
          'MPCT' => 110,
          'MUSIC' => 129,
          'NEWS' => 105,
          'PAMP' => 129,
          'PAT' => 119,
          'PCOMM' => 120,
          'RPRT' => 109,
          'SER' => 100,
          'SLIDE' => 129,
          'SOUND' => 129,
          'STAT' => 125,
          'THES' => 108,
          'UNBILl' => 129,
          'UNPB' => 124,
          'VIDEO' => 129,
        );
      case 'endnote7':
        return array(
          0 => 102,
          // Journal Article
          1 => 100,
          // Book
          2 => 108,
          // Thesis
          3 => 103,
          // Conference Proceedings
          4 => 120,
          // Personal Communication
          5 => 105,
          // NewsPaper Article
          6 => 113,
          // Computer Program
          7 => 101,
          // Book Section
          8 => 106,
          // Magazine Article
          9 => 100,
          // Edited Book
          10 => 109,
          // Report
          11 => 122,
          // Map
          12 => 114,
          // Audiovisual Material
          13 => 112,
          // Artwork
          15 => 119,
          // Patent
          16 => 107,
          // Electronic Source
          17 => 117,
          // Bill
          18 => 116,
          // Case
          19 => 115,
          // Hearing
          20 => 121,
          // Manuscript
          21 => 110,
          // Film or Broadcast
          22 => 118,
          // Statute
          26 => 123,
          // Chart or Table
          31 => 129,
        );
      case 'endnote8':
        return array(
          2 => 112,
          // artwork
          3 => 114,
          // Audio Visual
          4 => 117,
          // bill
          5 => 101,
          // Book Section
          6 => 100,
          // Book
          7 => 116,
          // case
          9 => 113,
          // software
          17 => 102,
          // Journal Article
          10 => 104,
          // Conference Proceeding
          12 => 107,
          // web page
          13 => 129,
          // Generic
          14 => 115,
          // hearing
          19 => 106,
          // magazine_article
          20 => 122,
          // map
          21 => 110,
          // film
          21 => 111,
          // broadcast
          23 => 105,
          // newspaper_article
          25 => 119,
          // patent
          26 => 120,
          // personal communication
          27 => 109,
          // Report
          28 => 129,
          // Edited Book
          31 => 118,
          // statute
          32 => 108,
          // Thesis
          34 => 124,
          // unpublished
          36 => 121,
          // manuscript
          37 => 129,
          // figure
          38 => 123,
          // chart
          39 => 129,
          // equation
          43 => 129,
          // electronic article
          44 => 129,
          // electronic book
          45 => 125,
          // online database
          46 => 126,
          // government_document
          47 => 103,
          // conference_paper
          48 => 129,
          // online multimedia
          49 => 127,
          // Classical Work
          50 => 128,
          // legal_ruling
          52 => 129,
          // Dictionary
          53 => 129,
          // Encyclopedia
          54 => 129,
        );
      case 'unixref':
        return array(
          'error' => 0,
          'book' => 100,
          // Book
          'journal' => 102,
          // Journal Article
          'standard' => 129,
          // Generic
          'conference' => 103,
          // conference_paper
          'report-paper' => 109,
          // Report
          'dissertation' => 108,
          // Thesis
          'database' => 125,
          // online database
          'sa_component' => 129,
        );
      case 'marc':
        return array(
          'ab' => 102,
          // Journal Article
          'as' => 102,
          // Journal Article
          'am' => 100,
          // Book
          2 => 108,
          // Thesis
          3 => 103,
          // Conference Proceedings
          4 => 120,
          // Personal Communication
          5 => 105,
          // NewsPaper Article
          6 => 113,
          // Computer Program
          'aa' => 101,
          // Book Section
          8 => 106,
          // Magazine Article
          9 => 100,
          // Edited Book
          10 => 109,
          // Report
          'em' => 122,
          // Map
          12 => 114,
          // Audiovisual Material
          13 => 112,
          // Artwork
          15 => 119,
          // Patent
          16 => 107,
          // Electronic Source
          17 => 117,
          // Bill
          18 => 116,
          // Case
          19 => 115,
          // Hearing
          20 => 121,
          // Manuscript
          21 => 110,
          // Film or Broadcast
          22 => 118,
          // Statute
          26 => 123,
          // Chart or Table
          31 => 129,
        );
    }
  }
  else {
    $map = variable_get('biblio_' . $file_format . '_type_map', array());
    if (empty($map)) {
      $map = biblio_get_type_map($file_format, TRUE);
    }
    return $map;
  }
}
function biblio_get_type_names($file_format, $default = FALSE) {
  if ($default) {
    switch ($file_format) {
      case 'bibtex':
        return array(
          'article' => 'An article from a journal',
          'book' => 'A book with an explicit publisher',
          'booklet' => 'A work that is printed and bound, but without a named publisher or sponsoring institution',
          'conference' => 'An article in a conference proceedings',
          'inbook' => 'A part of a book, usually untitled. May be a chapter (or section or whatever) and/or a range of pages',
          'incollection' => 'A part of a book having its own title',
          'inproceedings' => 'An article in a conference proceedings',
          'manual' => 'Technical documentation',
          'mastersthesis' => 'A Master\'s thesis',
          'misc' => 'For use when nothing else fits',
          'phdthesis' => 'A Ph.D. thesis',
          'proceedings' => 'The proceedings of a conference',
          'techreport' => 'A report published by a school or other institution, usually numbered within a series',
          'unpublished' => 'A document having an author and title, but not formally published',
        );
      case 'tagged':
        return array(
          "Journal Article" => "Journal Article",
          "Conference Paper" => "Conference Paper",
          "Conference Proceedings" => "Conference Proceedings",
          "Report" => "Report",
          "Book" => "Book",
          "Edited Book" => "Edited Book",
          "Book Section" => "Book Section",
          "Thesis" => "Thesis",
          "Patent" => "Patent",
          "Generic" => "Generic",
          "Newspaper Article" => "Newspaper Article",
          "Magazine Article" => "Magazine Article",
          "Web Page" => "Web Page",
          "Film or Broadcast" => "Film or Broadcast",
          "Artwork" => "Artwork",
          "Audiovisual Material" => "Audiovisual Material",
          "Hearing" => "Hearing",
          "Case" => "Case",
          "Bill" => "Bill",
          "Statute" => "Statute",
          "Personal Communication" => "Personal Communication",
          "Manuscript" => "Manuscript",
          "Map" => "Map",
          "Chart or Table" => "Chart or Table",
          "Unpublished Work" => "Unpublished Work",
          "Online Database" => "Online Database",
          "Government Document" => "Government Document",
          "Classical Work" => "Classical Work",
          "Legal Rule or Regulation" => "Legal Rule or Regulation",
        );
      case 'ris':
        return array(
          'ABST' => 'Abstract',
          'ADVS' => 'Audiovisual material',
          'ART' => 'Art Work',
          'BILL' => 'Bill/Resolution',
          'BOOK' => 'Book, Whole',
          'CASE' => 'Case',
          'CHAP' => 'Book chapter',
          'COMP' => 'Computer program',
          'CONF' => 'Conference proceeding',
          'CTLG' => 'Catalog',
          'DATA' => 'Data file',
          'ELEC' => 'Electronic Citation',
          'GEN' => 'Generic',
          'HEAR' => 'Hearing',
          'ICOMM' => 'Internet Communication',
          'INPR' => 'In Press',
          'JFULL' => 'Journal (full)',
          'JOUR' => 'Journal',
          'MAP' => 'Map',
          'MGZN' => 'Magazine article',
          'MPCT' => 'Motion picture',
          'MUSIC' => 'Music score',
          'NEWS' => 'Newspaper',
          'PAMP' => 'Pamphlet',
          'PAT' => 'Patent',
          'PCOMM' => 'Personal communication',
          'RPRT' => 'Report',
          'SER' => 'Serial (Book, Monograph)',
          'SLIDE' => 'Slide',
          'SOUND' => 'Sound recording',
          'STAT' => 'Statute',
          'THES' => 'Thesis/Dissertation',
          'UNBILl' => 'Unenacted bill/resolution',
          'UNPB' => 'Unpublished work',
          'VIDEO' => 'Video recording',
        );
      case 'endnote7':
        return array(
          0 => 'Journal Article',
          1 => 'Book',
          2 => 'Thesis',
          3 => 'Conference Proceedings',
          4 => 'Personal Communication',
          5 => 'NewsPaper Article',
          6 => 'Computer Program',
          7 => 'Book Section',
          8 => 'Magazine Article',
          9 => 'Edited Book',
          10 => 'Report',
          11 => 'Map',
          12 => 'Audiovisual Material',
          13 => 'Artwork',
          15 => 'Patent',
          16 => 'Electronic Source',
          17 => 'Bill',
          18 => 'Case',
          19 => 'Hearing',
          20 => 'Manuscript',
          21 => 'Film or Broadcast',
          22 => 'Statute',
          26 => 'Chart or Table',
          31 => 'Generic',
        );
      case 'endnote8':
        return array(
          2 => 'Artwork',
          3 => 'Audio Visual',
          4 => 'Bill',
          5 => 'Book Section',
          6 => 'Book',
          7 => 'Case',
          9 => 'Software',
          17 => 'Journal Article',
          10 => 'Conference Proceeding',
          12 => 'Web page',
          13 => 'Generic',
          14 => 'Hearing',
          19 => 'Magazine Article',
          20 => 'Map',
          21 => 'Film',
          21 => 'Broadcast',
          23 => 'Newspaper Article',
          25 => 'Patent',
          26 => 'Personal Communication',
          27 => 'Report',
          28 => 'Edited Book',
          31 => 'Statute',
          32 => 'Thesis',
          34 => 'Unpublished',
          36 => 'Manuscript',
          37 => 'Figure',
          38 => 'Chart',
          39 => 'Equation',
          43 => 'Electronic Article',
          44 => 'Electronic Book',
          45 => 'Online Database',
          46 => 'Government Document',
          47 => 'Conference Paper',
          48 => 'Online Multimedia',
          49 => 'Classical Work',
          50 => 'Legal Ruling',
          52 => 'Dictionary',
          53 => 'Encyclopedia',
          54 => 'Grant',
        );
      case 'unixref':
        return array(
          'error' => 'Error',
          'book' => 'Book',
          'journal' => 'Journal Article',
          'standard' => 'Generic',
          'conference' => 'Conference Paper',
          'report-paper' => 'Report',
          'dissertation' => 'Thesis',
          'database' => 'Online database',
          'sa_component' => 'SA Component',
        );
    }
  }
  else {
    $names = variable_get('biblio_' . $file_format . '_type_names', array());
    if (empty($names)) {
      $names = biblio_get_type_names($file_format, TRUE);
    }
    return $names;
  }
}
function biblio_get_field_map($file_format, $default = FALSE) {
  if ($default) {
    switch ($file_format) {
      case 'bibtex':
        return array(
          'journal' => 'biblio_secondary_title',
          'booktitle' => 'biblio_secondary_title',
          'series' => 'biblio_secondary_title',
          'volume' => 'biblio_volume',
          'number' => 'biblio_number',
          'year' => 'biblio_year',
          'note' => 'biblio_notes',
          'month' => 'biblio_date',
          'pages' => 'biblio_pages',
          'publisher' => 'biblio_publisher',
          'school' => 'biblio_publisher',
          'organization' => 'biblio_publisher',
          'institution' => 'biblio_publisher',
          'type' => 'biblio_type_of_work',
          'edition' => 'biblio_edition',
          'chapter' => 'biblio_section',
          'address' => 'biblio_place_published',
          'abstract' => 'biblio_abst_e',
          'keywords' => 'biblio_keywords',
          'isbn' => 'biblio_isbn',
          'issn' => 'biblio_issn',
          'doi' => 'biblio_doi',
          'url' => 'biblio_url',
        );
      case 'tagged':
        return array(
          '%B' => 'biblio_secondary_title',
          '%C' => 'biblio_place_published',
          '%D' => 'biblio_year',
          '%F' => 'biblio_label',
          '%G' => 'biblio_lang',
          '%I' => 'biblio_publisher',
          '%J' => 'biblio_secondary_title',
          '%K' => 'biblio_keywords',
          '%L' => 'biblio_call_number',
          '%M' => 'biblio_accession_number',
          '%N' => 'biblio_issue',
          '%P' => 'biblio_pages',
          '%R' => 'biblio_doi',
          '%S' => 'biblio_tertiary_title',
          '%U' => 'biblio_url',
          '%V' => 'biblio_volume',
          '%X' => 'biblio_abst_e',
          '%Z' => 'biblio_notes',
          '%1' => 'biblio_custom1',
          '%2' => 'biblio_custom2',
          '%3' => 'biblio_custom3',
          '%4' => 'biblio_custom4',
          '%#' => 'biblio_custom5',
          '%$' => 'biblio_custom6',
          '%]' => 'biblio_custom7',
          '%6' => 'biblio_number_of_volumes',
          '%7' => 'biblio_edition',
          '%8' => 'biblio_date',
          '%9' => 'biblio_type_of_work',
          '%?' => '',
          '%@' => 'biblio_isbn',
          '%<' => 'biblio_research_notes',
          '%!' => 'biblio_short_title',
          '%&' => 'biblio_section',
          '%(' => 'biblio_original_publication',
          '%)' => 'biblio_reprint_edition',
          '%*' => '',
          '%+' => '',
        );
      case 'ris':
        return array(
          'ID' => '',
          //- Reference ID (not imported to reference software)
          'T1' => '',
          //- Primary title
          'TI' => '',
          //- Book title
          'CT' => '',
          //- Title of unpublished reference
          'A1' => '',
          //- Primary author
          'A2' => '',
          //- Secondary author (each name on separate line)
          'AU' => '',
          //- Author (syntax. Last name, First name, Suffix)
          'Y1' => '',
          //- Primary date
          'PY' => '',
          //- Publication year (YYYY/MM/DD)
          'N1' => 'biblio_notes',
          //- Notes
          'KW' => '',
          //- Keywords (each keyword must be on separate line preceded KW -)
          'RP' => '',
          //- Reprint status (IN FILE, NOT IN FILE, ON REQUEST (MM/DD/YY))
          'SP' => '',
          //- Start page number
          'EP' => '',
          //- Ending page number
          'JF' => 'biblio_secondary_title',
          //- Periodical full name
          'JO' => 'biblio_short_title',
          //- Periodical standard abbreviation
          'JA' => 'biblio_secondary_title',
          //- Periodical in which article was published
          'J1' => 'biblio_short_title',
          //- Periodical name //- User abbreviation 1
          'J2' => 'biblio_short_title',
          //- Periodical name - User abbreviation 2
          'VL' => 'biblio_volume',
          //- Volume number
          'IS' => 'biblio_issue',
          //- Issue number
          'CP' => 'biblio_issue',
          //- Issue number
          'T2' => 'biblio_secondary_title',
          //- Title secondary
          'CY' => 'biblio_place_published',
          //- City of Publication
          'PB' => 'biblio_publisher',
          //- Publisher
          'U1' => 'biblio_custom1',
          //- User definable 1
          'U2' => 'biblio_custom2',
          //- User definable 2
          'U3' => 'biblio_custom3',
          //- User definable 3
          'U4' => 'biblio_custom4',
          //- User definable 4
          'U5' => 'biblio_custom5',
          //- User definable 5
          'T3' => 'biblio_tertiary_title',
          //- Title series
          'AB' => 'biblio_abst_e',
          //- Abstract
          'N2' => 'biblio_abst_e',
          //- Abstract
          'SN' => 'biblio_isbn',
          //- ISSN/ISBN (e.g. ISSN XXXX-XXXX)
          'AV' => '',
          //- Availability
          'M1' => '',
          //- Misc. 1
          'M3' => '',
          //- Misc. 3
          'AD' => '',
          //- Address
          'UR' => 'biblio_url',
          //- Web/URL
          'L1' => '',
          //- Link to PDF
          'L2' => '',
          //- Link to Full-text
          'L3' => '',
          //- Related records
          'L4' => '',
          //- Images
          'ER' => '',
        );
      case 'endnote7':
        return array(
          'REFERENCE_TYPE' => 'biblio_type',
          'REFNUM' => '',
          'YEAR' => 'biblio_year',
          'SECONDARY_TITLE' => 'biblio_secondary_title',
          'PLACE_PUBLISHED' => 'biblio_place_published',
          'PUBLISHER' => 'biblio_publisher',
          'VOLUME' => 'biblio_volume',
          'ISSUE' => 'biblio_issue',
          'NUMBER_OF_VOLUMES' => 'biblio_number_of_volumes',
          'NUMBER' => 'biblio_number',
          'PAGES' => 'biblio_pages',
          'SECTION' => 'biblio_section',
          'TERTIARY_TITLE' => 'biblio_tertiary_title',
          'EDITION' => 'biblio_edition',
          'DATE' => 'biblio_date',
          'TYPE_OF_WORK' => 'biblio_type_of_work',
          'SHORT_TITLE' => 'biblio_short_title',
          'ALTERNATE_TITLE' => 'biblio_alternate_title',
          'ISBN' => 'biblio_isbn',
          'ORIGINAL_PUB' => 'biblio_original_publication',
          'REPRINT_EDITION' => 'biblio_reprint_edition',
          'REVIEWED_ITEM' => '',
          'CUSTOM1' => 'biblio_custom1',
          'CUSTOM2' => 'biblio_custom2',
          'CUSTOM3' => 'biblio_custom3',
          'CUSTOM4' => 'biblio_custom4',
          'CUSTOM5' => 'biblio_custom5',
          'CUSTOM6' => 'biblio_custom6',
          'ACCESSION_NUMBER' => 'biblio_accession_number',
          'CALL_NUMBER' => 'biblio_call_number',
          'LABEL' => 'biblio_label',
          'KEYWORD' => 'biblio_keywords',
          'ABSTRACT' => 'biblio_abst_e',
          'NOTES' => 'biblio_notes',
          'URL' => 'biblio_url',
          'AUTHOR_ADDRESS' => '',
          'IMAGE' => '',
          'CAPTION' => '',
        );
      case 'endnote8':
        return array(
          'source-app' => '',
          'rec-number' => '',
          'ref-type' => 'biblio_type',
          'auth-address' => 'biblio_auth_address',
          'auth-affiliaton' => '',
          'secondary-title' => 'biblio_secondary_title',
          'tertiary-title' => 'biblio_tertiary_title',
          'alt-title' => 'biblio_alternate_title',
          'short-title' => 'biblio_short_title',
          'translated-title' => 'biblio_translated_title',
          'full-title' => '',
          'abbr-1' => '',
          'abbr-2' => '',
          'abbr-3' => '',
          'pages' => 'biblio_pages',
          'volume' => 'biblio_volume',
          'number' => 'biblio_number',
          'issue' => 'biblio_issue',
          'secondary-volume' => '',
          'secondary-issue' => '',
          'num-vols' => 'biblio_number_of_volumes',
          'edition' => 'biblio_edition',
          'section' => 'biblio_section',
          'reprint-edition' => 'biblio_reprint_edition',
          'reprint-status' => '',
          'year' => 'biblio_year',
          'pub-dates' => 'biblio_date',
          'copyright-dates' => '',
          'pub-location' => 'biblio_place_published',
          'publisher' => 'biblio_publisher',
          'orig-pub' => 'biblio_original_publication',
          'isbn' => 'biblio_isbn',
          'accession-num' => 'biblio_accession_number',
          'call-num' => 'biblio_call_number',
          'report-id' => '',
          'coden' => '',
          'electronic-resource-num' => '',
          'abstract' => 'biblio_abst_e',
          'label' => 'biblio_label',
          'image' => '',
          'caption' => '',
          'notes' => 'biblio_notes',
          'research-notes' => 'biblio_research_notes',
          'work-type' => 'biblio_type_of_work',
          'reviewed-item' => '',
          'availability' => '',
          'remote-source' => '',
          'meeting-place' => '',
          'work-location' => '',
          'work-extent' => '',
          'pack-method' => '',
          'size' => '',
          'repro-ratio' => '',
          'remote-database-name' => 'biblio_remote_db_name',
          'remote-database-provider' => 'biblio_remote_db_provider',
          'language' => 'biblio_lang',
          'web-urls' => '',
          'pdf-urls' => '',
          'text-urls' => '',
          'image-urls' => '',
          'related-urls' => 'biblio_url',
          'access-date' => 'biblio_access_date',
          'modified-date' => '',
          'custom1' => 'biblio_custom1',
          'custom2' => 'biblio_custom2',
          'custom3' => 'biblio_custom3',
          'custom4' => 'biblio_custom4',
          'custom5' => 'biblio_custom5',
          'custom6' => 'biblio_custom6',
          'custom7' => 'biblio_custom7',
          'misc1' => '',
          'misc2' => '',
          'misc3' => '',
        );
      case 'unixref':
        return array(
          'publisher_place' => 'biblio_place_published',
          'publisher_name' => 'biblio_publisher',
          'volume' => 'biblio_volume',
          'number' => 'biblio_number',
          'issue' => 'biblio_issue',
          'edition_number' => 'biblio_edition',
          'section' => 'biblio_section',
          'doi' => 'doi',
          'title' => 'title',
          'isbn' => 'isbn',
          'issn' => 'issn',
          'first_page' => 'biblio_first_page',
          'last_page' => 'biblio_last_page',
          // Journal metadata
          'full_title' => 'biblio_secondary_title',
          'abbrev_title' => 'biblio_short_title',
          // Conference metadata
          'conference_location' => 'biblio_place_published',
          'conference_name' => 'biblio_secondary_title',
          'conference_acronym' => 'biblio_short_title',
          // Proceedings metadata
          'proceedings_title' => 'biblio_secondary_title',
          'year' => 'year',
          'month' => 'month',
          'day' => 'day',
          'degree' => 'biblio_type_of_work',
          'error' => 'error',
          'language' => 'biblio_lang',
        );
    }
  }
  else {
    $map = variable_get('biblio_' . $file_format . '_field_map', array());
    if (empty($map)) {
      $map = biblio_get_field_map($file_format, TRUE);
    }
    return $map;
  }
}
function biblio_get_export_map($file_format, $default = FALSE) {
  switch ($default) {
    case FALSE:
      $map = variable_get('biblio_' . $file_format . '_export_map', array());
      if (!empty($map)) {
        return $map;
      }
    case TRUE:
    default:
      $schema = drupal_get_schema('biblio');
      $fieldnames = array_keys($schema['fields']);
      asort($fieldnames);
      $map = array_fill_keys($fieldnames, 1);
      return $map;
  }
}