function DisplayHtmlContent()
    {
        global $config;
        global $db;
        $this->display_disqus = false;
        echo html_page_header(true, '', 'name');
        echo '<h1>' . $this->GetTitle() . '</h1>';
        echo '<h2>' . num_cited_by($this->id) . " citations" . '</h2>';
        echo '<p class="explanation">References in BioStor that cite this reference</p>' . "\n";
        $sql = 'SELECT DISTINCT(rdmp_reference_cites.reference_id) FROM rdmp_reference_citation_string_joiner
INNER JOIN rdmp_reference_cites USING(citation_string_id)
WHERE rdmp_reference_citation_string_joiner.reference_id=' . $this->id;
        $result = $db->Execute($sql);
        if ($result == false) {
            die("failed [" . __FILE__ . ":" . __LINE__ . "]: " . $sql);
        }
        echo '<ul>' . "\n";
        while (!$result->EOF) {
            $reference = db_retrieve_reference($result->fields['reference_id']);
            echo '<li style="border-bottom:1px dotted rgb(128,128,128);padding:4px;">';
            echo '<a href="' . $config['web_root'] . 'reference/' . $result->fields['reference_id'] . '">' . $reference->title . '</a><br/>';
            echo '<span style="color:green;">' . reference_authors_to_text_string($reference);
            if (isset($reference->year)) {
                echo ' (' . $reference->year . ')';
            }
            echo ' ' . reference_to_citation_text_string($reference) . '</span>';
            echo ' ' . reference_to_coins($reference);
            echo '</li>';
            $result->MoveNext();
        }
        echo '</ul>' . "\n";
    }
