Beispiel #1
0
    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));
Beispiel #2
0
}
// 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);
    }
}
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
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 ')';
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
 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 #7
0
/**
 * @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;
}
Beispiel #8
0
 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();
 }
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
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;
}
Beispiel #11
0
$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('&', '&amp;', $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;
Beispiel #12
0
     }
     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>';