Exemplo n.º 1
0
 /**
  *
  */
 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;
 }