Project

General

Profile

« Previous | Next » 

Revision 30845bda

Added by Andreas Kohlbecker over 7 years ago

ref #2985 implementing named area page to make area details like level accessible

View differences:

modules/cdm_dataportal/includes/occurrences.inc
18 18

  
19 19

  
20 20
/**
21
 * @param $preservedSpecimenDTO
22
 * @param $detail_html
23
 * @return string
24
 */
25
function compose_cdm_specimen_page($specimenUuid)
26
{
27
    drupal_set_title("Specimen Details");
28
    $preservedSpecimenDTO = cdm_ws_get(CDM_WS_PORTAL_OCCURRENCE, array($specimenUuid, 'specimenDerivates'));
29

  
30
    $render_array = array();
31
    RenderHints::pushToRenderStack('specimen_page');
32

  
33
    $detail_html = compose_cdm_specimen_page_html($preservedSpecimenDTO, true);
34
    $render_array['specimen_html'] = array(
35
        '#markup' => $detail_html
36
    );
37

  
38
    RenderHints::popFromRenderStack();
39
    return $render_array;
40
}
41

  
42
/**
43
 * @param $preservedSpecimenDTO
21
 * Provides the HTML markup for a specimen page
22
 *
23
 * @param $specimen
24
 *
44 25
 * @return string
26
 *  The markup for a specimen page
45 27
 */
