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"; }
$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;
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;"> </div>'; echo ' Scanned pages '; echo '<div style="display:inline;background-color:rgb(0,119,204);width:10px;height:10px;"> </div>'; echo ' Articles '; 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>'; } }
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; }
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>'; } } }
<?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);
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;"> </div>'; echo ' 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>'; } */ } }
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) . '&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> </span> <span> </span> <img id="previous_page" src="images/previous.png" border="0" onclick="previous();" title="Show previous page"> <span> </span> <img id="next_page" src="images/next.png" border="0" onclick="next();" title="Show next page"> <span> </span> <span> </span> <span> </span> <img src="images/fourpages.png" border="0" onclick="show_all_pages();" title="Show all pages"> <span> </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> </span> <span> </span> <img id="previous_page" src="images/previous.png" border="0" onclick="previous();" title="Show previous page"> <span> </span> <img id="next_page" src="images/next.png" border="0" onclick="next();" title="Show next page"> <span> </span> <span> </span> <span> </span> <img src="images/fourpages.png" border="0" onclick="show_all_pages();" title="Show all pages"> <span> </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(); }
/** * @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); }
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);