private static function add_field_values_to_csv(&$row) { foreach (self::$fields as $col) { $field_value = isset(self::$entry->metas[$col->id]) ? self::$entry->metas[$col->id] : false; // Post values need to be retrieved differently if (self::$entry->post_id && ($col->type == 'tag' || isset($col->field_options['post_field']) && $col->field_options['post_field'])) { $field_value = FrmProEntryMetaHelper::get_post_value(self::$entry->post_id, $col->field_options['post_field'], $col->field_options['custom_field'], array('truncate' => $col->field_options['post_field'] == 'post_category' ? true : false, 'form_id' => self::$entry->form_id, 'field' => $col, 'type' => $col->type, 'exclude_cat' => isset($col->field_options['exclude_cat']) ? $col->field_options['exclude_cat'] : 0, 'sep' => self::$separator)); } if (in_array($col->type, array('user_id', 'file', 'date', 'data'))) { $field_value = FrmProFieldsHelper::get_export_val($field_value, $col, self::$entry); } else { if (isset($col->field_options['separate_value']) && $col->field_options['separate_value']) { $sep_value = FrmEntriesHelper::display_value($field_value, $col, array('type' => $col->type, 'post_id' => self::$entry->post_id, 'show_icon' => false, 'entry_id' => self::$entry->id, 'sep' => self::$separator, 'embedded_field_id' => isset(self::$entry->embedded_fields) && isset(self::$entry->embedded_fields[$entry->id]) ? 'form' . self::$entry->embedded_fields[self::$entry->id] : 0)); $row[$col->id . '_label'] = $sep_value; unset($sep_value); } $field_value = maybe_unserialize($field_value); $field_value = apply_filters('frm_csv_value', $field_value, array('field' => $col)); } $row[$col->id] = $field_value; unset($col, $field_value); } }
echo $entry->parent_item_id; ?> </parent_item_id> <?php $metas = $wpdb->get_results($wpdb->prepare("SELECT meta_value, field_id FROM {$wpdb->prefix}frm_item_metas WHERE item_id=%d", $entry->id)); foreach ($metas as $meta) { ?> <item_meta> <field_id><?php echo $meta->field_id; ?> </field_id> <meta_value><?php if (isset($fields[$meta->field_id])) { $meta->meta_value = FrmProFieldsHelper::get_export_val($meta->meta_value, $fields[$meta->field_id]); } echo FrmXMLHelper::cdata($meta->meta_value); unset($meta); ?> </meta_value> </item_meta> <?php } ?> </item> <?php unset($metas); if (!empty($entry->post_id)) { $old_ids = $item_ids; $item_ids = array($entry->post_id);
echo '"' . __('Timestamp', 'formidable') . '"' . $col_sep . '"' . __('Last Updated', 'formidable') . '"' . $col_sep . '"' . __('Created By', 'formidable') . '"' . $col_sep . '"' . __('Updated By', 'formidable') . '"' . $col_sep . '"' . __('Draft', 'formidable') . '"' . $col_sep . '"IP"' . $col_sep . '"ID"' . $col_sep . '"Key"' . "\n"; // fetch 20 posts at a time rather than loading the entire table into memory while ($next_set = array_splice($entry_ids, 0, 20)) { $where = 'id IN (' . join(',', $next_set) . ')'; $entries = $frm_entry->getAll($where, '', '', true, false); foreach ($entries as $entry) { foreach ($form_cols as $col) { $field_value = isset($entry->metas[$col->id]) ? $entry->metas[$col->id] : false; if (!$field_value and $entry->post_id) { $col->field_options = maybe_unserialize($col->field_options); if ($col->type == 'tag' || isset($col->field_options['post_field']) && $col->field_options['post_field']) { $field_value = FrmProEntryMetaHelper::get_post_value($entry->post_id, $col->field_options['post_field'], $col->field_options['custom_field'], array('truncate' => $col->field_options['post_field'] == 'post_category' ? true : false, 'form_id' => $entry->form_id, 'field' => $col, 'type' => $col->type, 'exclude_cat' => isset($col->field_options['exclude_cat']) ? $col->field_options['exclude_cat'] : 0, 'sep' => $sep)); } } if (in_array($col->type, array('user_id', 'file', 'date', 'data'))) { $field_value = FrmProFieldsHelper::get_export_val($field_value, $col); } else { if (isset($col->field_options['separate_value']) and $col->field_options['separate_value']) { $sep_value = FrmProEntryMetaHelper::display_value($field_value, $col, array('type' => $col->type, 'post_id' => $entry->post_id, 'show_icon' => false, 'entry_id' => $entry->id, 'sep' => $sep)); if (is_array($sep_value)) { $sep_value = implode($sep, $sep_value); } $sep_value = FrmProEntriesHelper::encode_value($sep_value, $charset, $to_encoding); $sep_value = str_replace('"', '""', $sep_value); //escape for CSV files. if ($line_break != 'return') { $sep_value = str_replace(array("\r\n", "\r", "\n"), $line_break, $sep_value); } echo '"' . $sep_value . '"' . $col_sep; unset($sep_value); }