/** * */ public static function getValueFromSource($pa_item, $po_reader, $pa_options = null) { $pb_return_as_array = caGetOption('returnAsArray', $pa_options, false); $pa_environment = caGetOption('environment', $pa_options, array(), array('castTo' => 'array')); $ps_delimiter = caGetOption('delimiter', $pa_options, ';'); if (preg_match('!^_CONSTANT_:[^:]+:(.*)$!', $pa_item['source'], $va_matches)) { $vm_value = $va_matches[1]; } elseif (isset($pa_environment[$pa_item['source']])) { $vm_value = $pa_environment[$pa_item['source']]; } else { if ($po_reader->valuesCanRepeat()) { $vm_value = $po_reader->get($pa_item['source'], array('returnAsArray' => true)); if (!is_array($vm_value)) { return $pb_return_as_array ? array() : null; } foreach ($vm_value as $vs_k => $vs_v) { $vm_value[$vs_k] = ca_data_importers::replaceValue(trim($vs_v), $pa_item); } if ($pb_return_as_array) { return $vm_value; } else { return join($ps_delimiter, $vm_value); } } else { $vm_value = trim($po_reader->get($pa_item['source'])); } } $vm_value = ca_data_importers::replaceValue($vm_value, $pa_item); if ($pb_return_as_array) { return is_array($vm_value) ? $vm_value : array($vm_value); } return $vm_value; }
/** * */ public static function getValueFromSource($pa_item, $po_reader, $pa_options = null) { $pb_return_as_array = caGetOption('returnAsArray', $pa_options, false); $pa_environment = caGetOption('environment', $pa_options, array(), array('castTo' => 'array')); $ps_delimiter = caGetOption('delimiter', $pa_options, ';'); $pn_lookahead = caGetOption('lookahead', $pa_options, 0, array('castTo' => 'int')); if (preg_match('!^_CONSTANT_:[^:]+:(.*)$!', $pa_item['source'], $va_matches)) { $vm_value = $va_matches[1]; } elseif (isset($pa_environment[$pa_item['source']])) { $vm_value = $pa_environment[$pa_item['source']]; } else { $vn_cur_pos = $po_reader->currentRow(); $vb_did_seek = false; if ($pn_lookahead > 0) { $vn_seek_to = $po_reader->currentRow() + $pn_lookahead; $po_reader->seek($vn_seek_to); $vb_did_seek = true; } if ($po_reader->valuesCanRepeat()) { $vm_value = $po_reader->get($pa_item['source'], array('returnAsArray' => true)); if (!is_array($vm_value)) { return $pb_return_as_array ? array() : null; } foreach ($vm_value as $vs_k => $vs_v) { $vs_v = stripslashes($vs_v); $vm_value[$vs_k] = ca_data_importers::replaceValue(trim($vs_v), $pa_item); } if ($pb_return_as_array) { return $vm_value; } else { return join($ps_delimiter, $vm_value); } } else { $vm_value = trim($po_reader->get($pa_item['source'])); } if ($vb_did_seek) { $po_reader->seek($vn_cur_pos); } } $vm_value = ca_data_importers::replaceValue(stripslashes($vm_value), $pa_item); if ($pb_return_as_array) { return is_array($vm_value) ? $vm_value : array($vm_value); } return $vm_value; }