get_var($wpdb->prepare(
"SELECT ID FROM $wpdb->posts
WHERE post_name = %s AND post_type = %s",
$view_template['post_name'], 'view-template'));
if ($post_to_update) {
$imported_view_templates[] = $post_to_update;
// only update if we have overwrite enabled.
if (isset($_POST['view-templates-overwrite']) && $_POST['view-templates-overwrite'] == 'on') {
$overwrite_count++;
$view_template['ID'] = $post_to_update;
$id = wp_update_post($view_template);
if (!$id) {
return new WP_Error('could_not_update_post', sprintf(__('Failed to update view template - %s.', 'wpv-views'), $view_template['post_name']));
}
}
} else {
// it's a new view template
$new_count++;
unset($view_template['ID']);
$id = wp_insert_post($view_template, true);
if (is_object($id)) {
// it's an WP_Error object.
return $id;
}
$imported_view_templates[] = $id;
}
}
}
$deleted_count = 0;
if (isset($_POST['view-templates-delete']) && $_POST['view-templates-delete'] == 'on') {
$view_templates_to_delete = get_posts('post_type=view-template&post_status=any&posts_per_page=-1');
if (!empty($view_templates_to_delete)) {
foreach ($view_templates_to_delete as $view_template_to_delete) {
if (!in_array($view_template_to_delete->ID, $imported_view_templates)) {
wp_delete_post($view_template_to_delete->ID, true);
$deleted_count++;
}
}
}
}
$import_messages[] = sprintf(__('%d View Templates found in the file. %d have been created and %d have been over written.', 'wpv-views'), sizeof($imported_view_templates), $new_count, $overwrite_count);
if ($deleted_count) {
$import_messages[] = sprintf(__('%d existing View Templates were deleted.', 'wpv-views'), $deleted_count);
}
return false; // no errors
}
function wpv_admin_import_views($import_data) {
global $wpdb, $import_messages, $WP_Views;
$imported_views = array();
$overwrite_count = 0;
$new_count = 0;
if (isset($import_data['views']['view'])) {
$views = $import_data['views']['view'];
// check for a single view
if (!isset($views[0])) {
$views = array($views);
}
foreach($views as $view) {
$meta = $view['meta'];
unset($view['meta']);
if (isset($meta['_wpv_settings'])) {
$meta['_wpv_settings'] = $WP_Views->convert_names_to_ids_in_settings($meta['_wpv_settings']);
}
if (isset($meta['_wpv_layout_settings'])) {
$meta['_wpv_layout_settings'] = $WP_Views->convert_names_to_ids_in_layout_settings($meta['_wpv_layout_settings']);
}
$post_to_update = $wpdb->get_var($wpdb->prepare(
"SELECT ID FROM $wpdb->posts
WHERE post_name = %s AND post_type = %s",
$view['post_name'], 'view'));
if ($post_to_update) {
$imported_views[] = $post_to_update;
// only update if we have overwrite enabled.
if (isset($_POST['views-overwrite']) && $_POST['views-overwrite'] == 'on') {
$overwrite_count++;
$view['ID'] = $post_to_update;
$id = wp_update_post($view);
if (!$id) {
return new WP_Error('could_not_update_post', sprintf(__('Failed to update view - %s.', 'wpv-views'), $view['post_name']));
}
if (isset($meta['_wpv_settings'])) {
update_post_meta($id, '_wpv_settings', $meta['_wpv_settings']);
}
if (isset($meta['_wpv_layout_settings'])) {
update_post_meta($id, '_wpv_layout_settings', $meta['_wpv_layout_settings']);
}
}
} else {
// it's a new view template
$new_count++;
unset($view['ID']);
$id = wp_insert_post($view, true);
if (is_object($id)) {
// it's an WP_Error object.
return $id;
}
$imported_views[] = $id;
if (isset($meta['_wpv_settings'])) {
update_post_meta($id, '_wpv_settings', $meta['_wpv_settings']);
}
if (isset($meta['_wpv_layout_settings'])) {
update_post_meta($id, '_wpv_layout_settings', $meta['_wpv_layout_settings']);
}
}
}
}
$deleted_count = 0;
if (isset($_POST['views-delete']) && $_POST['views-delete'] == 'on') {
$views_to_delete = get_posts('post_type=view&post_status=any&posts_per_page=-1');
if (!empty($views_to_delete)) {
foreach ($views_to_delete as $view_to_delete) {
if (!in_array($view_to_delete->ID, $imported_views)) {
wp_delete_post($view_to_delete->ID, true);
$deleted_count++;
}
}
}
}
$import_messages[] = sprintf(__('%d Views found in the file. %d have been created and %d have been over written.', 'wpv-views'), sizeof($imported_views), $new_count, $overwrite_count);
if ($deleted_count) {
$import_messages[] = sprintf(__('%d existing Views were deleted.', 'wpv-views'), $deleted_count);
}
return false; // no errors
}
function wpv_import_errors() {
global $import_errors;
?>
$v) {
$v = is_string($v) ? trim($v) : $v;
if (empty($v)) {
$element[$k] = '';
continue;
}
$add = wpv_admin_import_export_simplexml2array($v);
if (!empty($add)) {
$element[$k] = $add;
} else {
$element[$k] = '';
}
}
}
if (empty($element)) {
$element = '';
}
return $element;
}