Formats a spectrum color field widget.

1 theme call to theme_color_field_spectrum_widget()
color_field_element_info in ./color_field.field.inc
Implements hook_element_info().

File

./color_field.theme.inc, line 11

Code

function theme_color_field_spectrum_widget($vars) {
    $element = $vars['element'];
    $field_settings = $element['#field_settings'];
    $instance_settings = $element['#instance_settings'];
    // Javascript settings.
    $settings = array();
    $settings['id'] = $element['rgb']['#id'];
    $settings['show_input'] = $instance_settings['show_input'] ? TRUE : FALSE;
    $settings['show_palette'] = $instance_settings['show_palette'] ? TRUE : FALSE;
    $settings['show_palette_only'] = $instance_settings['show_palette_only'] ? TRUE : FALSE;
    $settings['show_buttons'] = $instance_settings['show_buttons'] ? TRUE : FALSE;
    $settings['allow_empty'] = $instance_settings['allow_empty'] ? TRUE : FALSE;
    $default_colors = $instance_settings['palette'];
    preg_match_all("/#[0-9a-fA-F]{6}/", $default_colors, $default_colors, PREG_SET_ORDER);
    if (!empty($default_colors)) {
        foreach ($default_colors as $color) {
            $settings['palette'][] = $color[0];
        }
    }
    // Enable or not opacity capture.
    if ($field_settings['opacity']) {
        $settings['show_alpha'] = TRUE;
        // Hide the opacity field.
        // @todo find a better way.
        $element['opacity']['#attributes']['class'] = array(
            'element-invisible',
        );
        unset($element['opacity']['#title']);
        unset($element['opacity']['#description']);
    }
    else {
        $settings['show_alpha'] = FALSE;
    }
    // Attach javascript and style.
    $element['rgb']['#attached'] = array(
        // Add Spectrum color picker.
'library' => array(
            array(
                'color_field',
                'bgrins-spectrum',
            ),
        ),
        'js' => array(
            drupal_get_path('module', 'color_field') . '/color_field_spectrum_color_picker/color_field_spectrum_color_picker.jquery.js',
            array(
                'data' => array(
                    'color_field_spectrum' => array(
                        '#' . $element['rgb']['#id'] => $settings,
                    ),
                ),
                'type' => 'setting',
            ),
        ),
    );
    $output = '';
    $output .= '<div class="link-field-subrow clearfix">';
    $output .= '<div class="link-field-title color-field-column">' . drupal_render($element['rgb']) . '</div>';
    if ($field_settings['opacity']) {
        $output .= '<div class="link-field-title color-field-column">' . drupal_render($element['opacity']) . '</div>';
    }
    $output .= '</div>';
    $output .= drupal_render_children($element);
    return $output;
}