1
|
<?php
|
2
|
// $Id$
|
3
|
|
4
|
/**
|
5
|
* Copyright (C) 2007 EDIT
|
6
|
* European Distributed Institute of Taxonomy
|
7
|
* http://www.e-taxonomy.eu
|
8
|
*
|
9
|
* The contents of this file are subject to the Mozilla Public License Version 1.1
|
10
|
* See http://www.mozilla.org/MPL/MPL-1.1.html for the full license terms.
|
11
|
*/
|
12
|
|
13
|
function theme_cdm_reference_pager($referencePager, $path, $parameters = array()){
|
14
|
drupal_set_title(t('Bibliographic index'));
|
15
|
$out = '';
|
16
|
if(count($referencePager->records) > 0){
|
17
|
$out .= '<ul>';
|
18
|
foreach($referencePager->records as $reference){
|
19
|
$reference->fullCitation = $reference->titleCache; //FIXME remove hack for matching cdm entity to STO
|
20
|
$out .= '<li>'.theme('cdm_reference', $reference, null, TRUE).'</li>';
|
21
|
}
|
22
|
$out .= '</ul>';
|
23
|
$out .= theme('cdm_pager', $referencePager, $path, $parameters);
|
24
|
} else {
|
25
|
$out = '<h4 class="error">Sorry, this page contains not entries.</h4>';
|
26
|
}
|
27
|
return $out;
|
28
|
}
|
29
|
|
30
|
|
31
|
/**
|
32
|
* used by
|
33
|
* - theme_cdm_typedesignations
|
34
|
* - theme_cdm_reference_pager
|
35
|
* - theme_cdm_taxonRelationships
|
36
|
*
|
37
|
*/
|
38
|
function theme_cdm_reference($reference, $microReference = null, $doLink = FALSE, $referenceStyle = NULL ){
|
39
|
|
40
|
$author_team = cdm_ws_get(CDM_WS_REFERENCE_AUTHORTEAM, $reference->uuid);
|
41
|
|
42
|
if($referenceStyle == "zoology"){
|
43
|
$year = partialToYear($reference->datePublished->start);
|
44
|
$citation = $author_team->titleCache . ($year ? '. '.$year : '');
|
45
|
} else {
|
46
|
$citation = $reference->titleCache;
|
47
|
}
|
48
|
|
49
|
if($doLink){
|
50
|
$out = l('<span class="reference">'.$citation.'</span>'
|
51
|
, path_to_reference($reference->uuid)
|
52
|
, array("class"=>"reference")
|
53
|
, NULL, NULL, FALSE ,TRUE);
|
54
|
} else {
|
55
|
$out = '<span class="reference">'.$citation.'</span>';
|
56
|
}
|
57
|
|
58
|
//FIXME use microreference webservice instead
|
59
|
if(!empty($descriptionElementSource->citationMicroReference)){
|
60
|
$out .= ': '. $descriptionElementSource->citationMicroReference;
|
61
|
}
|
62
|
|
63
|
return $out;
|
64
|
}
|
65
|
|
66
|
function _short_form_of_author_team ($author_team){
|
67
|
|
68
|
$number_of_authors = substr_count($author_team, ' & ') + 1;
|
69
|
//var_dump($author_team);
|
70
|
//var_dump($number_of_authors);
|
71
|
switch ($number_of_authors) {
|
72
|
case 1:
|
73
|
$result = $author_team;
|
74
|
break;
|
75
|
case 2:
|
76
|
$result = str_replace(' & ', ' and ', $author_team);
|
77
|
break;
|
78
|
default:
|
79
|
$result_parts = explode(' & ', $author_team);
|
80
|
$result = $result_parts[0] . ' et al.';
|
81
|
}
|
82
|
return $result;
|
83
|
}
|