/**
 * Insert Row
 */
function builder_new_row($args, $builder_data)
{
    global $spyropress_builder;
    extract($args);
    // Row
    $row = $spyropress_builder->rows->get_row($row_type);
    $row_ID = generate_row_id();
    $row_data = array('type' => $row_type, 'options' => array(), 'columns' => array());
    // Generate Columns HTML
    $prev_width = 0;
    $columns = $row->config['columns'];
    if (!empty($columns)) {
        foreach ($columns as $column) {
            $col = $spyropress_builder->columns->get_column($column['type']);
            $col_ID = generate_column_id();
            $col_class = isset($column['class']) && $column['class'] ? $column['class'] : '';
            $col_data = array('type' => $column['type'], 'col_class' => builder_column_class($prev_width, $col, $col_class), 'modules' => array());
            $row_data['columns'][$col_ID] = $col_data;
        }
    }
    // Generate Row HTML
    $html = '';
    $html = builder_render_backend_row($row_ID, $row_data);
    $html = str_replace('class="builder-row"', 'class="builder-row active"', $html);
    // Saving data
    $row_data['prev_width'] = $prev_width;
    $builder_data[$row_ID] = $row_data;
    $result = $spyropress_builder->save_data($post_id, $builder_data);
    // Generate json data
    $json['success'] = $result ? true : false;
    $json['message'] = $result ? __('Row Saved', 'spyropress') : __('Operation fails', 'spyropress');
    $json['html'] = $result ? $html : __('Oops! something goes wrong while creating the new row.', 'spyropress');
    $json['row_id'] = $row_ID;
    return $json;
}
/**
 * Insert Column
 */
function builder_new_column($args, $builder_data)
{
    global $spyropress_builder;
    extract($args);
    // Get row prev width
    $prev_width = $builder_data[$row_id]['prev_width'];
    // Column
    $col = $spyropress_builder->columns->get_column($col_type);
    $col_ID = generate_column_id();
    $col_data = array('type' => $col_type, 'col_class' => builder_column_class($prev_width, $col), 'modules' => array());
    // Generate Column HTML
    $html = builder_render_backend_column($col_ID, $col_data);
    // Saving data
    $builder_data[$row_id]['prev_width'] = $prev_width;
    $builder_data[$row_id]['columns'][$col_ID] = $col_data;
    $result = $spyropress_builder->save_data($post_id, $builder_data);
    // Generate json data
    $json['success'] = $result ? true : false;
    $json['message'] = $result ? 'Column Saved' : 'Operation fails';
    $json['html'] = $result ? $html : 'Oops! something goes wrong while creating the new column.';
    $json['row_id'] = $row_id;
    $json['col_id'] = $col_ID;
    return $json;
}