You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
369 lines
13 KiB
369 lines
13 KiB
<?php |
|
|
|
/** |
|
* @file |
|
* Default theme implementation for displaying EBSCO results. |
|
* |
|
* @see template_preprocess_ebsco_results() |
|
* |
|
* |
|
* Copyright [2017] [EBSCO Information Services] |
|
* |
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
|
* you may not use this file except in compliance with the License. |
|
* You may obtain a copy of the License at |
|
* |
|
* http://www.apache.org/licenses/LICENSE-2.0 |
|
* |
|
* Unless required by applicable law or agreed to in writing, software |
|
* distributed under the License is distributed on an "AS IS" BASIS, |
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
* See the License for the specific language governing permissions and |
|
* limitations under the License. |
|
*/ |
|
|
|
if (isset($autoSuggestTerms)) { |
|
if (count($autoSuggestTerms) > 0) { |
|
$suggestString = ""; |
|
foreach ($autoSuggestTerms as $term) { |
|
$path = url('ebsco/results', array('query' => array('type' => ""))); |
|
$suggestString .= "<a href=\"{$path}&lookfor=$term\">" . $term . "</a> "; |
|
} |
|
echo "<p><strong>Did you mean " . $suggestString . "?</strong></p>"; |
|
} |
|
} |
|
|
|
if ($records){ |
|
|
|
echo t('Showing') . " <strong>" . $record_start . "</strong> - <strong> " . $record_end . "</strong> " . t('of') . " <strong>" . $record_count . "</strong> "; |
|
|
|
if ($search_view == 'basic') { |
|
echo t('for search') . " <strong>'" . check_plain($lookfor) . "'</strong> "; |
|
} |
|
|
|
if ($search_time){ |
|
echo "," . t('query time') . ":" . check_plain(round($search_time, 2)) . " s"; |
|
} |
|
|
|
print $sort_form; |
|
print $pager; |
|
|
|
if (!user_is_logged_in()) { |
|
$link = '<a href="' . url('user') . '">' . t('Login') . '</a>'; |
|
echo '<p class="top-login-message">'; |
|
echo sprintf(t('Hello, Guest. %s for full access.'), $link); |
|
echo '</p>'; |
|
} |
|
|
|
$tabs = ""; |
|
$tabsContent = ""; |
|
|
|
$counter = 0; |
|
$rsItem = NULL; |
|
|
|
if (isset($relatedContent)) { |
|
foreach ($relatedContent as $item) { |
|
if (isset($item["RelatedRecord"])) { |
|
$tabs .= '<li data-target="#researchstarters" data-slide-to="' . $counter . '" ' . ($counter == 0 ? ' class="active" ' : ' ') . '></li>'; |
|
$counter++; |
|
if (isset($item["RelatedRecord"]["Records"]["Record"][0])) { |
|
$rsItem = $item["RelatedRecord"]["Records"]["Record"][0]; |
|
} |
|
else |
|
{ |
|
if (isset($item["Records"]["Record"])) { |
|
$rsItem = $item["Records"]["Record"]; |
|
} |
|
} |
|
if ($rsItem == NULL) { |
|
continue; |
|
} |
|
// var_dump($rsItem); |
|
$rsTitle = ""; |
|
$rsSubjects = ""; |
|
$rsAbstract = ""; |
|
$rsSource = ""; |
|
$rsImage = ""; |
|
$rsAN = $rsItem["Header"]["An"]; |
|
$rsDB = $rsItem["Header"]["DbId"]; |
|
$rsUrl = url('ebsco/result', array('query' => array('id' => $rsAN . "|" . $rsDB))); |
|
|
|
if (isset($rsItem["ImageInfo"]["CoverArt"])) { |
|
$rsImage = $rsItem["ImageInfo"]["CoverArt"]["Target"]; |
|
} |
|
foreach($rsItem["Items"]["Item"] as $it) { |
|
switch ($it["Group"]) { |
|
case "Ti": |
|
$rsTitle = $it["Data"]; |
|
break; |
|
|
|
case "Src": |
|
$rsSource = $it["Data"]; |
|
break; |
|
|
|
case "Su": |
|
$rsSubjects = $it["Data"]; |
|
|
|
break; |
|
|
|
case "Ab": |
|
$rsAbstract = $it["Data"]; |
|
break; |
|
} |
|
} |
|
|
|
$tabsContent .= '<div class="item" ><div class="carousel-caption">'; |
|
if ($rsImage <> "") { |
|
$tabsContent .= '<img src="' . $rsImage . '" alt="' . $rsTitle . '" style="float:left">'; |
|
} |
|
if ($rsTitle <> ""){ |
|
$tabsContent .= '<h3 class="relatedTitle"><a href="' . $rsUrl . '" class="title _record_link">' . $rsTitle . '</a></h3>'; |
|
} |
|
if ($rsSubjects <> ""){ |
|
$path = url('ebsco/results', array('query' => array('type' => "Subject"))); |
|
$link_xml = '/<searchLink fieldCode="([^\"]*)" term="%22([^\"]*)%22">/'; |
|
$link_html = "<a href=\"{$path}&lookfor=$2\">"; |
|
$rsSubjects = preg_replace($link_xml, $link_html, $rsSubjects); |
|
$rsSubjects = str_replace('</searchLink>', '</a>', $rsSubjects); |
|
$tabsContent .= '<p><strong>' . t('Subjects') . '</strong>:<span class="quotestart">' . str_replace(array("<br>", "<br />"), ', ', $rsSubjects) . '</span></p>'; |
|
} |
|
if ($rsSource <> ""){ |
|
$tabsContent .= '<p>' . $rsSource . '</p>'; |
|
} |
|
if ($rsAbstract <> ""){ |
|
$tabsContent .= '<p><cite>' . $rsAbstract . '</cite></p>'; |
|
} |
|
|
|
$tabsContent .= '</div></div>'; |
|
} |
|
|
|
// Replated publications. |
|
if (isset($item["RelatedPublication"])) { |
|
// var_dump($item); |
|
$tabs .= '<li data-target="#ematchplacard" data-slide-to="' . $counter . '" ' . ($counter == 0 ? ' class="active" ' : ' ') . '></li>'; |
|
$counter++; |
|
|
|
$tabsContent .= '<div class="item" ><div class="carousel-caption">'; |
|
$tabsContent .= ' |
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jstree/3.2.1/themes/default/style.min.css" /> |
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/jstree/3.2.1/jstree.min.js"></script> |
|
'; |
|
foreach ($item["RelatedPublication"]["PublicationRecords"] as $pub){ |
|
$plink = $pub["PLink"]; |
|
foreach($pub["Items"]["Item"] as $item) { |
|
if ($item["Group"] == "Ti") |
|
{ |
|
$tabsContent .= '<h3 class="relatedTitle"><a href="' . $plink . ' target="_blank" >' . $item["Data"] . '</a></h3>'; |
|
} |
|
else |
|
{ |
|
$tabsContent .= "<strong>" . $item["Label"] . "</strong> : " . $item["Data"] . "<br/>"; |
|
} |
|
} |
|
$tabsContent .= '<div id="publicationList"><ul>'; |
|
foreach($pub["FullTextHoldings"]["FullTextHolding"] as $itemHoldings) { |
|
$hURL = isset($itemHoldings["URL"]) ? $itemHoldings["URL"] : ""; |
|
$hName = isset($itemHoldings["Name"]) ? $itemHoldings["Name"] : ""; |
|
$hCoverage = isset($itemHoldings["CoverageStatement"]) ? $itemHoldings["CoverageStatement"] : ""; |
|
$hEmbargo = ""; |
|
if (isset($itemHoldings["EmbargoDescription"])) { |
|
// If no embargo, zero size array. |
|
if (!is_array($itemHoldings["EmbargoDescription"])) { |
|
$hEmbargo = $itemHoldings["EmbargoDescription"]; |
|
} |
|
} |
|
$tabsContent .= '<li> |
|
<a href="' . $hURL . '" target="_blank">' . $hName . '</a>; |
|
<ul><li>Coverage:' . $hCoverage . '; '; |
|
|
|
if ($hEmbargo <> '') { |
|
$tabsContent .= '</li><li>Embargo:' . $hEmbargo; |
|
} |
|
$tabsContent .= '</li></ul></li>'; |
|
// Notes. |
|
} |
|
$tabsContent .= '</ul></div>'; |
|
} |
|
$tabsContent .= ' |
|
<script> |
|
jQuery("#publicationList").jstree().on("changed.jstree", function (e, data) { |
|
var pubURL = data.instance.get_node(data.node, true).children("a").attr("href"); |
|
if (pubURL!="#") { |
|
window.open(pubURL); |
|
} |
|
}); |
|
</script>'; |
|
$tabsContent .= '</div></div>'; |
|
break; |
|
} |
|
} |
|
} |
|
|
|
if ($tabsContent <> "") { |
|
echo '<script src="https://code.jquery.com/jquery-2.2.4.min.js"></script> |
|
|
|
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script> |
|
|
|
<div id="relatedInformation" class="carousel slide" data-ride="carousel" style="display:block;"> |
|
<!-- Indicators --> |
|
<ol class="carousel-indicators">' . $tabs . '</ol>'; |
|
echo '<div class="carousel-inner" role="listbox" >' . $tabsContent . '</div>'; |
|
echo '<!-- Left and right controls --> |
|
<a class="left carousel-control" href="#myCarousel" role="button" data-slide="prev"> |
|
<span class="glyphicon glyphicon-chevron-left" ></span> |
|
</a> |
|
<a class="right carousel-control" href="#myCarousel" role="button" data-slide="next"> |
|
<span class="glyphicon glyphicon-chevron-right" ></span> |
|
</a> |
|
</div> |
|
<script> |
|
jQuery("#relatedInformation").carousel({ |
|
pause: true, |
|
interval:4000 |
|
}) |
|
</script>'; |
|
|
|
} |
|
|
|
?> |
|
|
|
<ol class="search-results ebsco"> |
|
<?php foreach ($records as $record): |
|
|
|
// Trim Title if needed. |
|
if ($trim_title && strlen($record->title) > $trim_title) { |
|
$record->title = truncate_utf8($record->title, $trim_title, TRUE, TRUE, 1); |
|
} |
|
|
|
// Trim Authors if needed. |
|
if ($trim_authors && strlen($record->authors) > $trim_authors) { |
|
$record->authors = truncate_utf8(implode(',',explode('<br />', $record->authors)), $trim_authors, TRUE, TRUE, 1); |
|
} |
|
|
|
$id = check_plain($record->record_id()); |
|
$recordUrl = url('ebsco/result', array('query' => array('id' => $id))); |
|
$fulltextUrl = url('ebsco/fulltext', array('query' => array('id' => $id))); |
|
$pdfUrl = url('ebsco/pdf', array('query' => array('id' => $id))); |
|
|
|
?> |
|
<li> |
|
<div class="record-number floatleft"> |
|
<?php print $record->result_id; ?> |
|
</div> |
|
|
|
<div class="result floatleft"> |
|
<div class="span-2"> |
|
<?php |
|
if ($record->small_thumb_link){ |
|
echo ' |
|
<a href="' . $recordUrl . '" class="_record_link"> |
|
<img src="' . $record->small_thumb_link . '" class="book-jacket" alt="' . t('Book jacket') . '"/> |
|
</a>'; |
|
} |
|
?> |
|
</div> |
|
|
|
<div class="span-9"> |
|
<div class="result-line1"> |
|
<?php |
|
|
|
if ($record->access_level == '1'){ |
|
echo '<p>'; |
|
$label = '<strong>' . check_plain($record->db_label) . '</strong>'; |
|
$link = '<a href="' . url('user') . '">' . t('Login') . '</a>'; |
|
echo sprintf(t('This result from %s cannot be displayed to guests.'), $label) . "<br /><strong>" . sprintf(t('%s for full access.'), $link) . "</strong>"; |
|
echo "</p>"; |
|
} |
|
elseif ($record->title){ |
|
echo '<a href="' . $recordUrl . '" class="title _record_link">' . $record->title . '</a>'; |
|
} |
|
?> |
|
</div> |
|
|
|
<div class="result-line2"> |
|
<?php |
|
if (!empty($record->authors)){ |
|
echo "<span>" . t('by') . " " . str_replace(array("<br>", "<br />"), ', ', $record->authors) . " </span>"; |
|
} |
|
|
|
if (!empty($record->source)){ |
|
echo '<p>' . t('Published in') . " " . $record->source . '</p>'; |
|
} |
|
|
|
?> |
|
</div> |
|
|
|
<div class="result-line3"> |
|
<?php |
|
|
|
if (!empty($record->summary)){ |
|
echo '<cite>' . $record->summary . '</cite><br />'; |
|
} |
|
|
|
if (!empty($record->subjects)){ |
|
echo '<strong>' . t('Subjects') . '</strong>:<span class="quotestart">' . str_replace('<br />', ', ', $record->subjects) . '</span>'; |
|
} |
|
|
|
?> |
|
</div> |
|
|
|
<?php |
|
if (!empty($record->custom_links)){ |
|
?> |
|
<div class="result-line4"> |
|
<ul class="custom-links"> |
|
<?php |
|
foreach ($record->custom_links as $link){ ?> |
|
<li> |
|
<a href="<?php print $link['Url']; ?>" target="_blank" title="<?php print $link['MouseOverText']; ?>" class="external-link"> |
|
<?php if ($link['Icon']): ?><img src="<?php print $link['Icon']?>" /><?php |
|
endif; ?><?php print $link['Name']; ?> |
|
</a> |
|
</li> |
|
<?php } ?> |
|
</ul> |
|
</div> |
|
<?php } ?> |
|
|
|
<div class="result-line5"> |
|
<?php |
|
if ($record->full_text_availability){ |
|
echo '<a href="' . $fulltextUrl . '#html" class="icon html fulltext _record_link">'; |
|
echo t('HTML full text'); |
|
echo "</a> "; |
|
} |
|
|
|
if ($record->pdf_availability){ |
|
echo ' <a href="' . $pdfUrl . '" class="icon pdf fulltext">'; |
|
echo t('PDF full text'); |
|
echo "</a>"; |
|
} |
|
?> |
|
|
|
</div> |
|
</div> |
|
</div> |
|
<div class="clear"></div> |
|
</li> |
|
<?php endforeach; ?> |
|
</ol> |
|
<?php print $pager; ?> |
|
|
|
<?php |
|
} |
|
elseif (!empty($lookfor)) { |
|
echo "<h2>" . t('Your search did not match any resources.') . "</h2>"; |
|
// Check for autocomplete. |
|
/* |
|
if (isset ($autoSuggestTerms) ) { |
|
if (count($autoSuggestTerms)>0) { |
|
echo "Did you mean "."?<br/>"; |
|
var_dump($autoSuggestTerms); |
|
} |
|
} |
|
*/ |
|
echo search_help('search#noresults', drupal_help_arg()); |
|
} |
|
?> |
|
|
|
<div id="spinner" class="spinner"></div>
|
|
|