Esempio n. 1
0
 /**
  *
  */
 public function GetAction()
 {
     $pn_action_id = $this->request->getParameter('action_id', pInteger);
     $pn_silo_id = $this->request->getParameter('silo_id', pInteger);
     $t_action = new ca_occurrences($pn_action_id);
     $va_action = array();
     $va_action["objects"] = $t_action->get('ca_objects', array("restrict_to_relationship_types" => array("display", "secondary"), "returnAsArray" => 1, 'checkAccess' => $this->opa_access_values));
     $va_action["label"] = $t_action->getLabelforDisplay();
     $va_action["georeference"] = $t_action->get('ca_occurrences.georeference.geocode');
     # --- get a bigger map if there are no objects to show
     if (is_array($va_action["objects"]) && sizeof($va_action["objects"]) > 0) {
         $o_map = new GeographicMap(250, 128, 'mapAction' . $pn_action_id . 'Silo' . $pn_silo_id);
     } else {
         $o_map = new GeographicMap(500, 300, 'mapAction' . $pn_action_id . 'Silo' . $pn_silo_id);
     }
     $o_map->mapFrom($t_action, "ca_occurrences.georeference.geocode");
     $vs_map = $o_map->render('HTML');
     $va_action["map"] = $vs_map;
     $va_action["description"] = $t_action->get('description');
     $va_action["occurrence_id"] = $t_action->get('occurrence_id');
     $va_action["entities"] = $t_action->get('ca_entities', array("returnAsArray" => 1, 'checkAccess' => $this->opa_access_values, 'sort' => 'surname'));
     $va_action["collections"] = $t_action->get('ca_collections', array("returnAsArray" => 1, 'checkAccess' => $this->opa_access_values));
     $va_action["occurrences"] = $t_action->get('ca_occurrences', array("returnAsArray" => 1, 'checkAccess' => $this->opa_access_values));
     $va_action["date"] = $t_action->get('date', array('template' => "^dates_value"));
     # --- get next and previous ids
     $o_cache = caGetCacheObject('MetabolicChronology', 3600);
     $va_silos = $o_cache->load('silo_list');
     $va_silo_actionmap = $va_silos[$pn_silo_id]['actionmap'];
     $pn_previous_id = "";
     $pn_next_id = "";
     foreach ($va_silo_actionmap as $i => $va_action_info) {
         if ($va_action_info["id"] == $pn_action_id) {
             $pn_previous_id = $va_silo_actionmap[$i - 1]["id"];
             $pn_next_id = $va_silo_actionmap[$i + 1]["id"];
             break;
         }
     }
     $this->view->setVar('previous_id', $pn_previous_id);
     $this->view->setVar('next_id', $pn_next_id);
     $this->view->setVar('action', $va_action);
     $this->view->setVar('silo_id', $pn_silo_id);
     $this->render('action_info_html.php');
 }