When exporting a macro, a keyed array is used, which makes it difficult when we want to reorder macros in a text editor for example.
Here is a snippet to export macros in an unkeyed array :
function macro_get_macro() {
$subs = variable_get('macro_submissions', array());
$string = '';
foreach ($subs as $key => $form) {
$string .= '$macro[] = array('."\n";
$string .= " 'form_id' => " . var_export($form['form_id'], TRUE) . ",\n";
$string .= " 'path' => " . var_export($form['path'], TRUE) . ",\n";
$string .= " 'values' => " . var_export(_macro_recursively_convert_objects_to_arrays((array) $form['values']), TRUE) . ",\n";
// Add multistep support.
if ($form['storage']) {
$string .= " 'storage' => " . var_export(_macro_recursively_convert_objects_to_arrays((array) $form['storage']), TRUE) . ",\n";
}
// the form parameters are being used here.
array_shift($form['parameters']);
$string .= " 'parameters' => " . var_export(serialize($form['parameters']), TRUE) . ",\n";
$string .= ");\n";
}
return $string;
}
Sorry I'm lazy to make a patch.