function string_to_obj($str)
    {
        return unserialize(base64_decode($str));
    }
    function check_shortcode_obj($o, &$error)
    {
        $error = '';
        foreach (array('post_title', 'sc_shortcode', 'sc_template', 'sc_css', 'sc_js', 'sc_fields') as $field) {
            if (!isset($o->{$field})) {
                $error = sprintf(__("Field not set (%s)", 'wpcss'), $field);
                return false;
            }
        }
        if (!is_array($o->sc_fields)) {
            $error = __("Shortcode fields property is not an array.", "wpcss");
            return false;
        }
        foreach (array('post_title', 'sc_shortcode', 'sc_template') as $field) {
            if (trim($o->{$field}) == '') {
                $error = sprintf(__("Field is empty (%s)", 'wpcss'), $field);
                return false;
            }
        }
        return true;
    }
}
$e = new BundleImportExport($bundle, $author);
if (false === $e->get_bundle_file($error, dirname(__FILE__) . '/bundle.php')) {
    send_error_die("ERR:{$error}");
}
echo die(json_encode(array('R' => 'OK')));
$content = ob_get_contents();
ob_end_clean();
//sleep(1);
function send_error_die($msg)
{
    die(json_encode(array('R' => 'ERR', 'MSG' => $msg)));
}
$post_id = intval($_REQUEST['ID']);
if ($post_id == 0) {
    send_error_die('Post ID is not valid.');
}
//-----------
if (!wp_verify_nonce($_REQUEST['nonce'], 'csshortcode-css-nonce')) {
    send_error_die('Settings error, no access.');
}
if (!current_user_can('edit_post', $post_id)) {
    send_error_die('No access.');
}
//-------------
$name = $_REQUEST['name'];
if (trim($name) == '') {
    send_error_die('Property name is not valid');
}
$fields = get_post_meta($post_id, 'sc_fields', true);
$fields = is_array($fields) ? $fields : array();
if (isset($fields[$name])) {
    unset($fields[$name]);
}
update_post_meta($post_id, 'sc_fields', $fields);
$ret = array('R' => 'OK', 'MSG' => '');
die(json_encode($ret));
 **/
ob_start();
Header('Cache-Control: no-cache');
Header('Pragma: no-cache');
require_once '../../../../../../wp-load.php';
$content = ob_get_contents();
ob_end_clean();
//sleep(1);
function send_error_die($msg)
{
    die(json_encode(array('R' => 'ERR', 'MSG' => $msg)));
}
$post_id = intval($_REQUEST['ID']);
if ($post_id == 0) {
    send_error_die('Post ID is not valid.');
}
//-----------
if (!wp_verify_nonce($_REQUEST['nonce'], 'csshortcode-css-nonce')) {
    send_error_die('Settings error, no access.');
}
if (!current_user_can('edit_post', $post_id)) {
    send_error_die('No access.');
}
//-------------
$sco = new ImportExport();
$data = $sco->get_shortcode_from_post_id($post_id, $error, true);
if (false === $data) {
    send_error_die('Error generating export data: ' . $error);
}
$ret = array('R' => 'OK', 'MSG' => '', 'DATA' => $data);
die(json_encode($ret));
//-----------
if (!wp_verify_nonce($_REQUEST['nonce'], 'csshortcode-css-nonce')) {
    send_error_die('Settings error, no access.');
}
if (!current_user_can('edit_post', $post_id)) {
    send_error_die('No access.');
}
//-------------
$name = $_REQUEST['name'];
if (trim($name) == '') {
    send_error_die('Property name is not valid');
}
$fields = get_post_meta($post_id, 'sc_fields', true);
$fields = is_array($fields) ? $fields : array();
if (!isset($fields[$name])) {
    send_error_die('Field not found.');
}
$last_field = false;
if (count($fields) > 0) {
    $tmp = array();
    foreach ($fields as $iname => $field) {
        if (false !== $last_field) {
            if ($iname == $name) {
                $tmp[$name] = $field;
                continue;
            }
            $tmp[$last_field->name] = $last_field;
        }
        $last_field = $field;
    }
    $tmp[$last_field->name] = $last_field;
 * @version $Id$
 * @copyright 2003 
 **/
ob_start();
Header('Cache-Control: no-cache');
Header('Pragma: no-cache');
require_once '../../../../../../wp-load.php';
$content = ob_get_contents();
ob_end_clean();
//sleep(1);
function send_error_die($msg)
{
    die(json_encode(array('R' => 'ERR', 'MSG' => $msg)));
}
//-----------
if (!current_user_can('manage_options') && !current_user_can(CSSOptions::capability)) {
    send_error_die('No access');
}
//-------------
$bundle_name = $_REQUEST['bundle'];
if (trim($bundle_name) == '') {
    send_error_die('Settings error, missing parameter.');
}
$import_export = new ImportExport();
$res = $import_export->restore_bundle_from_name($bundle_name, $error);
if (false === $res) {
    $error = trim($error) == '' ? 'Error restoring bundle(Undefined import/export error)' : $error;
    send_error_die($error);
}
$ret = array('R' => 'OK', 'MSG' => '');
die(json_encode($ret));
if (!wp_verify_nonce($_REQUEST['nonce'], 'csshortcode-css-nonce')) {
    send_error_die('Settings error, no access.');
}
if (!current_user_can('edit_post', $post_id)) {
    send_error_die('No access.');
}
//-------------
global $wpdb;
$code = $_REQUEST['code'];
$sco = new ImportExport();
$obj = $sco->string_to_obj($code);
if (false === $obj) {
    send_error_die('Error reading code. (2)');
}
if (false === $sco->check_shortcode_obj($obj, $error)) {
    send_error_die($error . print_r($obj, true));
}
$categories = array();
if (isset($obj->sc_terms) && is_array($obj->sc_terms) && count($obj->sc_terms) > 0) {
    foreach ($obj->sc_terms as $t) {
        $categories[] = $t->name;
    }
}
$data = (object) array();
$data->name = $obj->post_title;
$data->shortcode = $obj->sc_shortcode;
$data->category = $categories;
$data->bundle = $obj->sc_bundle;
$data->info = property_exists($obj, 'sc_info') ? $obj->sc_info : array('author' => '', 'url' => '');
$data->warnings = array();
$sql = "SELECT P.ID FROM `{$wpdb->postmeta}` M INNER JOIN `{$wpdb->posts}` P ON P.ID = M.post_id WHERE P.ID!={$post_id} AND M.meta_key = \"sc_shortcode\" AND M.meta_value=\"{$obj->sc_shortcode}\" AND P.post_status IN ('publish', 'draft')";