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; } } echo json_format(json_encode($exhibit));
} // BMNH 12 (Madagascar grasshoppers) //$items = array(19513); //$items = array(32860); // Proceedings of the United States National Museum v47 1915 Rathburn crab plates //$items = array(47571); // Catalogue of colubrine snakes in the collection of the British Museum $items = array(32774); foreach ($items as $ItemID) { // This will hold pages $pages = array(); // Find all pages for this item, ordered by SequenceOrder $sql = 'SELECT page.PageID FROM page INNER JOIN bhl_page USING (PageID) WHERE (page.ItemID = ' . $ItemID . ') ORDER BY page.SequenceOrder '; $result = $db->Execute($sql); if ($result == false) { die("failed [" . __LINE__ . "]: " . $sql); } while (!$result->EOF) { $pages[] = $result->fields['PageID']; $result->MoveNext(); } print_r($pages); foreach ($pages as $page) { echo "{$page}\n"; bhl_fetch_page_image($page); bhl_fetch_ocr_text($page, '', 30); } }
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>'; } }
if (isset($_GET['page'])) { $page = $_GET['page']; $page--; } if (isset($_GET['size'])) { $size = $_GET['size']; $image = true; } if (isset($_GET['callback'])) { $callback = $_GET['callback']; } // Get page array $bhl_pages = bhl_retrieve_reference_pages($id); $PageID = $bhl_pages[$page]->PageID; if ($image) { $image = bhl_fetch_page_image($PageID); if ($size == 'small') { header("Location: " . $image->thumbnail->url . "\n\n"); } else { header("Location: " . $image->url . "\n\n"); } } else { $text = bhl_fetch_ocr_text($PageID); $text = str_replace("\\n", "\n", $text); header('Content-type: text/plain'); if ($callback != '') { echo $callback . '('; } echo json_encode($text); if ($callback != '') { echo ')';
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>'; } } }
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>'; } */ } }
/** * @brief Display a set of BHL pages * * @param pages Array of pages * * @return HTML for viewer */ function bhl_viewer($pages, $page_to_display = 0) { global $config; $html = ''; // If we don't have a page range then we can't display article if (count($pages) == 0) { $html = '<p>Can not display article as we don\'t have a page range (missing epage?)</p>'; return $html; } $viewer_height = 600; $viewer_width = 600; // The viewer $html .= '<div style="position:relative;height:' . $viewer_height . 'px;width:' . $viewer_width . 'px;border: 1px solid rgb(128,128,128);">'; // background-color:rgb(146,146,146)">'; // The page itself $image = bhl_fetch_page_image($pages[0]->PageID); // Fit to viewing rectangle $img_height = $image->height; $img_width = $image->width; if ($img_height > $img_width) { // Portrait mode if ($img_height > $viewer_height) { $scale = $viewer_height / $img_height; $img_height *= $scale; $img_width *= $scale; } } else { // Landscape if ($img_width > $viewer_width) { $scale = $viewer_width / $img_width; $img_height *= $scale; $img_width *= $scale; } } // Inset to enable padding $img_width -= 20; $html .= "<!-- Page -->\n"; $html .= '<div id="page">' . "\n"; $html .= '<img id="page_image" src="' . $image->thumbnail->url . '" width="' . $img_width . '" />' . "\n"; $html .= '</div>' . "\n"; $html .= "<!-- Page thumbnails -->\n"; $html .= '<div id="thumbnail_list" >'; foreach ($pages as $page) { $image = bhl_fetch_page_image($page->PageID); $html .= "<!-- Thumbnail -->\n"; $html .= '<div class="thumbnail_item" id="thumbnail_' . $page->PageID . '" onclick="show_page(\'' . $image->url . '\', \'' . $image->thumbnail->url . '\', \'' . $page->PageID . '\');">' . "\n"; $html .= '<a name="' . $page->PageID . '"></a>' . "\n"; $html .= '<img class="thumbnail" id="thumbnail_image_' . $page->PageID . '" src="' . $image->thumbnail->url . '" width="' . $image->thumbnail->width . '" height="' . $image->thumbnail->height . '"/>'; $html .= "<!-- Page info -->\n"; $html .= '<span class="thumbnail_page_info" >'; if ($page->PagePrefix == '') { $html .= '[' . $page->page_order . ']'; } else { $html .= $page->PagePrefix . ' ' . $page->PageNumber; } $html .= '</span>' . "\n"; $html .= '</div>' . "\n"; } $html .= '</div>' . "\n"; $html .= '</div>' . "\n"; if ($page_to_display == 0) { $page_to_display = $pages[0]->PageID; } $image = bhl_fetch_page_image($page_to_display); $html .= '<!-- initialise -->' . "\n"; $html .= '<script type="text/javascript">'; $html .= 'show_page(\'' . $image->url . '\', \'' . $image->thumbnail->url . '\', \'' . $page_to_display . '\');'; $html .= '</script>'; return $html; }
function DisplayRSS() { global $config; log_access($this->id, 'rss'); // Create XML document $feed = new DomDocument('1.0', 'UTF-8'); $rss = $feed->createElement('rss'); $rss->setAttribute('version', '2.0'); $rss->setAttribute('xmlns:media', 'http://search.yahoo.com/mrss/'); $rss = $feed->appendChild($rss); // channel $channel = $feed->createElement('channel'); $channel = $rss->appendChild($channel); $title = $channel->appendChild($feed->createElement('title')); $title->appendChild($feed->createTextNode($this->GetTitle())); $description = $channel->appendChild($feed->createElement('description')); $description->appendChild($feed->createTextNode("Page images from " . $this->GetTitle())); $link = $channel->appendChild($feed->createElement('link')); $link->appendChild($feed->createTextNode($config['web_server'] . 'reference/' . $this->id)); $pages = bhl_retrieve_reference_pages($this->id); foreach ($pages as $page) { $image = bhl_fetch_page_image($page->PageID); $item = $channel->appendChild($feed->createElement('item')); $title = $item->appendChild($feed->createElement('title')); $title->appendChild($feed->createTextNode('Page ' . $page->PageID)); $link = $item->appendChild($feed->createElement('link')); $link->appendChild($feed->createTextNode($image->url)); $thumbnail = $item->appendChild($feed->createElement('media:thumbnail')); $thumbnail->setAttribute('url', $image->thumbnail->url); $content = $item->appendChild($feed->createElement('media:content')); $content->setAttribute('url', $image->url); } // Dump XML header("Content-type: text/xml; charset=utf-8\n\n"); echo $feed->saveXML(); }
/** * @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); }
function bhl_pages_with_name_thumbnails($reference_id, $NameBankID) { global $config; $html = ''; $hits = bhl_pages_in_reference_with_name($reference_id, $NameBankID); foreach ($hits as $hit) { // filter on figure $has_figure = false; $text = bhl_fetch_ocr_text($hit); $lines = explode("\\n", $text); foreach ($lines as $line) { //$html .= '<p>' . $line . '</p>'; if (preg_match('/^(Fig\\.|Figure|Figs\\.)/i', $line)) { $has_figure = true; } } if ($has_figure) { $image = bhl_fetch_page_image($hit); $html .= '<a href="' . $config['web_root'] . 'reference/' . $reference_id . '/page/' . $hit . '">'; $html .= '<img style="padding:2px;border:1px solid blue;margin:2px;" id="thumbnail_image_' . $hit . '" src="' . $image->thumbnail->url . '" width="' . $image->thumbnail->width . '" height="' . $image->thumbnail->height . '"/>'; $html .= '</a>'; } } return $html; }
$result = $db->Execute($sql); if ($result == false) { die("failed [" . __LINE__ . "]: " . $sql . $db->ErrorMsg()); } while (!$result->EOF) { $xml .= '<Placemark>'; $xml .= '<styleUrl>#whiteBall</styleUrl>'; $xml .= '<TimeStamp>'; $xml .= '<when>' . $result->fields['date'] . '</when>'; $xml .= '</TimeStamp>'; $xml .= '<name>' . $result->fields['reference_id'] . '</name>'; $xml .= '<description>'; $xml .= '<strong>' . str_replace('&', '&', $result->fields['title']) . '</strong><br/>'; $xml .= '<i>' . $result->fields['secondary_title'] . '</i> ' . $result->fields['volume'] . ': ' . $result->fields['spage'] . '-' . $result->fields['epage'] . ' (' . $result->fields['year'] . ')<br/>'; $xml .= '<a href="http://biostor.org/reference/' . $result->fields['reference_id'] . '">http://biostor.org/reference/' . $result->fields['reference_id'] . '</a><br/>'; $image = bhl_fetch_page_image($result->fields['first_page']); $xml .= '<img src="' . $image->thumbnail->url . '" width="' . $image->thumbnail->width . '" height="' . $image->thumbnail->height . '"/><br/>'; $xml .= '</description>'; $xml .= '<Point><extrude>0</extrude><altitudeMode>absolute</altitudeMode>'; $xml .= '<coordinates>'; $xml .= $result->fields['longitude'] . ',' . $result->fields['latitude']; $xml .= '</coordinates>'; $xml .= '</Point> </Placemark>'; $result->MoveNext(); } $xml .= '</Document> </kml>'; header('Content-type: application/vnd.google-earth.kml+xml'); header("Content-Disposition: attachment; filename=biostor.kml"); echo $xml;
} echo '</ul>'; echo '</li>'; } echo '</ul>'; echo '</td>'; // Hits echo '<td valign="top">'; echo '<table>'; foreach ($hits->response->docs as $doc) { echo '<tr>'; echo '<td>'; if (preg_match('/reference\\/(?<id>\\d+)/', $doc->id, $m)) { $pages = bhl_retrieve_reference_pages($m['id']); if (isset($pages[0]->PageID)) { $image = bhl_fetch_page_image($pages[0]->PageID); $imageURL = $image->thumbnail->url; echo '<img style="border:1px solid rgb(192,192,192);" src="' . $imageURL . '" width="40" />'; } else { echo '<img style="border:1px solid rgb(192,192,192);" src="' . $config['web_root'] . 'images/blank70x100.png' . '" width="40" />'; } } echo '</td>'; echo '<td valign="top">'; echo '<span><a href="' . $doc->id . '">' . $doc->title . '</a></span><br />'; echo '<span style="color:green;font-size:12px;">'; $str = $hits->highlighting->{$doc->id}->citation[0]; $str = str_replace('<em>', '<b>', $str); $str = str_replace('</em>', '</b>', $str); echo $str; echo '</span>';