<?php
$a['original_name'] = 'FOO';
$a['column_name'] = 'BAR';
$fields[$a['original_name']] = array();
// Default values for all columns being edited
$fields[$a['original_name']]['name'] = $a['column_name'];
// Dynamic values for edited columns
switch($a['type'])
{
case 'text':
case 'string':
$fields[$a['original_name']]['type'] = 'varchar';
$fields[$a['original_name']]['constraint'] = (@is_numeric($a['max']) ? $a['max'] : '255');
$fields[$a['original_name']]['null'] = ($a['required'] ? FALSE : TRUE);
if($a['default'])
$fields[$a['original_name']]['default'] = $a['default'];
break;
case 'select':
$fields[$a['original_name']]['type'] = "enum('" . implode("','", $a['options']) . "')";
$fields[$a['original_name']]['null'] = ($a['required'] ? FALSE : TRUE);
$fields[$a['original_name']]['default'] = $a['default'];
break;
case 'multiselect':
$fields[$a['original_name']]['type'] = "set('" . implode("','", $a['options']) . "')";
$fields[$a['original_name']]['null'] = ($a['required'] ? FALSE : TRUE);
if($a['default'])
$fields[$a['original_name']]['default'] = implode(',', $a['default']);
break;
case 'boolean':
$fields[$a['original_name']]['type'] = "enum('0','1')";
$fields[$a['original_name']]['null'] = FALSE;
$fields[$a['original_name']]['default'] = ($a['default'] ? '1' : '0');
break;
}
// Change the table or log the error
self::$dbf->modify_column($partition_table, $fields);