Beispiel #2
0
     $c[] = $co->id;
 }
 $journal_names = array();
 foreach ($refs as $reference_id) {
     global $config;
     $reference = db_retrieve_reference($reference_id);
     $item = new stdclass();
     $item->uri = $config['web_root'] . 'reference/' . $reference_id;
     $item->type = $reference->genre;
     $item->label = $reference->title;
     // Group journals
     if (!isset($journal_names[$reference->issn])) {
         $journal_names[$reference->issn] = $reference->secondary_title;
     }
     $item->journal = $journal_names[$reference->issn];
     $item->citation = reference_authors_to_text_string($reference) . ' (' . $reference->year . ') ' . reference_to_citation_text_string($reference);
     $item->year = $reference->year;
     if ($reference->PageID != 0) {
         $image = bhl_fetch_page_image($reference->PageID);
         $item->imageURL = $image->thumbnail->url;
     } else {
         // if it's an article we could use journal image
         $item->imageURL = 'http://bioguid.info/issn/image.php?issn=' . $reference->issn;
     }
     $item->coauthors = array();
     foreach ($reference->authors as $author) {
         if (in_array($author->id, $c)) {
             $item->coauthors[] = $author->forename . ' ' . $author->lastname;
         }
     }
     $exhibit->items[] = $item;
Beispiel #3
0
 function DisplayHtmlContent()
 {
     global $config;
     echo html_page_header(true, '', 'name');
     echo '<div style="float:right;background-color:rgb(230,242,250);padding:6px">' . "\n";
     if ($this->issn != '') {
         echo '<h2>Identifiers</h2>' . "\n";
         echo '<ul class="guid-list">' . "\n";
         echo '<li class="permalink"><a href="' . $config['web_root'] . 'issn/' . $this->issn . '" title="Permalink">' . $config['web_root'] . 'issn/' . $this->issn . '</a></li>' . "\n";
         echo '<li class="worldcat"><a href="http://www.worldcat.org/issn/' . $this->issn . '" title="ISSN">' . $this->issn . '</a></li>' . "\n";
         echo '<h2>Export</h2>' . "\n";
         echo '<ul class="export-list">' . "\n";
         echo '<li class="xml"><a href="' . $config['web_root'] . 'issn/' . $this->issn . '.xml" title="Endnote XML">Endnote XML</a></li>';
         echo '<li class="ris"><a href="' . $config['web_root'] . 'issn/' . $this->issn . '.ris" title="RIS">Reference manager</a></li>';
         echo '<li class="bibtex"><a href="' . $config['web_root'] . 'issn/' . $this->issn . '.bib" title="BibTex">BibTex</a></li>';
         echo '<li class="text"><a href="' . $config['web_root'] . 'issn/' . $this->issn . '.text" title="text">Text</a></li>';
         echo '</ul>' . "\n";
     }
     if ($this->oclc != '') {
         echo '<h2>Identifiers</h2>' . "\n";
         echo '<ul class="guid-list">' . "\n";
         echo '<li class="permalink"><a href="' . $config['web_root'] . 'oclc/' . $this->oclc . '" title="Permalink">' . $config['web_root'] . 'oclc/' . $this->oclc . '</a></li>' . "\n";
         echo '<li class="worldcat"><a href="http://www.worldcat.org/oclc/' . $this->oclc . '" title="OCLC">' . $this->oclc . '</a></li>' . "\n";
         echo '<h2>Export</h2>' . "\n";
         echo '<ul class="export-list">' . "\n";
         echo '<li class="xml"><a href="' . $config['web_root'] . 'oclc/' . $this->oclc . '.xml" title="Endnote XML">Endnote XML</a></li>';
         echo '<li class="ris"><a href="' . $config['web_root'] . 'oclc/' . $this->oclc . '.ris" title="RIS">Reference manager</a></li>';
         echo '<li class="bibtex"><a href="' . $config['web_root'] . 'oclc/' . $this->oclc . '.bib" title="BibTex">BibTex</a></li>';
         echo '<li class="text"><a href="' . $config['web_root'] . 'oclc/' . $this->oclc . '.text" title="text">Text</a></li>';
         echo '</ul>' . "\n";
     }
     echo '</div>' . "\n";
     echo '<h1>' . $this->GetTitle() . '</h1>';
     // Image
     if (isset($this->issn)) {
         echo '<div>';
         echo '<img src="http://bioguid.info/issn/image.php?issn=' . $this->issn . '" alt="cover" style="border:1px solid rgb(228,228,228);height:100px;" />';
         echo '</div>';
     }
     // Stats
     /*		echo '<div>';
     		echo '<img src="' . sparkline_articles_added_for_issn($this->issn) . '" alt="sparkline" />';
     		echo '</div>';*/
     echo '<a href="http://twitter.com/share" class="twitter-share-button" data-count="vertical" data-via="rdmpage" data-related="biostor_org">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>';
     echo '<h2>Coverage</h2>' . "\n";
     echo '<p>';
     if ($this->issn != '') {
         echo bhl_articles_for_issn($this->issn);
     }
     if ($this->oclc != '') {
         echo bhl_articles_for_oclc($this->oclc);
     }
     echo ' articles in database.</p>' . "\n";
     echo '<h3>Distribution of identified articles over time</h3>' . "\n";
     echo '<div>' . "\n";
     echo '   <img src="' . sparkline_references($this->issn, $this->oclc, 360, 100) . '" alt="sparkline" />' . "\n";
     echo '</div>' . "\n";
     $titles = array();
     if ($this->issn != '') {
         $titles = bhl_titles_for_issn($this->issn);
     }
     if ($this->oclc != '') {
         $titles = bhl_titles_for_oclc($this->oclc);
     }
     if (count($titles) > 0) {
         echo '<h3>Distribution of identified articles across BHL items</h3>' . "\n";
         echo '<div>';
         echo '<div style="display:inline;background-color:rgb(230,242,250);width:20px;height:20px;">&nbsp;&nbsp;&nbsp;&nbsp;</div>';
         echo '&nbsp;Scanned pages&nbsp;';
         echo '<div style="display:inline;background-color:rgb(0,119,204);width:10px;height:10px;">&nbsp;&nbsp;&nbsp;&nbsp;</div>';
         echo '&nbsp;Articles&nbsp;';
         echo '</div>';
         echo '<p></p>';
         $items = array();
         $volumes = array();
         items_from_titles($titles, $items, $volumes);
         $html = '<div style="height:400px;border:1px solid rgb(192,192,192);overflow:auto;">' . "\n";
         $html .= '<table>' . "\n";
         $html .= '<tbody style="font-size:10px;">' . "\n";
         foreach ($volumes as $volume) {
             $item = $items[$volume];
             // How many pages in this item?
             $num_pages = bhl_num_pages_in_item($item->ItemID);
             // Coverage
             $coverage = bhl_item_page_coverage($item->ItemID);
             $row_height = 10;
             // Draw as DIV
             $html .= '<tr>' . "\n";
             $html .= '<td>';
             $html .= '<a href="http://www.biodiversitylibrary.org/item/' . $item->ItemID . '" target="_new">';
             $html .= $item->VolumeInfo;
             $html .= '</a>';
             $html .= '</td>' . "\n";
             $html .= '<td>' . "\n";
             $html .= '<div style="position:relative">' . "\n";
             $html .= '   <div style="background-color:rgb(230,242,250);border-bottom:1px solid rgb(192,192,192);border-right:1px solid rgb(192,192,192);position:absolute;left:0px;top:0px;width:' . $num_pages . 'px;height:' . $row_height . 'px;">' . "\n";
             foreach ($coverage as $c) {
                 $html .= '      <div style="background-color:rgb(0,119,204);position:absolute;left:' . $c->start . 'px;top:0px;width:' . ($c->end - $c->start) . 'px;height:' . $row_height . 'px;">' . "\n";
                 $html .= '      </div>' . "\n";
             }
             $html .= '   </div>' . "\n";
             $html .= '</div>' . "\n";
             $html .= '</td>' . "\n";
             $html .= '</tr>' . "\n";
         }
         $html .= '</tbody>' . "\n";
         $html .= '</table>' . "\n";
         $html .= '</div>' . "\n";
         echo $html;
     }
     $institutions = institutions_from_titles($titles);
     if (count($institutions) != 0) {
         echo '<h3>BHL source(s)</h3>' . "\n";
         echo '<table>' . "\n";
         foreach ($institutions as $k => $v) {
             echo '<tr>' . "\n";
             echo '<td>' . "\n";
             switch ($k) {
                 case 'American Museum of Natural History Library':
                     echo '<img src="' . $config['web_root'] . 'images/institutions/' . 'AMNH_logo_--_blue_rectangle.jpg' . '" width="48" />';
                     break;
                 case 'Harvard University, MCZ, Ernst Mayr Library':
                     echo '<br /><img src="' . $config['web_root'] . 'images/institutions/' . 'Mod_Color_Harvard_Shield_small_bigger.jpg' . '" width="48" />';
                     break;
                 case 'Missouri Botanical Garden':
                     echo '<br /><img src="' . $config['web_root'] . 'images/institutions/' . 'twitter_icon_MBG.jpg' . '" width="48" />';
                     break;
                 case 'New York Botanical Garden':
                     echo '<br /><img src="' . $config['web_root'] . 'images/institutions/' . 'NYBGDOMEHEADERWEB.jpg' . '" />';
                     break;
                 case 'Smithsonian Institution Libraries':
                     echo '<br /><img src="' . $config['web_root'] . 'images/institutions/' . 'SILCatesbyMagnolia.jpg' . '"  width="48" />';
                     break;
                 case 'The Field Museum':
                     echo '<br /><img src="' . $config['web_root'] . 'images/institutions/' . 'field.jpg' . '" width="48" />';
                     break;
                 case 'BHL-Europe':
                     echo '<br /><div style="background-color:green;width:120px;text-align:center"><img src="' . $config['web_root'] . 'images/institutions/' . 'BHL_logo_wg.png' . '" height="48" /></div>';
                     break;
                 case 'Boston Public Library':
                     echo '<br /><img src="' . $config['web_root'] . 'images/institutions/' . 'BPLcards.jpg' . '" width="48" />';
                     break;
                 case 'Harvard University Herbarium':
                     echo '<br /><img src="' . $config['web_root'] . 'images/institutions/' . 'huh_logo_bw_100.png' . '" width="48" />';
                     break;
                 case 'MBLWHOI Library':
                     echo '<br /><img src="' . $config['web_root'] . 'images/institutions/' . 'library_logo2_bigger.jpg' . '" width="48" />';
                     break;
                 case 'Natural History Museum, London':
                     echo '<br /><img src="' . $config['web_root'] . 'images/institutions/' . 'natural_history_museum-01.jpg' . '" width="48" />';
                     break;
                 case 'University of Illinois Urbana Champaign':
                     echo '<br /><img src="' . $config['web_root'] . 'images/institutions/' . 'ilogo_horz_bold.gif' . '" height="48" />';
                     break;
                 default:
                     break;
             }
             echo '</td>' . "\n";
             echo '<td>' . "\n";
             echo $k . '<br />' . $v . ' items';
             echo '</td>' . "\n";
             echo '</tr>' . "\n";
         }
         echo '</table>' . "\n";
     }
     // How does journal relate to BHL Titles and Items?
     $titles = array();
     if ($this->issn != '') {
         $titles = db_retrieve_journal_names_from_issn($this->issn);
     }
     if ($this->oclc != '') {
         $titles = db_retrieve_journal_names_from_oclc($this->oclc);
     }
     if (count($titles) > 1) {
         echo '<h2>Alternative titles</h2>';
         echo '<ul>';
         foreach ($titles as $title) {
             echo '<li>' . $title . '</li>';
         }
         echo '</ul>';
     }
     echo '<h2>Articles</h2>';
     if ($this->issn == '0374-5481') {
         // Special treatment for Ann mag Nat Hist
         echo '<ul>';
         for ($series = 1; $series <= 9; $series++) {
             echo '<li><a href="' . $config['web_root'] . 'issn/' . $this->issn . '#series' . $series . '">Series ' . $series . '</a></li>';
         }
         echo '</ul>';
         for ($series = 1; $series <= 9; $series++) {
             echo '<h3><a name="series' . $series . '"></a>Series ' . $series . '</h3>' . "\n";
             $articles = db_retrieve_articles_from_journal_series($this->issn, $series == 1 ? '' : $series);
             echo '<ul>';
             foreach ($articles as $k => $v) {
                 echo '<li style="display:block;border-top:1px solid #EEE; ">' . $k;
                 echo '<ul>';
                 if (is_array($v)) {
                     foreach ($v as $ref) {
                         echo '<li><a href="' . $config['web_root'] . 'reference/' . $ref->id . '">' . $ref->title . '</a></li>';
                     }
                 }
                 echo '</ul>';
                 echo '</li>';
             }
             echo '</ul>';
         }
     } else {
         $articles = db_retrieve_articles_from_journal($this->issn, $this->oclc);
         //print_r($articles);
         echo '<ul>';
         foreach ($articles as $k => $v) {
             echo '<li style="display:block;border-top:1px solid #EEE; ">' . $k;
             echo '<ul>';
             if (is_array($v)) {
                 foreach ($v as $ref) {
                     if (0) {
                         // fast
                         echo '<li><a href="' . $config['web_root'] . 'reference/' . $ref->id . '">' . $ref->title . '</a></li>';
                     } else {
                         // slower, but useful for debugging
                         $reference = db_retrieve_reference($ref->id);
                         echo '<li style="border-bottom:1px dotted rgb(128,128,128);padding:4px;">';
                         echo '<a href="' . $config['web_root'] . 'reference/' . $ref->id . '">' . $reference->title . '</a><br/>';
                         echo '<span style="color:green;">' . reference_authors_to_text_string($reference);
                         if (isset($reference->year)) {
                             echo ' (' . $reference->year . ')';
                         }
                         echo ' ' . reference_to_citation_text_string($reference) . '</span>';
                         echo ' ' . reference_to_coins($reference);
                         // Thumbail, useful for debugging
                         if (0) {
                             echo '<div>';
                             $pages = bhl_retrieve_reference_pages($ref->id);
                             $image = bhl_fetch_page_image($pages[0]->PageID);
                             echo '<a href="' . $config['web_root'] . 'reference/' . $ref->id . '">';
                             echo '<img style="padding:2px;border:1px solid blue;margin:2px;" id="thumbnail_image_' . $page->PageID . '" src="' . $image->thumbnail->url . '" width="' . $image->thumbnail->width . '" height="' . $image->thumbnail->height . '" alt="thumbnail"/>';
                             echo '</a>';
                             echo '</div>';
                         }
                         echo '</li>';
                     }
                 }
             } else {
                 // Article lacks volume
                 if (isset($v->id)) {
                     $reference = db_retrieve_reference($v->id);
                     echo '<li style="border-bottom:1px dotted rgb(128,128,128);padding:4px;">';
                     echo '<a href="' . $config['web_root'] . 'reference/' . $v->id . '">' . $reference->title . '</a><br/>';
                     echo '<span style="color:green;">' . reference_authors_to_text_string($reference);
                     if (isset($reference->year)) {
                         echo ' (' . $reference->year . ')';
                     }
                     echo ' ' . reference_to_citation_text_string($reference) . '</span>';
                     echo ' ' . reference_to_coins($reference);
                 }
             }
             echo '</ul>';
             echo '</li>';
         }
         echo '</ul>';
     }
 }
Beispiel #4
0
function reference_to_solr($reference)
{
    $obj = reference_to_mendeley($reference);
    $item = array();
    $item['id'] = 'reference/' . $reference->reference_id;
    $item['title'] = $obj->title;
    $item['publication_outlet'] = $obj->publication_outlet;
    $item['year'] = $obj->year;
    $authors = array();
    foreach ($obj->authors as $a) {
        $authors[] = $a->forename . ' ' . $a->surname;
    }
    $item['authors'] = $authors;
    $item['citation'] = reference_authors_to_text_string($reference) . ' ' . $reference->year . ' ' . $reference->title . ' ' . reference_to_citation_text_string($reference);
    return $item;
}
Beispiel #5
0
 function DisplayHtmlContent()
 {
     global $config;
     echo html_page_header(true, '', 'name');
     echo '<h1>' . $this->GetTitle() . '</h1>';
     if (count($this->object->specimens) == 0) {
         echo '<p>No specimens with this code</p>';
     } else {
         // What articles have this specimen?
         echo '<h2>References in BioStor with this specimen</h2>';
         $refs = specimens_references_with_code($this->code);
         //print_r($refs);
         foreach ($refs as $occurrenceID => $ref_list) {
             if ($occurrenceID != 0) {
                 echo '<p>GBIF occurrence <a class="gbif" href="http://data.gbif.org/occurrences/' . $occurrenceID . '/" target="_new">' . $occurrenceID . '</a>';
                 $datasetID = specimens_dataset_from_occurrence($occurrenceID);
                 $dataset = specimens_dataset($datasetID);
                 echo ' from dataset <a href="gbif_dataset.php?datasetID=' . $dataset->datasetID . '">' . $dataset->dataResourceName . ' (' . $dataset->providerName . ')' . '</a>';
                 echo '</p>';
                 $occurrence = specimens_from_occurrenceID($occurrenceID);
                 echo '<p>' . $occurrence->scientificName . ' (' . join(':', $occurrence->lineage) . ')' . '</p>';
             } else {
                 echo '<p>(specimen not known in GBIF)</p>';
             }
             echo '<table cellspacing="0" cellpadding="2" width="100%">';
             foreach ($ref_list as $reference_id) {
                 $reference = db_retrieve_reference($reference_id);
                 echo '<tr';
                 if (in_array($reference_id, $act_refs)) {
                     echo ' style="background-color:#D8F3C9;"';
                 }
                 echo '>';
                 if ($reference->PageID != 0) {
                     $image = bhl_fetch_page_image($reference->PageID);
                     $imageURL = $image->thumbnail->url;
                 } else {
                     // if it's an article we could use journal image
                     $imageURL = 'http://bioguid.info/issn/image.php?issn=' . $reference->issn;
                 }
                 echo '<td valign="top"><img style="border:1px solid rgb(192,192,192);" src="' . $imageURL . '" width="40" />';
                 echo '</td>';
                 echo '<td valign="top">';
                 echo '<a href="' . $config['web_root'] . 'reference/' . $reference_id . '">' . $reference->title . '</a><br/>';
                 echo '<span>' . reference_authors_to_text_string($reference);
                 if (isset($reference->year)) {
                     echo ' (' . $reference->year . ')';
                 }
                 echo ' ' . reference_to_citation_text_string($reference) . '</span>';
                 echo ' ' . reference_to_coins($reference);
                 if (0) {
                     echo '<div>';
                     echo bhl_pages_with_name_thumbnails($reference_id, $this->object->NameBankID);
                     echo '</div>';
                 }
                 echo '</td>';
                 echo '</tr>';
             }
             echo '</table>';
         }
     }
 }
Beispiel #6
0
<?php

require_once '../db.php';
require_once '../bhl_text.php';
require_once '../reference.php';
$id = $_GET['id'];
$callback = '';
if (isset($_GET['callback'])) {
    $callback = $_GET['callback'];
}
$reference = db_retrieve_reference($id);
$obj = new stdclass();
$obj->title = $reference->title;
$obj->description = '<b>' . $reference->title . '</b>' . "<br/>" . 'by ' . reference_authors_to_text_string($reference) . "<br/>" . reference_to_citation_text_string($reference);
$obj->id = $id;
$obj->canonical_url = $config['web_root'] . 'reference/' . $id;
$bhl_pages = bhl_retrieve_reference_pages($id);
$obj->pages = count($bhl_pages);
$obj->resources = new stdclass();
$obj->resources->page = new stdclass();
$obj->resources->page->text = 'http://biostor.org/reference/' . $id . '/pages/{page}';
$obj->resources->page->image = 'http://biostor.org/reference/' . $id . '/pages/{page}-{size}';
$obj->resources->search = 'http://biostor.org/dvs/' . $id . '/json?q={query}';
$obj->sections = array();
$obj->annotations = array();
// support text indexing
$sql = 'SELECT * FROM rdmp_documentcloud WHERE reference_id=' . $id . ' LIMIT 1';
//echo $sql;
$result = $db->Execute($sql);
if ($result == false) {
    die("failed [" . __FILE__ . ":" . __LINE__ . "]: " . $sql);
Beispiel #7
0
 function DisplayHtmlContent()
 {
     global $config;
     echo html_page_header(true, '', 'name');
     echo '<h1>' . $this->GetTitle() . '</h1>';
     echo '<h2>Identifiers</h2>';
     echo '<ul>';
     if ($this->object->NameBankID != 0) {
         echo '<li>' . 'urn:lsid:ubio.org:namebank:' . $this->object->NameBankID . '</li>';
     }
     echo '</ul>';
     // Taxon name (nomenclators)
     $acts = acts_for_namestring($this->GetTitle());
     $act_refs = references_for_acts_for_namestring($this->GetTitle());
     if (count($acts) > 0) {
         echo '<h2>Taxonomic names</h2>';
         echo '<ul>';
         foreach ($acts as $tn) {
             echo '<li>' . $tn->global_id . '</li>';
         }
         echo '</ul>';
     }
     $col = col_accepted_name_for($this->GetTitle());
     if (isset($col->name)) {
         echo '<h2>Catalogue of Life accepted name</h2>' . "\n";
         echo '<p>';
         echo '<span><a href="' . $config['web_root'] . 'name/' . $col->name . '">' . $col->name . '</a>' . ' ' . $col->author . '</span>';
         echo '</p>' . "\n";
         // Synonyms
         $col_synonyms = col_synonyms_for_namecode($col->name_code);
         if (count($col_synonyms) != 0) {
             echo '<h3>Synonyms</h3>' . "\n";
             echo '<ul>' . "\n";
             foreach ($col_synonyms as $s) {
                 echo '<li><a href="' . $config['web_root'] . 'name/' . $s->name . '">' . $s->name . '</a> ' . $s->author . '</li>' . "\n";
             }
             echo '</ul>' . "\n";
         }
     }
     if (1) {
         /*
         // What pages have this name? (BHL timeline)
         $hits = bhl_name_search($this->object->NameBankID);
         if (count($hits) > 0)
         {
         	echo '<h2>BHL</h2>' . "\n";		
         	echo '<h3>Distribution of name in BHL</h3>';		
         	echo '<div>' . "\n";
         	echo '   <img src="' . sparkline_bhl_name($hits, 360,100) . '" alt="sparkline" />' . "\n";
         	echo '</div>' . "\n";
         }
         else
         {
         	//echo '<p>Name not found in BHL</p>';
         }
         */
         // What articles have this name?
         echo '<hr />';
         echo '<h2>References in BioStor</h2>';
         //		echo '<p><img src="/images/star.png"> indicates reference that publishes a "nomenclatural act", such as publishing the name.</p>';
         echo '<div>';
         echo '<div style="display:inline;border:1px solid rgb(192,192,192);background-color:#D8F3C9;width:20px;height:20px;">&nbsp;&nbsp;&nbsp;&nbsp;</div>';
         echo '&nbsp;Reference contains nomenclatural act, such as publishing the name';
         echo '</div>';
         echo '<p />';
         // Find using BHL bhl_page_name index
         //$refs = bhl_references_with_name($this->object->NameBankID);
         $refs = bhl_references_with_namestring($this->GetTitle());
         // Merge with references from nomenclators
         $refs = array_merge($refs, $act_refs);
         $refs = array_unique($refs);
         //print_r($refs);
         if (count($refs) == 0) {
             echo '<p>[No references]</p>';
         }
         /*		
         		echo '<ul class="reference-list">';
         		foreach($refs as $reference_id)
         		{
         			$reference = db_retrieve_reference ($reference_id);
         			echo '<li ';
         			
         			if (in_array($reference_id, $act_refs))
         			{
         				echo 'class="act"';
         			}
         			else
         			{
         				echo 'class="default"';
         			}
         			echo '>';
         			echo '<a href="' . $config['web_root'] . 'reference/' . $reference_id . '">' . $reference->title . '</a><br/>';
         			echo '<span style="color:green;">' . reference_authors_to_text_string($reference);
         			if (isset($reference->year))
         			{
         				echo ' (' . $reference->year . ')';
         			}
         			echo ' ' . reference_to_citation_text_string($reference) . '</span>';
         			echo ' ' . reference_to_coins($reference);
         			
         			if (0)
         			{
         				echo '<div>';
         				echo bhl_pages_with_name_thumbnails($reference_id,$this->object->NameBankID);	
         				echo '</div>';
         			}
         			echo '</li>';
         		}
         		echo '</ul>';
         */
         echo '<table cellspacing="0" cellpadding="2" width="100%">';
         foreach ($refs as $reference_id) {
             $reference = db_retrieve_reference($reference_id);
             echo '<tr';
             if (in_array($reference_id, $act_refs)) {
                 echo ' style="background-color:#D8F3C9;"';
             }
             echo '>';
             if ($reference->PageID != 0) {
                 $image = bhl_fetch_page_image($reference->PageID);
                 $imageURL = $image->thumbnail->url;
             } else {
                 // if it's an article we could use journal image
                 $imageURL = 'http://bioguid.info/issn/image.php?issn=' . $reference->issn;
             }
             echo '<td valign="top"><img style="border:1px solid rgb(192,192,192);" src="' . $imageURL . '" width="40" />';
             echo '</td>';
             echo '<td valign="top">';
             echo '<a href="' . $config['web_root'] . 'reference/' . $reference_id . '">' . $reference->title . '</a><br/>';
             echo '<span>' . reference_authors_to_text_string($reference);
             if (isset($reference->year)) {
                 echo ' (' . $reference->year . ')';
             }
             echo ' ' . reference_to_citation_text_string($reference) . '</span>';
             echo ' ' . reference_to_coins($reference);
             if (0) {
                 echo '<div>';
                 echo bhl_pages_with_name_thumbnails($reference_id, $this->object->NameBankID);
                 echo '</div>';
             }
             echo '</td>';
             echo '</tr>';
         }
         echo '</table>';
         /*
         $refs = col_references_for_name($this->GetTitle());
         if (count($refs) != 0)
         {
         	echo '<h2>Catalogue of Life Bibliography</h2>';
         	echo '<ol>';
         	foreach($refs as $ref)
         	{
         		echo '<li style="border-bottom:1px dotted rgb(128,128,128);padding:4px;">';
         		echo '<span>';
         		echo '[' . $ref->record_id . '] ';
         		if (isset($ref->reference_type))
         		{
         			echo '[' . $ref->reference_type . '] ';
         		}
         		echo $ref->author;
         		echo ' ';
         		echo $ref->year;
         		echo ' ';
         		echo $ref->title;
         		echo '. ';
         		echo $ref->source;
         		echo '</span>';
         		echo '</li>';
         	}
         	echo '</ol>';
         }
         */
     }
 }
Beispiel #8
0
function display_publication($publication)
{
    global $couch;
    global $config;
    echo html_html_open();
    echo html_head_open();
    echo html_title($publication->title . ' - ' . $config['site_name']);
    echo html_include_css('css/main.css');
    echo html_include_css('css/viewer.css');
    echo html_include_script('js/jquery-1.4.4.min.js');
    echo html_include_script('js/viewer.js');
    echo html_head_close();
    echo html_body_open();
    if (1) {
        echo '<div style="position:relative;">';
        // Metadata
        echo '<div style="position:absolute;top:0px;left:620px;padding:10px;">';
        echo '<div><span><a href="' . $config['web_root'] . '">' . $config['site_name'] . '</a></span></div>';
        echo '<p></p>';
        echo '<span style="font-weight:bold;font-size:18px;">' . $publication->title . '</span>';
        echo '<div>' . 'by ' . reference_authors_to_text_string($publication->authors, false, true) . '</div>';
        $outlet = $publication->publication_outlet;
        // This ensures we double urlencode "&"
        $outlet = str_replace("&", urlencode("&"), $outlet);
        echo '<div>' . '<a href="' . $config['web_root'] . 'publication_outlet/' . urlencode($outlet) . '">' . '<i>' . $publication->publication_outlet . '</i>' . '</a>' . ' ' . $publication->volume . ':' . $publication->pages . ' (' . $publication->year . ')' . '</div>';
        // External links ---------------------------------------------------------------------------------------
        echo '<div>';
        echo '<ul>';
        if ($publication->_id) {
            echo '<li><a href="http://lsid.tdwg.org/summary/urn:lsid:biodiversity.org.au:afd.publication:' . $publication->_id . '" target="_new">urn:lsid:biodiversity.org.au:afd.publication:' . $publication->_id . '</li>';
        }
        if (isset($publication->identifiers)) {
            if (isset($publication->identifiers->doi)) {
                echo '<li>' . '<a href="http://dx.doi.org/' . $publication->identifiers->doi . '" target="_new">doi:' . $publication->identifiers->doi . '</a></li>';
            }
            if (isset($publication->identifiers->hdl)) {
                echo '<li>' . '<a href="http://hdl.handle.net/' . $publication->identifiers->hdl . '" target="_new">hdl:' . $publication->identifiers->hdl . '</a></li>';
            }
            if (isset($publication->identifiers->biostor)) {
                echo '<li>' . '<a href="http://biostor.org/reference/' . $publication->identifiers->biostor . '" target="_new">BioStor</a></li>';
            }
            if (isset($publication->pageIdentifiers)) {
                echo '<li>' . '<a href="http://biodiversitylibrary.org/page/' . $publication->pageIdentifiers[0] . '" target="_new">BHL</a></li>';
            }
        }
        if (isset($publication->urls)) {
            foreach ($publication->urls as $url) {
                if (preg_match('/http:\\/\\/ci.nii.ac.jp\\/naid\\//', $url)) {
                    echo '<li>' . '<a href="' . $url . '" target="_new">' . $url . '</a></li>';
                }
                if (preg_match('/http:\\/\\/gallica.bnf.fr\\//', $url)) {
                    echo '<li>' . '<a href="' . $url . '" target="_new">' . $url . '</a></li>';
                }
                if (preg_match('/http:\\/\\/www.jstor.org\\//', $url)) {
                    echo '<li>' . '<a href="' . $url . '" target="_new">' . $url . '</a></li>';
                }
            }
        }
        echo '</div>';
        echo reference_to_coins($publication);
        echo '<div><a href="http://biostor.org/openurlhook.php?' . reference_to_openurl($publication) . '&amp;webhook=' . urlencode($config['web_server'] . $config['web_root'] . 'webhook.php') . '" target="_new">OpenURL Hook</a></div>';
        //------------------------------------------------------------------------------------------
        // Names
        $resp = $couch->send("GET", "/" . $config['couchdb'] . "/_design/publication/_view/taxonNames?key=" . urlencode('"' . $publication->_id . '"'));
        $names = json_decode($resp);
        if (count($names->rows) > 0) {
            echo '<h3>Names published</h3>';
            echo '<ul>';
            foreach ($names->rows as $row) {
                echo '<li>' . '<a href="id/' . $row->value->_id . '">' . $row->value->taxonName . '</a></li>';
            }
            echo '</ul>';
        }
        echo '</div>';
        // --- end metadata
        // Viewer
        echo '<div style="position:absolute;top:0px;left:0px;width:600px;">';
        $has_fulltext = isset($publication->identifiers->biostor) || isset($publication->pdf);
        if (!$has_fulltext) {
            if (isset($publication->identifiers->doi)) {
                $url = 'http://dx.doi.org/' . $publication->identifiers->doi;
                echo '<div style="width:600px;height:800px;border:1px solid rgb(192,192,192);">';
                echo '<iframe src="' . $url . '" width="600" height="800" style="border: none;">';
                echo '</iframe>';
                echo '</div>';
            } else {
                if (count($publication->urls) > 0) {
                    $display_url = '';
                    foreach ($publication->urls as $url) {
                        if (preg_match('/http:\\/\\/ci.nii.ac.jp\\/naid\\//', $url)) {
                            $display_url = $url;
                            break;
                        }
                        if (preg_match('/http:\\/\\/gallica.bnf.fr\\//', $url)) {
                            $display_url = $url;
                            break;
                        }
                        if (preg_match('/http:\\/\\/www.jstor.org\\//', $url)) {
                            $display_url = $url;
                            break;
                        }
                    }
                    if ($display_url != '') {
                        echo '<div style="width:600px;height:800px;border:1px solid rgb(192,192,192);">';
                        echo '<iframe src="' . $display_url . '" width="600" height="800" style="border: none;">';
                        echo '</iframe>';
                        echo '</div>';
                    }
                } else {
                    echo '<div style="width:600px;height:800px;border:1px solid rgb(192,192,192);">
					<div style="position:absolute;top:300px;left:0px;width:600px;color:rgb(192,192,192);text-align:center;font-size:72px;">No content</div>
					</div>';
                }
            }
        } else {
            // PDF
            if (isset($publication->pdf)) {
                echo '<div>';
                echo '<iframe src="http://docs.google.com/viewer?url=';
                echo str_replace(' ', '%20', $publication->pdf) . '&embedded=true" width="600" height="800" style="border: none;">';
                echo '</iframe>';
                echo '</div>';
            } else {
                // BioStor
                if (isset($publication->identifiers->biostor)) {
                    echo '<script> pages=[' . join(",", $publication->pageIdentifiers) . ']; </script>';
                    echo '				
	<div style="position:relative;width:600px;height:800px;">
		<div id="header" >
			<div style="float:right;padding:8px;margin-right:10px;">
				<span id="page_counter">1/?</span>
				<span>&nbsp;</span>
				<span>&nbsp;</span>
				<img id="previous_page" src="images/previous.png" border="0" onclick="previous();" title="Show previous page">
				<span>&nbsp;</span>
				<img id="next_page" src="images/next.png" border="0" onclick="next();" title="Show next page">
				<span>&nbsp;</span>
				<span>&nbsp;</span>
				<span>&nbsp;</span>
				<img src="images/fourpages.png" border="0" onclick="show_all_pages();" title="Show all pages">
				<span>&nbsp;</span>
				<img src="images/onepage.png" border="0" onclick="show_page(-1);"  title="Fit page to viewer">
			</div>
		</div>
	
		<div id="page_container">
			<img id="page_image" />
			<div id="all_pages" ></div>
		</div>
	</div>
	
	<script>
	show_page(0);
	</script>';
                }
            }
        }
        echo '</div>
		</div>';
    } else {
        //----------------------------------------------------------------------------------------------
        // Home
        echo '<span><a href="' . $config['web_root'] . '">' . $config['site_name'] . '</a></span>';
        echo html_search_box();
        //----------------------------------------------------------------------------------------------
        // Object
        echo '<div>';
        echo '<h1>' . $publication->title . '</h1>';
        echo '<div>' . 'by ' . reference_authors_to_text_string($publication->authors, false, true) . '</div>';
        echo '<div>' . '<i>' . $publication->publication_outlet . '</i>' . ' ' . $publication->volume . ':' . $publication->pages . ' (' . $publication->year . ')' . '</div>';
        //echo '<div>' . $publication->_id . '</div>';
        /*
        if (isset($publication->abstract))
        {
        	echo '<div>' . $publication->abstract . '</div>';				
        }
        */
        // External links
        echo '<ul>';
        if (isset($publication->identifiers)) {
            if (isset($publication->identifiers->doi)) {
                echo '<li>' . '<a href="http://dx.doi.org/' . $publication->identifiers->doi . '" target="_new">doi:' . $publication->identifiers->doi . '</a></li>';
            }
            if (isset($publication->identifiers->hdl)) {
                echo '<li>' . '<a href="http://hdl.handle.net/' . $publication->identifiers->hdl . '" target="_new">hdl:' . $publication->identifiers->hdl . '</a></li>';
            }
            if (isset($publication->identifiers->biostor)) {
                echo '<li>' . '<a href="http://biostor.org/reference/' . $publication->identifiers->biostor . '" target="_new">BioStor</a></li>';
            }
            if (isset($publication->pageIdentifiers)) {
                echo '<li>' . '<a href="http://biodiversitylibrary.org/page/' . $publication->pageIdentifiers[0] . '" target="_new">BHL</a></li>';
            }
        }
        if (isset($publication->urls)) {
            foreach ($publication->urls as $url) {
                if (preg_match('/http:\\/\\/ci.nii.ac.jp\\/naid\\//', $url)) {
                    echo '<li>' . '<a href="' . $url . '" target="_new">' . $url . '</a></li>';
                }
            }
        }
        echo '</ul>';
        echo '</div>';
        //----------------------------------------------------------------------------------------------
        // Names
        $resp = $couch->send("GET", "/" . $config['couchdb'] . "/_design/publication/_view/taxonNames?key=" . urlencode('"' . $publication->_id . '"'));
        $names = json_decode($resp);
        if (count($names->rows) > 0) {
            echo '<h2>Names published</h2>';
            echo '<ul>';
            foreach ($names->rows as $row) {
                echo '<li>' . '<a href="id/' . $row->value->_id . '">' . $row->value->taxonName . '</a></li>';
            }
            echo '</ul>';
        }
        //----------------------------------------------------------------------------------------------
        // Content
        echo '<h2>Content</h2>';
        $has_fulltext = isset($publication->identifiers->biostor) || isset($publication->pdf);
        if (!$has_fulltext) {
            if (isset($publication->identifiers->doi)) {
                $url = 'http://dx.doi.org/' . $publication->identifiers->doi;
                echo '<div>';
                echo '<iframe src="' . $url . '" width="100%" height="700" style="border: none;">';
                echo '</iframe>';
                echo '</div>';
            }
        } else {
            // PDF
            if (isset($publication->pdf)) {
                echo '<div>';
                echo '<iframe src="http://docs.google.com/viewer?url=';
                echo urlencode($publication->pdf) . '&embedded=true" width="700" height="700" style="border: none;">';
                echo '</iframe>';
                echo '</div>';
            } else {
                // BioStor
                if (isset($publication->identifiers->biostor)) {
                    echo '<script> pages=[' . join(",", $publication->pageIdentifiers) . ']; </script>';
                    echo '				
<div style="position:relative;width:700px;height:700px;">
	<div id="header" >
		<div style="float:right;padding:8px;margin-right:10px;">
			<span id="page_counter">1/?</span>
			<span>&nbsp;</span>
			<span>&nbsp;</span>
			<img id="previous_page" src="images/previous.png" border="0" onclick="previous();" title="Show previous page">
			<span>&nbsp;</span>
			<img id="next_page" src="images/next.png" border="0" onclick="next();" title="Show next page">
			<span>&nbsp;</span>
			<span>&nbsp;</span>
			<span>&nbsp;</span>
			<img src="images/fourpages.png" border="0" onclick="show_all_pages();" title="Show all pages">
			<span>&nbsp;</span>
			<img src="images/onepage.png" border="0" onclick="show_page(-1);"  title="Fit page to viewer">
		</div>
	</div>

	<div id="page_container">
		<img id="page_image" />
		<div id="all_pages" ></div>
	</div>
</div>

<script>
show_page(0);
</script>';
                }
            }
        }
    }
    echo html_body_close();
    echo html_html_close();
}
Beispiel #9
0
/**
 * @brief Create PDF for a reference
 *
 * We create a simple cover page for the PDF. This page contains basic bibliographic metadata
 * for the PDF, in order for Mendeley to process the PDF correctly. In response to my discovery
 * that Mendeley doesn't accept all XMP (Ticket#2010040110000015) support@mendeley.com replied that
 * they have some heuristic tests to see if the metadata is valid, such as whether the information 
 * about the title and authors occurs on the first of the PDF.
 *
 *
 * @param reference_id Reference id
 * @param pdf_filename Full path of PDF file to create
 *
 */
function pdf_create($reference_id, $pdf_filename)
{
    global $config;
    // Get reference
    $reference = db_retrieve_reference($reference_id);
    // Get tags
    $tags = pdf_tags($reference->reference_id, 10);
    // Paper size
    // A4 = 210 x 297
    $paper_width = 210;
    // mm
    $paper_height = 297;
    // mm
    $margin = 10;
    //----------------------------------------------------------------------------------------------
    // PDF
    $pdf = new FPDF('P', 'mm', 'A4');
    //$pdf = PDF_Rotate('P', 'mm', 'A4');
    //----------------------------------------------------------------------------------------------
    // Basic metadata (e.g., that displayed by Mac OS X Preview)
    $pdf->SetTitle($reference->title, true);
    // true means use UTF-8
    $pdf->SetAuthor(reference_authors_to_text_string($reference), true);
    // true means use UTF-8
    if (count($tags) > 0) {
        $pdf->SetKeywords(join(", ", $tags), true);
    }
    //----------------------------------------------------------------------------------------------
    // Cover page (partly to ensure Mendeley accepts XMP metadata)
    $pdf->AddPage();
    // Title
    $pdf->SetFont('Arial', '', 24);
    $pdf->SetXY($margin, $margin);
    $pdf->Write(10, utf8_decode($reference->title));
    // Authors
    $y = $pdf->GetY();
    $pdf->SetXY($margin, $y + 16);
    $pdf->SetFont('Arial', 'B', 16);
    $pdf->Write(6, utf8_decode(reference_authors_to_text_string($reference)));
    // Citation
    $y = $pdf->GetY();
    $pdf->SetXY($margin, $y + 10);
    $pdf->SetFont('Arial', 'I', 12);
    $pdf->Write(6, utf8_decode($reference->secondary_title));
    $pdf->SetFont('Arial', '', 12);
    $pdf->Write(6, ' ' . $reference->volume);
    if (isset($reference->issue)) {
        $pdf->Write(6, '(' . $reference->issue . ')');
    }
    $pdf->Write(6, ':' . $reference->spage);
    if (isset($reference->epage)) {
        $pdf->Write(6, '-' . $reference->epage);
    }
    $pdf->Write(6, ' (' . $reference->year . ')');
    // URL
    $url = $config['web_root'] . 'reference/' . $reference->reference_id;
    $pdf->Write(6, ' ');
    $pdf->SetTextColor(0, 0, 255);
    $pdf->SetFont('', 'U');
    $pdf->Write(6, $url, $url);
    $pdf->SetFont('', '');
    $pdf->SetTextColor(0, 0, 0);
    //----------------------------------------------------------------------------------------------
    // If we add taxon names as keywords
    if (count($tags) > 0) {
        $keywords = "Keywords: " . join("; ", $tags);
        $y = $pdf->GetY();
        $pdf->SetXY($margin, $y + 10);
        $pdf->Write(6, $keywords);
    }
    //----------------------------------------------------------------------------------------------
    // Footer giving credit to BHL
    $y = $paper_height;
    $y -= $margin;
    $y -= 40;
    $pdf->Image($config['web_dir'] . '/images/cc/cc.png', 10, $y, 10);
    $pdf->Image($config['web_dir'] . '/images/cc/by.png', 20, $y, 10);
    $pdf->Image($config['web_dir'] . '/images/cc/nc.png', 30, $y, 10);
    $pdf->SetXY(10, $y + 10);
    $pdf->SetFont('Arial', '', 10);
    $pdf->SetTextColor(0, 0, 0);
    $pdf->Write(6, 'Page images from the Biodiversity Heritage Library, ');
    //Then put a blue underlined link
    $pdf->SetTextColor(0, 0, 255);
    $pdf->SetFont('', 'U');
    $pdf->Write(6, 'http://www.biodiversitylibrary.org/', 'http://www.biodiversitylibrary.org/');
    $pdf->SetFont('', '');
    $pdf->SetTextColor(0, 0, 0);
    $pdf->Write(6, ', made available under a Creative Commons Attribution-Noncommercial License ');
    $pdf->SetTextColor(0, 0, 255);
    $pdf->SetFont('', 'U');
    $pdf->Write(6, 'http://creativecommons.org/licenses/by-nc/2.5/', 'http://creativecommons.org/licenses/by-nc/2.5/');
    //----------------------------------------------------------------------------------------------
    // Add BHL page scans
    $pages = bhl_retrieve_reference_pages($reference_id);
    foreach ($pages as $page) {
        $image = bhl_fetch_page_image($page->PageID);
        $page_width = $paper_width;
        $page_height = $paper_height;
        $page_width -= 2 * $margin;
        $page_height -= 2 * $margin;
        // Fit to page
        $img_height = $image->height;
        $img_width = $image->width;
        $w_scale = $page_width / $img_width;
        $h_scale = $page_height / $img_height;
        $scale = min($w_scale, $h_scale);
        $img_height *= $scale;
        $img_width *= $scale;
        $pdf->AddPage();
        $x_offset = ($paper_width - $img_width) / 2.0;
        $y_offset = ($paper_height - $img_height) / 2.0;
        $pdf->Image($image->file_name, $x_offset, $y_offset, $img_width);
    }
    $pdf->Output($pdf_filename, 'F');
    pdf_add_xmp($reference, $pdf_filename, $tags);
}
Beispiel #10
0
    if (in_array($reference_id, $act_refs)) {
        echo ' style="background-color:#D8F3C9;"';
    }
    echo '>';
    if ($reference->PageID != 0) {
        $image = bhl_fetch_page_image($reference->PageID);
        $imageURL = $image->thumbnail->url;
    } else {
        // if it's an article we could use journal image
        $imageURL = 'http://bioguid.info/issn/image.php?issn=' . $reference->issn;
    }
    echo '<td valign="top"><img style="border:1px solid rgb(192,192,192);" src="' . $imageURL . '" width="40" />';
    echo '</td>';
    echo '<td valign="top">';
    echo '<a href="' . $config['web_root'] . 'reference/' . $reference_id . '">' . $reference->title . '</a><br/>';
    echo '<span>' . reference_authors_to_text_string($reference);
    if (isset($reference->year)) {
        echo ' (' . $reference->year . ')';
    }
    echo ' ' . reference_to_citation_text_string($reference) . '</span>';
    echo ' ' . reference_to_coins($reference);
    if (0) {
        echo '<div>';
        echo bhl_pages_with_name_thumbnails($reference_id, $this->object->NameBankID);
        echo '</div>';
    }
    echo '</td>';
    echo '</tr>';
}
echo '</table>';
echo html_body_close(true);