ASong2U_Web/wp-content/plugins/wp-views/inc/wpv-import-export.php

184 lines
7.4 KiB
PHP

<?php
function wpv_admin_menu_import_export() {
?>
<div class="wrap">
<div id="icon-views" class="icon32"><br /></div>
<h2><?php _e('Views Import / Export', 'wpv-views') ?></h2>
<br />
<form name="View_export" action="<?php echo admin_url('edit.php'); ?>" method="post">
<h2><?php _e('Export Views and View Templates', 'wpv-views'); ?></h2>
<p><?php _e('Download all Views and View Templates', 'wpv-views'); ?></p>
<p><strong><?php _e('When importing to theme:', 'wpv-views'); ?></strong></p>
<ul style="margin-left:10px">
<li>
<input id="radio-1" type="radio" value="ask" name="import-mode" checked="checked" />
<label for="radio-1"><?php _e('ask user for approval', 'wpv-views'); ?></label>
</li>
<li>
<input id="radio-2" type="radio" value="auto" name="import-mode" />
<label for="radio-2"><?php _e('import automatically', 'wpv-views'); ?></label>
</li>
</ul>
<p><strong><?php _e('Affiliate details for theme designers:', 'wpv-views'); ?></strong></p>
<table style="margin-left:10px">
<tr>
<td><?php _e('Affiliate ID:', 'wpv-views'); ?></td><td><input type="text" name="aid" id="aid" style="width:200px;" /></td>
</tr>
<tr>
<td><?php _e('Affiliate Key:', 'wpv-views'); ?></td><td><input type="text" name="akey" id="akey" style="width:200px;" /></td>
</tr>
</table>
<p style="margin-left:10px">
<?php _e('You only need to enter affiliate settings if you are a theme designer and want to receive affiliate commission.', 'wpv-views'); ?>
<br />
<?php echo sprintf(__('Log into your account at <a href="%s">%s</a> and go to <a href="%s">%s</a> for details.', 'wpv-views'),
'http://wp-types.com',
'http://wp-types.com',
'http://wp-types.com/shop/account/?acct=affiliate',
'http://wp-types.com/shop/account/?acct=affiliate'); ?>
</p>
<br />
<input id="wpv-export" class="button-primary" type="submit" value="<?php _e('Export', 'wpv-views'); ?>" name="export" />
<?php wp_nonce_field('wpv-export-nonce', 'wpv-export-nonce'); ?>
</form>
<hr />
<?php wpv_admin_import_form(''); ?>
</div>
<?php
}
/**
* Exports data to XML.
*/
function wpv_admin_export_data() {
global $WP_Views;
require_once WPV_PATH_EMBEDDED . '/common/array2xml.php';
$xml = new ICL_Array2XML();
$data = array();
// Get the views
$views = get_posts('post_type=view&post_status=any&posts_per_page=-1');
if (!empty($views)) {
$data['views'] = array('__key' => 'view');
foreach ($views as $key => $post) {
$post = (array) $post;
if ($post['post_name']) {
$post_data = array();
$copy_data = array('ID', 'post_content', 'post_title', 'post_name',
'post_excerpt', 'post_type', 'post_status');
foreach ($copy_data as $copy) {
if (isset($post[$copy])) {
$post_data[$copy] = $post[$copy];
}
}
$data['views']['view-' . $post['ID']] = $post_data;
$meta = get_post_custom($post['ID']);
if (!empty($meta)) {
$data['view']['view-' . $post['ID']]['meta'] = array();
foreach ($meta as $meta_key => $meta_value) {
if ($meta_key == '_wpv_settings') {
$value = maybe_unserialize($meta_value[0]);
$value = $WP_Views->convert_ids_to_names_in_settings($value);
$data['views']['view-' . $post['ID']]['meta'][$meta_key] = $value;
}
if ($meta_key == '_wpv_layout_settings') {
$value = maybe_unserialize($meta_value[0]);
$value = $WP_Views->convert_ids_to_names_in_layout_settings($value);
$data['views']['view-' . $post['ID']]['meta'][$meta_key] = $value;
}
}
if (empty($data['views']['view-' . $post['ID']]['meta'])) {
unset($data['views']['view-' . $post['ID']]['meta']);
}
}
}
}
}
// Get the view templates
$view_templates = get_posts('post_type=view-template&post_status=any&posts_per_page=-1');
if (!empty($view_templates)) {
$data['view-templates'] = array('__key' => 'view-template');
foreach ($view_templates as $key => $post) {
$post = (array) $post;
if ($post['post_name']) {
$post_data = array();
$copy_data = array('ID', 'post_content', 'post_title', 'post_name',
'post_excerpt', 'post_type', 'post_status');
foreach ($copy_data as $copy) {
if (isset($post[$copy])) {
$post_data[$copy] = $post[$copy];
}
}
$data['view-templates']['view-template-' . $post['ID']] = $post_data;
}
}
}
// Offer for download
$data = $xml->array2xml($data, 'views');
$sitename = sanitize_key(get_bloginfo('name'));
if (!empty($sitename)) {
$sitename .= '.';
}
$filename = $sitename . 'views.' . date('Y-m-d') . '.xml';
$code = "<?php\r\n";
$code .= '$timestamp = ' . time() . ';' . "\r\n";
$code .= '$auto_import = ';
$code .= (isset($_POST['import-mode']) && $_POST['import-mode'] == 'ask') ? 0 : 1;
$code .= ';' . "\r\n";
if (isset($_POST['aid']) && $_POST['aid'] != '' && isset($_POST['akey']) && $_POST['aid'] != '') {
$code .= '$affiliate_id="' . $_POST['aid'] . '";' . "\r\n";
$code .= '$affiliate_key="' . $_POST['akey'] . '";' . "\r\n";
}
$code .= "\r\n?>";
if (class_exists('ZipArchive')) {
$zipname = $sitename . 'views.' . date('Y-m-d') . '.zip';
$zip = new ZipArchive();
$file = tempnam("tmp", "zip");
$zip->open($file, ZipArchive::OVERWRITE);
$res = $zip->addFromString('settings.xml', $data);
$zip->addFromString('settings.php', $code);
$zip->close();
$data = file_get_contents($file);
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename=" . $zipname);
header("Content-Type: application/zip");
header("Content-length: " . strlen($data) . "\n\n");
header("Content-Transfer-Encoding: binary");
echo $data;
unlink($file);
die();
} else {
// download the xml.
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename=" . $filename);
header("Content-Type: application/xml");
header("Content-length: " . strlen($data) . "\n\n");
echo $data;
die();
}
}