Project

General

Profile

Download (2.46 KB) Statistics
| Branch: | Tag: | Revision:
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($style == "zoology"){
43
		$year = partialToYear($reference->datePublished->start);
44
		$citation = $author_team->titleCache . ($year ? '. '.$year : '');
45
	} else {
46
		//$citation = $reference->titleCache;
47
		$year = partialToYear($reference->datePublished->start);
48
		$citation = short_form_of_author_team ($author_team->titleCache) . ($year ? '. '.$year : '');
49
		$citation = str_replace('..', '.', $citation);
50
	}
51

    
52
	if($doLink){
53
		$out = l('<span class="reference">'.$citation.'</span>'
54
          , path_to_reference($reference->uuid)
55
          , array("class"=>"reference")
56
          , NULL, NULL, FALSE ,TRUE);
57
    } else {
58
		$out = '<span class="reference">'.$citation.'</span>';
59
	}
60
    if(!empty($descriptionElementSource->citationMicroReference)){
61
        $out .= ': '. $descriptionElementSource->citationMicroReference;
62
     }
63
     
64
    return $out;
65
}
66

    
67
function short_form_of_author_team ($author_team){
68
	$number_of_authors = substr_count($author_team, ' & ') + 1;
69
	switch ($number_of_authors) {
70
		case 1:
71
			break;
72
		case 2:
73
			$result = str_replace(' & ', ' and ', $author_team);
74
			break;
75
		default:
76
			$result_parts = explode(' & ', $author_team);
77
      $result = $result_parts[0] . ' et al.';	  
78
	}
79
	return $result;
80
}
(7-7/8)