function custom_formatters_formatter_export_form in Custom Formatters 6
1 call to custom_formatters_formatter_export_form()
- custom_formatters_overview in ./
custom_formatters.admin.inc - @file Contains administration functions for the Custom Formatters module.
1 string reference to 'custom_formatters_formatter_export_form'
- custom_formatters_menu in ./
custom_formatters.module - Implements hook_menu().
File
- ./
custom_formatters.admin.inc, line 460 - Contains administration functions for the Custom Formatters module.
Code
function custom_formatters_formatter_export_form($form_state, $formatters = array()) {
if (empty($formatters)) {
drupal_set_message(t('The specified formatter was not found'), 'error');
drupal_goto('admin/build/formatters');
}
$form = array(
'#tree' => TRUE,
);
if (is_array($formatters)) {
$form['operation'] = array(
'#type' => 'hidden',
'#value' => 'export',
);
$form['formatters']['#tree'] = TRUE;
foreach ($formatters as $formatter) {
$formatters[$formatter] = custom_formatters_formatter($formatter);
$form['formatters'][$formatter] = array(
'#type' => 'hidden',
'#value' => $formatter,
);
}
$form['#submit'][] = 'custom_formatters_formatter_export_form_submit';
}
else {
$formatters = array(
$formatters->name => $formatters,
);
}
// Cleanup formatters array.
foreach ($formatters as &$formatter) {
unset($formatter->source);
if (isset($formatter->override)) {
unset($formatter->override);
}
}
$form['extra'] = array(
'#type' => 'fieldset',
);
$form['extra']['module'] = array(
'#type' => 'textfield',
'#title' => t('Module name'),
'#default_value' => !empty($form_state['storage']) ? $form_state['storage']['module'] : 'mymodule',
);
$form['extra']['mode'] = array(
'#type' => 'select',
'#title' => t('Export mode'),
'#options' => array(
'standard' => t('Standard CCK formatters'),
'custom' => t('Custom formatters'),
),
'#default_value' => !empty($form_state['storage']) ? $form_state['storage']['mode'] : 'standard',
'#description' => '<strong>' . t('Standard CCK formatters') . ':</strong> ' . t('Uses the standard CCK formatters API (hook_theme(), hook_field_formatter_info(), etc) for a pure code export.') . '<br /><br />' . '<strong>' . t('Custom formatters') . ':</strong> ' . t('Uses a custom format (hook_custom_formatters_default()) to provide more control, in a similar fashion to Views.'),
);
$form['extra']['submit'] = array(
'#type' => 'submit',
'#value' => 'Update',
);
$filename = drupal_strtolower(str_replace(' ', '_', $form['extra']['module']['#default_value']));
$form['export']['output'] = array(
'#type' => 'fieldset',
'#title' => t('Export'),
'#description' => t('Download !file.', array(
'!file' => l($filename . (function_exists('gzencode') ? '.tgz' : '.tar'), 'admin/build/formatters/download/' . $form['extra']['mode']['#default_value'] . '/' . $filename . (function_exists('gzencode') ? '.tgz' : '.tar') . '?' . implode(',', array_keys($formatters))),
)),
);
$info = theme('custom_formatters_export_info', $formatters, $form['extra']['module']['#default_value']);
$form['export']['output']['info'] = array(
'#type' => 'textarea',
'#title' => "{$filename}.info",
'#value' => $info,
'#rows' => count(explode("\n", $info)),
);
$module = theme("custom_formatters_export_module", $formatters, $form['extra']['module']['#default_value'], $form['extra']['mode']['#default_value']);
$form['export']['output']['module'] = array(
'#type' => 'textarea',
'#title' => "{$filename}.module",
'#value' => $module,
'#rows' => count(explode("\n", $module)),
);
return $form;
}