46
function compose_cdm_specimen_page_html($preservedSpecimenDTO, $isSpecimenPage = false)
28
function render_cdm_specimen_page($specimen, $is_specimen_page = false)
47 29
{
48 30
    $detail_html = "";
49 31
    //link to specimen page
50
    $pathToSpecimen = path_to_specimen($preservedSpecimenDTO->uuid);
51
    if (!$isSpecimenPage) {
52
        $specimenPageLink = l($preservedSpecimenDTO->accessionNumber, $pathToSpecimen, array('attributes' => array('target' => '_blank')));
32
    $pathToSpecimen = path_to_specimen($specimen->uuid);
33
    if (!$is_specimen_page) {
34
        $specimenPageLink = l($specimen->accessionNumber, $pathToSpecimen, array('attributes' => array('target' => '_blank')));
53 35
        $detail_html .= "<strong>$specimenPageLink</strong><br>";
54 36
    }
55 37

  
56
    if($isSpecimenPage) {
57
        if($preservedSpecimenDTO->citation){
58
            $detail_html .= "<br>".create_label("Citation") . $preservedSpecimenDTO->citation . "<br>";
38
    if($is_specimen_page) {
39
        if($specimen->citation){
40
            $detail_html .= "<br>".create_label("Citation") . $specimen->citation . "<br>";
59 41
        }
60 42
    }
61
    if($preservedSpecimenDTO->preferredStableUri){
62
        $detail_html .= "<br>".create_label("Preferred stable URI") . cdm_external_uri($preservedSpecimenDTO->preferredStableUri) . "<br>";
43
    if($specimen->preferredStableUri){
44
        $detail_html .= "<br>".create_label("Preferred stable URI") . cdm_external_uri($specimen->preferredStableUri) . "<br>";
63 45
    }
64
    if($isSpecimenPage){
46
    if($is_specimen_page){
65 47
        // associated taxa
66
        if($preservedSpecimenDTO->associatedTaxa){
48
        if($specimen->associatedTaxa){
67 49
            $detail_html .= "<br>";
68 50
            $detail_html .= create_label("Associated with");
69
                if(sizeof($preservedSpecimenDTO->associatedTaxa)>1){
51
                if(sizeof($specimen->associatedTaxa)>1){
70 52
                    $detail_html .= "<br>";
71 53
                }
72
            foreach($preservedSpecimenDTO->associatedTaxa as $associatedTaxon){
54
            foreach($specimen->associatedTaxa as $associatedTaxon){
73 55
                $detail_html .= l($associatedTaxon->second, path_to_taxon($associatedTaxon->first, "specimens"));//$associatedTaxon->second."<br>";
74 56
            }
75 57
        }
76 58
    }
77 59
    // - type information
78 60
    $types = "";
79
    if (isset($preservedSpecimenDTO->types)) {
61
    if (isset($specimen->types)) {
80 62
        //typed taxa
81
        if(sizeof($preservedSpecimenDTO->types)>1){
63
        if(sizeof($specimen->types)>1){
82 64
            $detail_html .= "<br>";
83 65
        }
84
        foreach ($preservedSpecimenDTO->types as $typeStatus => $typedTaxa) {
85
            if($isSpecimenPage){
86
                if($preservedSpecimenDTO->types){
66
        foreach ($specimen->types as $typeStatus => $typedTaxa) {
67
            if($is_specimen_page){
68
                if($specimen->types){
87 69
                    $detail_html .= "<i>".$typeStatus."</i>: ";
88 70
                    foreach($typedTaxa as $typedTaxon){
89 71
                        $detail_html .= $typedTaxon." ";
......
96 78
            }
97 79
        }
98 80
    }
99
    $derivateDataDTO = $preservedSpecimenDTO->derivateDataDTO;
81
    $derivateDataDTO = $specimen->derivateDataDTO;
100 82
    // - specimen scans
101 83
    $specimenScans = create_html_links($derivateDataDTO->specimenScans, true);
102 84
    // - molecular data
......
138 120
    $detailImages = create_html_links($derivateDataDTO->detailImages, true);
139 121

  
140 122
    if ($types) {
141
        $detail_html .= $isSpecimenPage?"<br>":"";
123
        $detail_html .= $is_specimen_page?"<br>":"";
142 124
        $detail_html .= create_label("Type(s)") . $types . "<br>";
143 125
    }
144
    if ($specimenScans and !$isSpecimenPage) {
126
    if ($specimenScans and !$is_specimen_page) {
145 127
        $detail_html .= create_label("Specimen Scans") . $specimenScans . "<br>";
146 128
    }
147 129
    //specimen scan image gallery
148
    if($isSpecimenPage and isset($derivateDataDTO->specimenScanUuids) and !empty($derivateDataDTO->specimenScanUuids)) {
130
    if($is_specimen_page and isset($derivateDataDTO->specimenScanUuids) and !empty($derivateDataDTO->specimenScanUuids)) {
149 131
        $detail_html .= addImageGallery("Specimen scans", $derivateDataDTO->specimenScanUuids);
150 132
    }
151 133

  
152 134
    if ($molecularData) {
153
        $detail_html .= $isSpecimenPage?"<br>":"";
135
        $detail_html .= $is_specimen_page?"<br>":"";
154 136
        $detail_html .= create_label("Molecular Data") . $molecularData . "<br>";
155 137
    }
156 138

  
157
    if ($detailImages and !$isSpecimenPage) {
139
    if ($detailImages and !$is_specimen_page) {
158 140
        $detail_html .= create_label("Detail Images") . $detailImages . "<br>";
159 141
    }
160 142

  
161 143
    //detail image gallery
162
    if($isSpecimenPage and isset($derivateDataDTO->detailImageUuids) and !empty($derivateDataDTO->detailImageUuids)){
144
    if($is_specimen_page and isset($derivateDataDTO->detailImageUuids) and !empty($derivateDataDTO->detailImageUuids)){
163 145
        $detail_html .= addImageGallery("Detail Images", $derivateDataDTO->detailImageUuids);
164 146
    }
165 147

  
166 148
    //character data
167
    if ($preservedSpecimenDTO->characterData) {
168
        $detail_html .= $isSpecimenPage?"<br>":"";
149
    if ($specimen->characterData) {
150
        $detail_html .= $is_specimen_page?"<br>":"";
169 151
        $detail_html .= create_label("Character Data");
170
        if($isSpecimenPage) {
152
        if($is_specimen_page) {
171 153
            $detail_html .= "<br>";
172
            foreach ($preservedSpecimenDTO->characterData as $characterStatePair) {
154
            foreach ($specimen->characterData as $characterStatePair) {
173 155
                $detail_html .= "<i>" . $characterStatePair->first . "</i>:" . $characterStatePair->second;
174 156
                $detail_html .= "<br>";
175 157
            }
......
504 486
            if (isset($value->collectingAreas)) {
505 487
              $area_representations = array();
506 488
              foreach ($value->collectingAreas as $area) {
507
                $area_representations[] = $area->representation_L10n;
489
                $area_representations[] = l($area->representation_L10n, path_to_named_area($area->uuid));
508 490
              }
509
              @_description_list_group_add($groups, cdm_occurrence_field_name_label('collectingAreas'), implode(', ', $area_representations));
491
              @_description_list_group_add($groups, cdm_occurrence_field_name_label('collectingAreas'),
492
                array(
493
                  array('#markup' => implode(', ', $area_representations))
494
                )
495
              );
510 496
            }
511 497
            if (isset($value->exactLocation) && $value->exactLocation->sexagesimalString) {
512 498
              $sub_dl_groups = array();

Also available in: Unified diff