/**
 * Reorder Rows
 */
function builder_reorder_rows($args, $builder_data)
{
    global $spyropress_builder;
    extract($args);
    // Orders
    $order_by = explode(',', $order);
    // Sorting rows
    $sorted_data = sort_array_by_array($builder_data, $order_by);
    // Saving data
    $result = $spyropress_builder->save_data($post_id, $sorted_data);
    // Generate json data
    $json['success'] = $result ? true : false;
    $json['message'] = $result ? __('Row Order Updated', 'spyropress') : __('Operation fails', 'spyropress');
    $json['html'] = $result ? __('Row Order Updated', 'spyropress') : __('Oops! something goes wrong while updating rows order.', 'spyropress');
    return $json;
}
foreach ($file_list as $css_filepath) {
    $css_rules_array[$css_filepath] = parse_css_to_array(file_get_contents($css_filepath));
}
foreach ($css_rules_array as $css_filepath => $css_rules_set) {
    $default_css_filepath = sprintf('forum/styles/default/%s', basename($css_filepath));
    $default_css_rules = parse_css_to_array(file_get_contents($default_css_filepath));
    file_put_contents($default_css_filepath, parse_array_to_css($default_css_rules));
    $default_css_rules = parse_css_to_array(file_get_contents($default_css_filepath));
    foreach ($default_css_rules as $selector => $default_rules_set) {
        if (!isset($css_rules_set[$selector])) {
            $css_rules_set[$selector] = $default_rules_set;
        } else {
            foreach ($default_rules_set as $rule_name => $value) {
                if (preg_match('/(#[0-9A-F]{3,6}|rgba?)/i', $value) > 0) {
                    continue;
                }
                if (preg_match('/color/i', $rule_name) > 0) {
                    continue;
                }
                $css_rules_set[$selector][$rule_name] = $value;
            }
        }
    }
    foreach ($css_rules_set as $selector => $css_rules) {
        if (!isset($default_css_rules[$selector])) {
            unset($css_rules_set[$selector]);
        }
    }
    $css_rules_set = sort_array_by_array($css_rules_set, array_keys($default_css_rules));
    file_put_contents($css_filepath, parse_array_to_css($css_rules_set));
}
                continue;
            }
            if (!preg_match($pattern, str_replace(DIRECTORY_SEPARATOR, '/', $fileinfo->getPathname()))) {
                continue;
            }
            $css_filename = ltrim(str_replace(DIRECTORY_SEPARATOR, '/', str_replace($style_pathname, '', $fileinfo->getPathname())), '/');
            if (!isset($output[$style_name])) {
                $output[$style_name] = array();
            }
            $css_file_contents = file_get_contents($fileinfo->getPathname());
            $output[$style_name][$css_filename] = parse_css_to_array($css_file_contents);
        }
    }
    return $output;
}
set_time_limit(0);
header('Content-Type: text/plain');
$style_css_files_array = get_css_styles('forum/styles/', '/\\.css$/i', $exclude_dirs_array, $exclude_files_array);
$default_css_files_array = get_css_styles('forum/styles/', '/default\\/.+\\.css$/i', array(), $exclude_files_array);
$default_css_files_array = $default_css_files_array['default'];
foreach ($default_css_files_array as $default_css_filename => $default_css_rules) {
    file_put_contents(sprintf('forum/styles/default/%s', $default_css_filename), trim(parse_array_to_css($default_css_rules)));
}
foreach ($style_css_files_array as $style_name => &$style_css_files) {
    foreach ($style_css_files as $style_css_filename => $style_css_rules) {
        $style_css_rules = array_replace_recursive($default_css_files_array[$style_css_filename], $style_css_rules);
        $style_css_rules = array_intersect_key_recursive($style_css_rules, $default_css_files_array[$style_css_filename]);
        sort_array_by_array($style_css_files_array[$style_name][$style_css_filename], $default_css_files_array[$style_css_filename]);
        file_put_contents(sprintf('forum/styles/%s/%s', $style_name, $style_css_filename), trim(parse_array_to_css($style_css_rules)));
    }
}