'default', 'false' => 'false', 'true' => 'true', 'fit' => 'fit', 'none' => 'none', ); $options['repeat'] = array('default' => 'default', 'false' => 'false', 'true' => 'true', 'list' => 'list', ); $options['linktarget'] = array('default' => 'default', '_self' => '_self', '_blank' => '_blank', ); $options['transition'] = array('default' => 'default', 'fade' => 'fade', 'bgfade' => 'bgfade', 'blocks' => 'blocks', 'bubbles' => 'bubbles', 'circles' => 'circles', 'flash' => 'flash', 'fluids' => 'fluids', 'lines' => 'lines', 'slowfade' => 'slowfade', 'random' => 'random', ); $options['bool'] = array('default' => 'default', 'true' => 'true', 'false' => 'false'); return $options; } /** * Returns a form definition for use by the profile system. * * @return * A form definition array */ function swftools_imagerotator_profile_form($profile = '') { // Retrieve default or saved settings $saved_settings = _swftools_imagerotator_settings($profile, SWFTOOLS_FULL_SETTINGS); // Retrieve options needed to populate select elements $options = _swftools_imagerotator_options(); // See if colorpicker 2 is loaded $colorfield = function_exists('colorpicker_2_or_later') ? 'colorpicker_textfield' : 'textfield'; // Initialise tree for these settings $form['swftools_imagerotator']['#tree'] = TRUE; $form['swftools_imagerotator']['basic'] = array( '#type' => 'fieldset', '#title' => t('Basic'), '#collapsible' => TRUE, '#collapsed' => TRUE, ); $form['swftools_imagerotator']['basic']['height'] = array( '#type' => 'textfield', '#default_value' => $saved_settings['basic']['height'], '#size' => 8, '#maxlength' => 5, '#title' => t('Height'), '#description' => t('Leave blank for default. (height)'), ); $form['swftools_imagerotator']['basic']['width'] = array( '#type' => 'textfield', '#default_value' => $saved_settings['basic']['width'], '#size' => 8, '#maxlength' => 5, '#title' => t('Width'), '#description' => t('Leave blank for default. (width)'), ); $form['swftools_imagerotator']['color'] = array( '#type' => 'fieldset', '#title' => t('Color'), '#collapsible' => TRUE, '#collapsed' => TRUE, ); $form['swftools_imagerotator']['color']['backcolor'] = array( '#type' => $colorfield, '#default_value' => $saved_settings['color']['backcolor'], '#size' => 8, '#maxlength' => 7, '#title' => t('Background color'), '#description' => t('Enter a hex value eg. for white enter #FFFFFF. (backcolor)'), ); $form['swftools_imagerotator']['color']['frontcolor'] = array( '#type' => $colorfield, '#default_value' => $saved_settings['color']['frontcolor'], '#size' => 8, '#maxlength' => 7, '#title' => t('Text color'), '#description' => t('Enter a hex value eg. for white enter #FFFFFF. (frontcolor)'), ); $form['swftools_imagerotator']['color']['lightcolor'] = array( '#type' => $colorfield, '#default_value' => $saved_settings['color']['lightcolor'], '#size' => 8, '#maxlength' => 7, '#title' => t('Rollover color'), '#description' => t('Enter a hex value eg. for white enter #FFFFFF. (lightcolor)'), ); $form['swftools_imagerotator']['appearance'] = array( '#type' => 'fieldset', '#title' => t('Appearance'), '#collapsible' => TRUE, '#collapsed' => TRUE, ); $form['swftools_imagerotator']['appearance']['logo'] = array( '#type' => 'textfield', '#default_value' => $saved_settings['appearance']['logo'], '#title' => t('Logo URL'), '#description' => t('Full url to logo for a watermark, use PNG files for best results. (logo)'), ); $form['swftools_imagerotator']['appearance']['overstretch'] = array( '#type' => 'select', '#default_value' => $saved_settings['appearance']['overstretch'], '#title' => t('Overstretch'), '#options' => $options['overstretch'], '#description' => t('Defines how to stretch images to fit the display. (overstretch)'), ); $form['swftools_imagerotator']['appearance']['showicons'] = array( '#type' => 'select', '#options' => $options['bool'], '#default_value' => $saved_settings['appearance']['showicons'], '#title' => t('Show icons'), '#description' => t('Show status icons in display. (showicons)'), ); $form['swftools_imagerotator']['appearance']['shownavigation'] = array( '#type' => 'select', '#default_value' => $saved_settings['appearance']['shownavigation'], '#options' => $options['bool'], '#title' => t('Show navigation'), '#description' => t('If false then all navigation controls are hidden. (shownavigation)'), ); $form['swftools_imagerotator']['appearance']['transition'] = array( '#type' => 'select', '#default_value' => $saved_settings['appearance']['transition'], '#options' => $options['transition'], '#title' => t('Transition effect'), '#description' => t('The way the photos change from one to another. (transition)'), ); $form['swftools_imagerotator']['playback'] = array( '#type' => 'fieldset', '#title' => t('Playback'), '#collapsible' => TRUE, '#collapsed' => TRUE, ); $form['swftools_imagerotator']['playback']['rotatetime'] = array( '#type' => 'textfield', '#default_value' => $saved_settings['playback']['rotatetime'], '#size' => 5, '#maxlength' => 3, '#title' => t('Rotate time'), '#description' => t('Number of seconds between image rotations. (rotatetime)'), ); $form['swftools_imagerotator']['playback']['shuffle'] = array( '#type' => 'select', '#options' => $options['bool'], '#default_value' => $saved_settings['playback']['shuffle'], '#title' => t('Shuffle'), '#description' => t('Shuffle media randomly. (shuffle)'), ); $form['swftools_imagerotator']['interaction'] = array( '#type' => 'fieldset', '#title' => t('Interaction'), '#collapsible' => TRUE, '#collapsed' => TRUE, ); $form['swftools_imagerotator']['interaction']['enablejs'] = array( '#type' => 'select', '#options' => $options['bool'], '#default_value' => $saved_settings['interaction']['enablejs'], '#title' => t('Enable JavaScript'), '#description' => t('Enable JavaScript interaction with the flash player. (enablejs)'), ); $form['swftools_imagerotator']['interaction']['link'] = array( '#type' => 'textfield', '#default_value' => $saved_settings['interaction']['link'], '#title' => t('Link URL'), '#description' => t('Web address linked to logo watermark. (link)'), ); $form['swftools_imagerotator']['interaction']['linkfromdisplay'] = array( '#type' => 'select', '#options' => $options['bool'], '#default_value' => $saved_settings['interaction']['linkfromdisplay'], '#title' => t('Link from display'), '#description' => t('Link "Link URL" but with the whole display as the click area. (linkfromdisplay)'), ); $form['swftools_imagerotator']['interaction']['linktarget'] = array( '#type' => 'select', '#default_value' => $saved_settings['interaction']['linktarget'], '#options' => $options['linktarget'], '#title' => t('Link target'), '#description' => t('Target of "Link URL". (linktarget)'), ); // If imagecache is available show options, otherwise just store the current values if (module_exists('imagecache')) { $form['swftools_imagerotator']['imagecache'] = array( '#type' => 'fieldset', '#title' => t('Image cache'), '#collapsible' => TRUE, '#collapsed' => TRUE, ); $options = array( SWFTOOLS_UNDEFINED => t('None'), ); foreach (imagecache_presets() as $preset) { $options[$preset['presetname']] = $preset['presetname']; }; $form['swftools_imagerotator']['imagecache']['imagecache'] = array( '#type' => 'select', '#title' => t('Image cache'), '#default_value' => $saved_settings['imagecache']['imagecache'], '#options' => $options, '#description' => t('Select the image cache preset that should be applied to images used in this player.'), ); } else { $form['swftools_imagerotator']['imagecache']['imagecache'] = array( '#type' => 'value', '#value' => $saved_settings['imagecache']['imagecache'], ); } // Add custom form handler to strip out blank and default settings $form['#submit'][] = 'swftools_imagerotator_admin_form_submit'; // Return the form return $form; } /** * Submit handler to filter out form settings that are either empty strings or 'default' */ function swftools_imagerotator_admin_form_submit($form, &$form_state) { // Keep only those items that actually have a value foreach($form_state['values']['swftools_imagerotator'] as $key => $settings) { if($temp = array_diff($settings, array('', 'default'))) { $filtered_settings[$key] = $temp; } } // Replace full suite of values with the reduced set we created $form_state['values']['swftools_imagerotator'] = $filtered_settings; }