# This patch file was generated by NetBeans IDE # This patch can be applied using context Tools: Apply Diff Patch action on respective folder. # It uses platform neutral UTF-8 encoding. # Above lines and this line are ignored by the patching process. Index: contributions/modules/ffmpeg_converter/ffmpeg_converter.admin.inc --- contributions/modules/ffmpeg_converter/ffmpeg_converter.admin.inc Base (1.7) +++ contributions/modules/ffmpeg_converter/ffmpeg_converter.admin.inc Locally Modified (Based On 1.7) @@ -8,410 +8,6 @@ */ /** - * Page callback: presets overview. - */ -function ffmpeg_converter_admin_presets() { - $help = t('Use this page to create and modify FFmpeg configuration presets which you can use to process media files automatically.'); - if (module_exists('filefield') && module_exists('rules')) { - $help .= ' ' . t('Your presets will appear in Rules using the "Queue file field for conversion" action, which lets you create rules that convert all media files that are uploaded to a certain file field automatically.', array('@rules', url('admin/rules/trigger'))); - } - else { - $help .= ' ' . t('If you install and enable the Rules and FileField modules, your presets will appear on rule configuration pages, which allows you to have all media files that are uploaded to a certain file field processed automatically.'); - } - $help .= ' ' . t('Other modules may also make this conversion functionality available in their own specific contexts.'); - $help = '
' . $help . '
'; - - // Load presets and present them in table form. - $presets = ffmpeg_converter_preset_load(); - $header = array(t('Description'), t('Name'), t('Source'), '', '', ''); - $rows = array(); - - foreach ($presets as $key => $preset) { - $row = array(); - $row[0] = check_plain($preset->description); - $row[1] = check_plain($preset->name); - - $row[3] = l(t('Edit'), - 'admin/settings/ffmpeg_converter/presets/edit/' . $preset->name, - array('attributes' => array('class' => 'link-edit'))); - switch ($preset->export_type) { - case 1: - // "Normal" type. - $row[2] = '' . t('Normal') . ''; - $row[4] = l(t('Delete'), - 'admin/settings/ffmpeg_converter/presets/delete/' . $preset->name, - array('attributes' => array('class' => 'link-delete'))); - break; - case 3: - // "Overridden" type. - $row[2] = '' . t('Overridden') . ''; - $row[4] = l(t('Revert'), - 'admin/settings/ffmpeg_converter/presets/delete/' . $preset->name, - array('attributes' => array('class' => 'link-delete'))); - break; - default: - $row[2] = '' . t('Default') . ''; - $row[4] = ''; - } - $row[5] = l(t('Export'), - 'admin/settings/ffmpeg_converter/presets/export/' . $preset->name, - array('attributes' => array('class' => 'link-export'))); - ksort($row); - - $rows[] = $row; - } - - $table = theme('table', $header, $rows); - - // Add links beneath the table. - $links = array( - 'link-add' => array( - 'title' => t('Add preset'), - 'href' => 'admin/settings/ffmpeg_converter/presets/add', - ), - 'link-import' => array( - 'title' => t('Import preset'), - 'href' => 'admin/settings/ffmpeg_converter/presets/import', - ), - ); - $links = theme('links', $links, array('class' => 'ffmpeg-converter-presets-links')); - - return $help . $table . $links; -} - - -/** - * Preset settings form. - * - * @param $name - * The preset's machine readable name. - */ -function ffmpeg_converter_admin_preset($form_state, $preset = NULL) { - // Check if we're supposed to edit a preset or add a new one. - if ($preset) { - drupal_set_title(t('#name settings', array('#name' => check_plain($preset->description)))); - } - else { - $preset = new stdClass; - $preset->name = ''; - $preset->description = ''; - $preset_options = ffmpeg_converter_default_options(); - $preset->ffmpeg_wrapper = $preset_options; - } - - $form = array(); - $form['intro'] = array(); - - $form['name'] = array( - '#type' => 'textfield', - '#title' => t('Preset name'), - '#description' => t('The unique, machine readable name of this preset.'), - '#default_value' => $preset->name, - '#size' => 20, - '#required' => true, - ); - $form['description'] = array( - '#type' => 'textfield', - '#title' => t('Preset description'), - '#description' => t('The human readable name or description of this preset.'), - '#default_value' => $preset->description, - '#size' => 20, - '#required' => true, - ); - - // Add FFmpeg Wrapper's configuration form. - $form += ffmpeg_wrapper_configuration_form($preset->ffmpeg_wrapper, "edit-ffmpeg-converter-presets-$preset->name-ffmpeg-wrapper-"); - $form['ffmpeg_wrapper']['#collapsible'] = true; - $form['ffmpeg_wrapper']['#tree'] = true; - - // Check this preset's export type/storage. - if (isset($preset->export_type)) { - switch ($preset->export_type) { - case 1: - // "Normal" type. - $form['intro']['#value'] = t('Status: normal
This preset is defined in the database.'); - break; - case 2: - // "Default" type. - $form['intro']['#value'] = t('Status: default
This preset is defined in code.'); - $form['name']['#disabled'] = true; - $form['name']['#value'] = $form['name']['#default_value']; - break; - case 3: - // "Overridden" type. - $form['intro']['#value'] = t('Status: overridden
This preset is defined in code and overridden in the database.'); - $form['name']['#disabled'] = true; - $form['name']['#value'] = $form['name']['#default_value']; - break; - } - } - else { - unset($form['intro']); - } - - // Save extra preset info for the submit handler. - if (!empty($preset->pid)) { - $form['pid'] = array( - '#type' => 'value', - '#value' => $preset->pid, - ); - } - if (!empty($preset->export_type)) { - $form['export_type'] = array( - '#type' => 'value', - '#value' => $preset->export_type, - ); - } - - $form['submit'] = array( - '#type' => 'submit', - '#value' => t('Save') - ); - - return $form; - -} - - -/** - * Validate a preset form. - */ -function ffmpeg_converter_admin_preset_validate($form, &$form_state) { - // Check for illegal characters in preset names. - if (preg_match('/[^0-9a-zA-Z_\-]/', $form_state['values']['name'])) { - form_set_error('name', t('Please only use alphanumeric characters, underscores (_), and hyphens (-) for preset names.')); - } -} - -/** - * Submit handler to save a preset. - */ -function ffmpeg_converter_admin_preset_submit($form, &$form_state) { - - // Serialize ffmpeg_wrapper data. - $form_state['values']['ffmpeg_wrapper'] = serialize($form_state['values']['ffmpeg_wrapper']); - - if (empty($form_state['values']['pid'])) { - // Save new preset. - if (drupal_write_record('ffmpeg_converter_preset', $form_state['values'])) { - if (empty($form_state['values']['export_type'])) { - drupal_set_message(t('Created preset %preset.', array('%preset' => $form_state['values']['description']))); - } - else { - // This is an existing default preset that is being overriden. - drupal_set_message(t('Updated preset %preset.', array('%preset' => $form_state['values']['description']))); - } - } - else { - drupal_set_message(t('Failed to create a new preset.'), 'warning'); - } - } - else { - // Save existing preset. - if (drupal_write_record('ffmpeg_converter_preset', $form_state['values'], 'pid')) { - drupal_set_message(t('Updated preset %preset.', array('%preset' => $form_state['values']['description']))); - } - else { - drupal_set_message(t('Failed to update preset %preset.', array('%preset' => $form_state['values']['description'])), 'warning'); - } - } - - drupal_goto('admin/settings/ffmpeg_converter/presets'); -} - - -/** - * Delete preset form. - * - * @param $name - * The preset's machine readable name. - */ -function ffmpeg_converter_admin_preset_delete($form_state, $preset) { - $form = array(); - $form['pid'] = array( - '#type' => 'value', - '#value' => $preset->pid, - ); - // Save a couple of values for the submit handler. - $form['preset_description'] = array( // 'description' is used by confirm_form(). - '#type' => 'value', - '#value' => $preset->description, - ); - $form['export_type'] = array( - '#type' => 'value', - '#value' => $preset->export_type, - ); - - // Adjust the UI texts depending on export type. - switch ($preset->export_type) { - case 1: - // "Normal" type. - $message = t('Are you sure you want to delete %title?', array('%title' => $preset->description)); - $button = t('Delete'); - break; - case 3: - // "Overridden" type. - $message = t('Are you sure you want to revert %title?', array('%title' => $preset->description)); - $button = t('Revert'); - break; - default: - // There are no other export types that can be deleted. - drupal_goto('admin/settings/ffmpeg_converter'); - return array(); - } - - return confirm_form($form, - $message, - isset($_GET['destination']) ? $_GET['destination'] : 'admin/settings/ffmpeg_converter', - t('This action cannot be undone. If you are using this preset in other parts of your system, you should change those settings first.'), - $button, - t('Cancel') - ); - -} - - -/** - * Submit handler to delete a preset. - */ -function ffmpeg_converter_admin_preset_delete_submit($form, &$form_state) { - if ($form_state['values']['confirm']) { - ffmpeg_converter_preset_delete($form_state['values']['pid']); - // Adjust message depending on export type. - $message = $form_state['values']['export_type'] == 1 ? - 'Deleted preset %preset.' : - 'Reverted preset %preset.'; - drupal_set_message(t($message, array('%preset' => $form_state['values']['preset_description']))); - } - $form_state['redirect'] = 'admin/settings/ffmpeg_converter/presets'; -} - - -/** - * Page callback: export a preset. - * - * @param $preset - * A preset object. - */ -function ffmpeg_converter_admin_preset_export($form_state, $preset) { - drupal_set_title(t('Export of preset %description', array('%description' => $preset->description))); - $form = array(); - - // Get export code with Ctools. - $export = ctools_export_object('ffmpeg_converter_preset', $preset); - $export = ""; - - // Create the export code textarea. - ctools_include('export'); - $form['export'] = array( - '#type' => 'textarea', - '#title' => t('Preset code'), - '#rows' => 20, - '#default_value' => $export, - '#description' => t('Copy and paste this code into the text area on the Import page on a different site if you want to create an identical copy of this preset, You can also use it to define a default preset in your custom code (see below).'), - ); - - // Generate example code for a preset definition in a custom module . - $code = << 1); - } -} - -/** - * Implementation of hook_default_ffmpeg_converter_preset(). - */ -function mymodule_default_ffmpeg_converter_preset() { - \$export = array(); - -%s - \$export['%s'] = \$preset; - - return \$export; -} - -?> -EOD; - $code = sprintf($code, ctools_export_object('ffmpeg_converter_preset', $preset, ' '), $preset->name); - $code = highlight_string($code, true); - - // Show the example code in a fieldset. - $form['default'] = array( - '#type' => 'fieldset', - '#collapsible' => true, - '#title' => t('Example default preset implementation'), - '#description' => t('This is an example implementation of a default preset based on #preset, as defined by a custom module called mymodule. This is also similar to how presets are defined when exported by the Features module.', - array('#preset' => $preset->description, '@features_url' => 'http://drupal.org/project/features')), - ); - $form['default']['code'] = array( - '#value' => $code - ); - return $form; -} - - -/** - * Page callback: import presets. - */ -function ffmpeg_converter_admin_preset_import() { - $form = array(); - $form['import'] = array( - '#type' => 'textarea', - '#rows' => 10, - '#description' => t('Paste your exported preset code here. You can only import one preset at a time. The code should have <?php ?> tags and return a serialized preset object.'), - ); - $form['submit'] = array( - '#type' => 'submit', - '#value' => t('Import') - ); - return $form; -} - - -/** - * Validate a preset import. - */ -function ffmpeg_converter_admin_preset_import_validate($form, &$form_state) { - // Run the import code, which should return a serialized $preset object. - $preset = unserialize(drupal_eval($form_state['values']['import'])); - if (empty($preset) || !is_object($preset) || empty($preset->name)) { - form_set_error('import', t('The submitted preset code could not be interperated.')); - } - elseif (ffmpeg_converter_preset_load($preset->name)) { - form_set_error('import', t('A preset by that name already exists.')); - } - else { - // Pass the parsed object on to the submit handler. - $form_state['values']['import_parsed'] = $preset; - } -} - - -/** - * Submit handler to import a preset. - */ -function ffmpeg_converter_admin_preset_import_submit($form, &$form_state) { - $preset = (array) $form_state['values']['import_parsed']; - $preset['ffmpeg_wrapper'] = serialize($preset['ffmpeg_wrapper']); - - if (drupal_write_record('ffmpeg_converter_preset', $preset)) { - drupal_set_message(t('Imported preset %preset.', array('%preset' => $preset['description']))); - } - else { - drupal_set_message(t('Failed to import the preset.'), 'warning'); - } - - $form_state['redirect'] = 'admin/settings/ffmpeg_converter/presets'; -} - - -/** * Page callback: debug settings form. */ function ffmpeg_converter_admin_debug() { Index: contributions/modules/ffmpeg_converter/ffmpeg_converter.install --- contributions/modules/ffmpeg_converter/ffmpeg_converter.install Base (1.2) +++ contributions/modules/ffmpeg_converter/ffmpeg_converter.install Locally Modified (Based On 1.2) @@ -22,6 +22,7 @@ 'minimum_version' => 1, 'current_version' => 1, ), + 'load callback' => 'ffmpeg_converter_preset_load', // Use this function to load presets. ), 'fields' => array( 'name' => array( Index: contributions/modules/ffmpeg_converter/ffmpeg_converter.module --- contributions/modules/ffmpeg_converter/ffmpeg_converter.module Base (1.43) +++ contributions/modules/ffmpeg_converter/ffmpeg_converter.module Locally Modified (Based On 1.43) @@ -8,71 +8,25 @@ * This module lets you setup automatic media file conversions with FFmpeg. */ +/** + * Minimum CTools version needed. + */ +define('FFMPEG_CONVERTER_REQUIRED_CTOOLS_API', '1.7'); + /** * Implementation of hook_menu(). */ function ffmpeg_converter_menu() { $items = array(); - $items['admin/settings/ffmpeg_converter'] = array( - 'title' => 'FFmpeg Converter', - 'description' => t('Setup automatic media file conversion.'), - 'page callback' => 'ffmpeg_converter_admin_presets', - 'access arguments' => array('administer ffmpeg wrapper'), - 'file' => 'ffmpeg_converter.admin.inc', - ); - $items['admin/settings/ffmpeg_converter/presets'] = array( - 'title' => 'Presets', - 'type' => MENU_DEFAULT_LOCAL_TASK, - 'weight' => -10, - ); - $items['admin/settings/ffmpeg_converter/presets/add'] = array( - 'title' => 'Create new preset', - 'file' => 'ffmpeg_converter.admin.inc', - 'page callback' => 'drupal_get_form', - 'page arguments' => array('ffmpeg_converter_admin_preset'), - 'access arguments' => array('administer ffmpeg wrapper'), - 'type' => MENU_CALLBACK, - ); - $items['admin/settings/ffmpeg_converter/presets/edit/%ffmpeg_converter_preset'] = array( - 'title' => 'Preset settings', - 'file' => 'ffmpeg_converter.admin.inc', - 'page callback' => 'drupal_get_form', - 'page arguments' => array('ffmpeg_converter_admin_preset', 5), - 'access arguments' => array('administer ffmpeg wrapper'), - 'type' => MENU_CALLBACK, - ); - $items['admin/settings/ffmpeg_converter/presets/delete/%ffmpeg_converter_preset'] = array( - 'title' => 'Delete preset', - 'file' => 'ffmpeg_converter.admin.inc', - 'page callback' => 'drupal_get_form', - 'page arguments' => array('ffmpeg_converter_admin_preset_delete', 5), - 'access arguments' => array('administer ffmpeg wrapper'), - 'type' => MENU_CALLBACK, - ); - $items['admin/settings/ffmpeg_converter/presets/export/%ffmpeg_converter_preset'] = array( - 'title' => 'Export preset', - 'file' => 'ffmpeg_converter.admin.inc', - 'page callback' => 'drupal_get_form', - 'page arguments' => array('ffmpeg_converter_admin_preset_export', 5), - 'access arguments' => array('administer ffmpeg wrapper'), - 'type' => MENU_CALLBACK, - ); - $items['admin/settings/ffmpeg_converter/presets/import'] = array( - 'title' => 'Import preset', - 'file' => 'ffmpeg_converter.admin.inc', - 'page callback' => 'drupal_get_form', - 'page arguments' => array('ffmpeg_converter_admin_preset_import'), - 'access arguments' => array('administer ffmpeg wrapper'), - 'type' => MENU_CALLBACK, - ); - $items['admin/settings/ffmpeg_converter/debug'] = array( + $items['admin/build/ffmpeg_converter/debug'] = array( 'title' => 'Debugging', 'type' => MENU_LOCAL_TASK, 'page callback' => 'drupal_get_form', 'page arguments' => array('ffmpeg_converter_admin_debug'), 'access arguments' => array('administer ffmpeg wrapper'), 'file' => 'ffmpeg_converter.admin.inc', + 'weight' => 9, ); return $items; @@ -80,63 +34,55 @@ /** - * Load one preset or all presets. + * Load a preset. * * @param $name - * This presets's name value. Optional. + * This presets's name value. * @return - * If $name is specified, an array of options for the specific preset. - * If not, a nested array containing options for all presets. + * An array of options for the specified preset. */ -function ffmpeg_converter_preset_load($name = null) { +function ffmpeg_converter_preset_load($name) { - // Use Ctools export API to fetch all presets from the DB as well as code. + // Use Ctools export API to fetch this preset. ctools_include('export'); - if ($name) { - $presets = ctools_export_load_object('ffmpeg_converter_preset', 'names', array($name)); + $result = ctools_export_load_object('ffmpeg_converter_preset', 'names', array($name)); + if (isset($result[$name])) { + // Sanitize the preset data. + ffmpeg_converter_preset_sanitize($result[$name]); + return $result[$name]; } - else { - $presets = ctools_export_load_object('ffmpeg_converter_preset'); } - foreach ($presets as &$preset) { + + +/** + * Sanitize a FFmpeg Converter preset. + * + * @param $preset + * A preset object. + */ +function ffmpeg_converter_preset_sanitize(&$preset) { $preset->ffmpeg_wrapper = empty($preset->ffmpeg_wrapper) ? array() : $preset->ffmpeg_wrapper; $preset->ffmpeg_wrapper = is_array($preset->ffmpeg_wrapper) ? $preset->ffmpeg_wrapper : unserialize($preset->ffmpeg_wrapper); - // Flatten the ffmpeg_wrapper array of options. - $options = array(); - foreach ($preset->ffmpeg_wrapper as $opt_key => $option) { - if (is_array($option)) { - $options = array_merge($options, $option); - } - else { - $options[$opt_key] = $option; - } - } - $preset->ffmpeg_wrapper = $options; - } - if ($name) { - return isset($presets[$name]) ? $presets[$name] : FALSE; + // Older presets may be stored as nested arrays. + $preset->ffmpeg_wrapper = _ffmpeg_converter_array_flatten($preset->ffmpeg_wrapper); } - else { - return $presets; - } -} /** - * Delete a preset. - * - * @param $preset - * A preset object, or a preset's pid value. + * Implementation of hook_ctools_plugin_directory(). */ -function ffmpeg_converter_preset_delete($preset) { - $pid = is_object($preset) ? $preset->pid : $preset; - db_query('DELETE FROM {ffmpeg_converter_preset} WHERE pid=%d', $pid); +function ffmpeg_converter_ctools_plugin_directory($module, $type) { + // Safety: go away if CTools is not at an appropriate version. + if (!module_invoke('ctools', 'api_version', FFMPEG_CONVERTER_REQUIRED_CTOOLS_API)) { + return; + } - // Clear the Ctools export API cache. - ctools_include('export'); - ctools_export_load_object_reset('ffmpeg_converter_preset'); + // Load the export_ui plugin. + if ($type =='export_ui') { + return 'plugins/export_ui'; } +} /** @@ -206,13 +152,14 @@ /** - * Get FFmpeg presets. + * List all FFmpeg presets. * * @return * A keyed array of preset names. */ function ffmpeg_converter_presets() { - $presets = ffmpeg_converter_preset_load(); + ctools_include('export'); + $presets = ctools_export_load_object('ffmpeg_converter_preset'); $preset_names = array(); foreach ($presets as $key => $preset) { $preset_names[$key] = $preset->description; @@ -236,11 +183,11 @@ * TRUE if file should be converted, FALSE otherwise. */ function ffmpeg_converter_check_file($filename, $preset_key, $process_same_format = TRUE) { - $presets = ffmpeg_converter_preset_load(); + $preset = ffmpeg_converter_preset_load($preset_key); $extension = array_pop(explode('.', $filename)); // Check if file type differs from destination type. - if ($presets[$preset_key]->ffmpeg_wrapper['ffmpeg_output_type'] != $extension) { + if ($preset->ffmpeg_wrapper['ffmpeg_output_type'] != $extension) { return TRUE; } // Check if file should be converted regardless of format. @@ -643,3 +590,29 @@ return ($return == 'size') ? $size : $pad; } } + + +/** + * Helper function to flatten nested arrays, while maintaining keys. + * + * @param $array + * Input array. + * @param $f + * Array argument used internally for recursive calls. + * @return + * Flattened array. + */ +function _ffmpeg_converter_array_flatten($array, $f = array()){ + if (!$array || !is_array($array)) { + return ''; + } + foreach($array as $k => $v) { + if (is_array($v)) { + $f = _ffmpeg_converter_array_flatten($v, $f); + } + else { + $f[$k] = $v; + } + } + return $f; +} Index: contributions/modules/ffmpeg_converter/ffmpeg_converter.rules.inc --- contributions/modules/ffmpeg_converter/ffmpeg_converter.rules.inc Base (1.1) +++ contributions/modules/ffmpeg_converter/ffmpeg_converter.rules.inc Locally Modified (Based On 1.1) @@ -78,7 +78,7 @@ * Help text for the configuration form. */ function ffmpeg_converter_action_queue_filefield_help() { - return t('Please specify which field contains the source file(s) and which field should recieve the converted file(s). Both of these fields need to exist in the same node type. Also choose the FFmpeg Converter preset you want to use for this conversion.', array('@url' => url('admin/settings/ffmpeg_converter'))); + return t('Please specify which field contains the source file(s) and which field should recieve the converted file(s). Both of these fields need to exist in the same node type. Also choose the FFmpeg Converter preset you want to use for this conversion.', array('@url' => url('admin/build/ffmpeg_converter'))); } /** Index: contributions/modules/ffmpeg_converter/plugins/export_ui/ffmpeg_converter_ctools_export_ui.inc --- contributions/modules/ffmpeg_converter/plugins/export_ui/ffmpeg_converter_ctools_export_ui.inc No Base Revision +++ contributions/modules/ffmpeg_converter/plugins/export_ui/ffmpeg_converter_ctools_export_ui.inc Locally New @@ -0,0 +1,63 @@ + 'ffmpeg_converter_preset', + 'access' => 'administer ffmpeg wrapper', + 'menu' => array( + 'menu item' => 'ffmpeg_converter', + 'menu title' => 'FFmpeg Converter', + 'menu description' => 'Administer FFmpeg Converter presets.', + ), + + 'title singular' => t('preset'), + 'title plural' => t('presets'), + 'title singular proper' => t('FFmpeg Converter preset'), + 'title plural proper' => t('FFmpeg Converter presets'), + + 'handler' => array( + 'class' => 'ffmpeg_converter_presets_ui', + 'parent' => 'ctools_export_ui', + ), + + 'form' => array( + 'settings' => 'ffmpeg_converter_ctools_export_ui_form', + 'submit' => 'ffmpeg_converter_ctools_export_ui_form_submit', + ), +); + +/** + * Define the preset add/edit form. + */ +function ffmpeg_converter_ctools_export_ui_form(&$form, &$form_state) { + $preset = $form_state['item']; + + $form['description'] = array( + '#type' => 'textfield', + '#title' => t('Description'), + '#description' => t('The human readable name or description of this preset.'), + '#default_value' => $preset->description, + '#required' => true, + ); + + // Add FFmpeg Wrapper's configuration form. + $form += ffmpeg_wrapper_configuration_form($preset->ffmpeg_wrapper, "edit-ffmpeg-converter-presets-$preset->name-ffmpeg-wrapper-"); + $form['ffmpeg_wrapper']['#collapsible'] = true; + $form['ffmpeg_wrapper']['#tree'] = true; +} + +/** + * Submit handler for the preset edit form. + */ +function ffmpeg_converter_ctools_export_ui_form_submit($form, &$form_state) { + // Flatten and serialize the ffmpeg_wrapper settings array. + $form_state['values']['ffmpeg_wrapper'] = serialize(_ffmpeg_converter_array_flatten($form_state['values']['ffmpeg_wrapper'])); +} Index: contributions/modules/ffmpeg_converter/plugins/export_ui/ffmpeg_converter_presets_ui.class.php --- contributions/modules/ffmpeg_converter/plugins/export_ui/ffmpeg_converter_presets_ui.class.php No Base Revision +++ contributions/modules/ffmpeg_converter/plugins/export_ui/ffmpeg_converter_presets_ui.class.php Locally New @@ -0,0 +1,34 @@ +Rules using the "Queue file field for conversion" action, which lets you create rules that convert all media files that are uploaded to a certain file field automatically.', array('@rules', url('admin/rules/trigger'))); + } + else { + $help .= ' ' . t('If you install and enable the Rules, Job Queue and FileField modules, your presets will appear on rule configuration pages, which allows you to have all media files that are uploaded to a certain file field processed automatically.'); + } + $help .= ' ' . t('Other modules may also make this conversion functionality available in their own specific contexts.'); + $help = '

' . $help . '

'; + + $form['#prefix'] .= $help; + + } + +}