本文整理汇总了PHP中data_entry_helper::build_sample_subsamples_occurrences_submission方法的典型用法代码示例。如果您正苦于以下问题:PHP data_entry_helper::build_sample_subsamples_occurrences_submission方法的具体用法?PHP data_entry_helper::build_sample_subsamples_occurrences_submission怎么用?PHP data_entry_helper::build_sample_subsamples_occurrences_submission使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类data_entry_helper
的用法示例。
在下文中一共展示了data_entry_helper::build_sample_subsamples_occurrences_submission方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: create_submission
/**
* Handles the construction of a submission array from a set of form values.
* @param array $values Associative array of form data values.
* @param array $args iform parameters.
* @return array Submission structure.
*/
function create_submission($values, $args)
{
// Any remembered fields need to be made available to the hook function outside this class.
global $remembered;
$remembered = isset($args['remembered']) ? $args['remembered'] : '';
//Page only supported in grid mode at the moment.
if (isset($values['gridmode'])) {
$submission = data_entry_helper::build_sample_subsamples_occurrences_submission($values);
} else {
drupal_set_message('Please set the page to "gridmode"');
}
//The parent sample method is always effort for Shorewatch
$submission['fields']['sample_method_id'] = $args['effort'];
$readAuth = data_entry_helper::get_read_auth($args['website_id'], $args['password']);
//Get the platform height which is stored against the location itself.
$locationAttributeValueRow = data_entry_helper::get_population_data(array('table' => 'location_attribute_value', 'extraParams' => $readAuth + array('location_id' => $submission['fields']['location_id']['value'], 'location_attribute_id' => $args['platform_height'])));
if (!empty($locationAttributeValueRow[0]['value'])) {
$platformHeight = $locationAttributeValueRow[0]['value'];
}
$enteredSref = $submission['fields']['entered_sref']['value'];
//Cycle through each occurrence
foreach ($submission['subModels'] as &$occurrenceAndSubSampleRecord) {
if (!empty($occurrenceAndSubSampleRecord['model']['subModels'][0]['model']['fields'])) {
//Assign the attributes associated with the occurrence to a variable to make it easier to work with.
$occurrenceAttrsToMatch = $occurrenceAndSubSampleRecord['model']['subModels'][0]['model']['fields'];
foreach ($occurrenceAttrsToMatch as $occurrenceAttrToMatchKey => $occurrenceAttrToMatch) {
//Get the reticule and bearing.
if (preg_match('/^occAttr:' . $args['bearing_to_sighting'] . '.*/', $occurrenceAttrToMatchKey)) {
$bearing = $occurrenceAttrToMatch['value'];
}
if (preg_match('/^occAttr:' . $args['reticules'] . '.*/', $occurrenceAttrToMatchKey)) {
$reticuleToUse = $occurrenceAttrToMatch['value'];
}
}
//Collect the actual reticules value by looking it up in the termlists_term view as currently we only have an id from the drop-down
$readAuth = data_entry_helper::get_read_auth($args['website_id'], $args['password']);
if (!empty($reticuleToUse)) {
$termlistsTermsRow = data_entry_helper::get_population_data(array('table' => 'termlists_term', 'extraParams' => $readAuth + array('id' => $reticuleToUse)));
}
if (!empty($termlistsTermsRow[0]['term'])) {
$reticules = $termlistsTermsRow[0]['term'];
}
}
//We calculate the grid ref of the cetacean by using the reticules/bearing/platform height and the original entered sptial reference. This is stored in the sub-sample associated with the occurrence.
if (empty($platformHeight) || empty($bearing) || empty($reticules)) {
$occurrenceAndSubSampleRecord['model']['fields']['entered_sref']['value'] = $enteredSref;
} else {
$occurrenceAndSubSampleRecord['model']['fields']['entered_sref']['value'] = calculate_sighting_sref($bearing, $reticules, $platformHeight, $enteredSref, $args);
}
//Sub-sample sample method is always reticule sighting
$occurrenceAndSubSampleRecord['model']['fields']['sample_method_id']['value'] = $args['reticule_sighting'];
//We need to copy the location information to the sub-sample else it won't get
//picked up in the cache occurrences table.
if (!empty($submission['fields']['location_id']['value'])) {
$occurrenceAndSubSampleRecord['model']['fields']['location_id']['value'] = $submission['fields']['location_id']['value'];
}
if (!empty($submission['fields']['location_name']['value'])) {
$occurrenceAndSubSampleRecord['model']['fields']['location_name']['value'] = $submission['fields']['location_name']['value'];
}
//The following only applies to the Cetaceans Seen? which doesn't appear in adhoc mode.
//Show the second tab when Cetaeans Seen is set
if (!$args['adhocMode']) {
//Start by assuming the second tab isn't showing.
$gridTabShowing = false;
//Find the value the user has set for Cetaceans Seen?
foreach ($values as $key => $value) {
if (substr($key, 0, 10) == "smpAttr:" . $args['cetaceans_seen']) {
if ($value == $args['cetaceans_seen_yes']) {
$gridTabShowing = true;
}
}
}
//If Cetacean's Seen is false then we need to delete any existing Occurrences that were on the second tab if the user is editing existing data.
//Note this does not apply to adhoc mode where the grid is on the first tab, we have already checked for adhoc mode earlier so don't need to here.
if ($gridTabShowing === false) {
$occurrenceAndSubSampleRecord['model']['fields']['deleted']['value'] = 't';
$occurrenceAndSubSampleRecord['model']['subModels'][0]['model']['fields']['deleted']['value'] = 't';
}
}
}
return $submission;
}
示例2: get_submission
/**
* Handles the construction of a submission array from a set of form values.
* @param array $values Associative array of form data values.
* @param array $args iform parameters.
* @return array Submission structure.
*/
public static function get_submission($values, $args)
{
// Any remembered fields need to be made available to the hook function outside this class.
global $remembered;
$remembered = isset($args['remembered']) ? $args['remembered'] : '';
// default for forms setup on old versions is grid - list of occurrences
// Can't call getGridMode in this context as we might not have the $_GET value to indicate grid
if (isset($values['speciesgridmapmode'])) {
$submission = data_entry_helper::build_sample_subsamples_occurrences_submission($values);
} else {
if (isset($values['gridmode'])) {
$submission = data_entry_helper::build_sample_occurrences_list_submission($values);
} else {
$submission = data_entry_helper::build_sample_occurrence_submission($values);
}
}
return $submission;
}
示例3: get_submission
/**
* Handles the construction of a submission array from a set of form values.
* @param array $values Associative array of form data values.
* @param array $args iform parameters.
* @return array Submission structure.
* @todo: Implement this method
*/
public static function get_submission($values, $args)
{
$subsampleModels = array();
if (isset($values['page']) && $values['page'] == 'speciesmap') {
$submission = data_entry_helper::build_sample_subsamples_occurrences_submission($values);
} else {
if (!isset($values['page']) || $values['page'] == 'mainSample') {
// submitting the first page, with top level sample details
$read = array('nonce' => $values['read_nonce'], 'auth_token' => $values['read_auth_token']);
if (!isset($values['sample:entered_sref'])) {
// the sample does not have sref data, as the user has just picked a transect site at this point. Copy the
// site's centroid across to the sample. Should this be cached?
$site = data_entry_helper::get_population_data(array('table' => 'location', 'extraParams' => $read + array('view' => 'detail', 'id' => $values['sample:location_id'], 'deleted' => 'f')));
$site = $site[0];
$values['sample:entered_sref'] = $site['centroid_sref'];
$values['sample:entered_sref_system'] = $site['centroid_sref_system'];
}
// Build the subsamples
$sections = data_entry_helper::get_population_data(array('table' => 'location', 'extraParams' => $read + array('view' => 'detail', 'parent_id' => $values['sample:location_id'], 'deleted' => 'f'), 'nocache' => true));
if (isset($values['sample:id'])) {
$existingSubSamples = data_entry_helper::get_population_data(array('table' => 'sample', 'extraParams' => $read + array('view' => 'detail', 'parent_id' => $values['sample:id'], 'deleted' => 'f'), 'nocache' => true));
} else {
$existingSubSamples = array();
}
$sampleMethods = helper_base::get_termlist_terms(array('read' => $read), 'indicia:sample_methods', array('Transect Section'));
$attributes = data_entry_helper::getAttributes(array('valuetable' => 'sample_attribute_value', 'attrtable' => 'sample_attribute', 'key' => 'sample_id', 'fieldprefix' => 'smpAttr', 'extraParams' => $read, 'survey_id' => $values['sample:survey_id'], 'sample_method_id' => $sampleMethods[0]['id'], 'multiValue' => false));
$smpDate = self::parseSingleDate($values['sample:date']);
foreach ($sections as $section) {
$smp = false;
$exists = false;
foreach ($existingSubSamples as $existingSubSample) {
if ($existingSubSample['location_id'] == $section['id']) {
$exists = $existingSubSample;
break;
}
}
if (!$exists) {
$smp = array('fkId' => 'parent_id', 'model' => array('id' => 'sample', 'fields' => array('survey_id' => array('value' => $values['sample:survey_id']), 'website_id' => array('value' => $values['website_id']), 'date' => array('value' => $values['sample:date']), 'location_id' => array('value' => $section['id']), 'entered_sref' => array('value' => $section['centroid_sref']), 'entered_sref_system' => array('value' => $section['centroid_sref_system']), 'sample_method_id' => array('value' => $sampleMethods[0]['id']))), 'copyFields' => array('date_start' => 'date_start', 'date_end' => 'date_end', 'date_type' => 'date_type'));
foreach ($attributes as $attr) {
foreach ($values as $key => $value) {
$parts = explode(':', $key);
if (count($parts) > 1 && $parts[0] == 'smpAttr' && $parts[1] == $attr['attributeId']) {
$smp['model']['fields']['smpAttr:' . $attr['attributeId']] = array('value' => $value);
}
}
}
} else {
// need to ensure any date change is propagated: only do if date has changed for performance reasons.
$subSmpDate = self::parseSingleDate($exists['date_start']);
if (strcmp($smpDate, $subSmpDate)) {
$smp = array('fkId' => 'parent_id', 'model' => array('id' => 'sample', 'fields' => array('survey_id' => array('value' => $values['sample:survey_id']), 'website_id' => array('value' => $values['website_id']), 'id' => array('value' => $exists['id']), 'date' => array('value' => $values['sample:date']), 'location_id' => array('value' => $exists['location_id']))), 'copyFields' => array('date_start' => 'date_start', 'date_end' => 'date_end', 'date_type' => 'date_type'));
}
}
if ($smp) {
$subsampleModels[] = $smp;
}
}
}
$submission = submission_builder::build_submission($values, array('model' => 'sample'));
if (count($subsampleModels) > 0) {
$submission['subModels'] = $subsampleModels;
}
}
return $submission;
}