function masonry_formatter_field_formatter_settings_form_alter in Masonry API 7
Implements hook_field_formatter_settings_form_alter().
File
- masonry_formatter/
masonry_formatter.module, line 28 - Allows multi-value fields to be displayed in a jQuery Masonry grid.
Code
function masonry_formatter_field_formatter_settings_form_alter(array &$settings_form, array $context) {
if (masonry_formatter_is_supported($context)) {
$settings = $context['instance']['display'][$context['view_mode']]['settings'];
// Add options for configuring Masonry
$settings_form['masonry'] = array(
'#type' => 'checkbox',
'#title' => t('Enable Masonry'),
'#description' => t("Displays items in a grid using the jQuery Masonry plugin."),
'#default_value' => $settings['masonry'],
);
if (($library = libraries_detect('masonry')) && !empty($library['installed'])) {
masonry_options_form($settings_form, $settings);
$settings_form['masonry_width_unit']['#states'] = array(
'visible' => array(
'input.form-checkbox[name$="[masonry]"]' => array(
'checked' => TRUE,
),
),
);
$settings_form['masonry_width_unit']['#prefix'] = '<div class="masonry-options" style="padding-left: 1.5em;">';
$settings_form['masonry_width']['#states'] = array(
'visible' => array(
'input.form-checkbox[name$="[masonry]"]' => array(
'checked' => TRUE,
),
),
);
$settings_form['masonry_animated']['#states'] = array(
'visible' => array(
'input.form-checkbox[name$="[masonry]"]' => array(
'checked' => TRUE,
),
),
);
$settings_form['masonry_animated_duration']['#states'] = array(
'visible' => array(
'input.form-checkbox[name$="[masonry]"]' => array(
'checked' => TRUE,
),
'input.form-checkbox[name$="[masonry_animated]"]' => array(
'checked' => TRUE,
),
),
);
$settings_form['masonry_animated_duration']['#prefix'] = '<div class="masonry-options animation" style="padding-left: 1.5em;">';
$settings_form['masonry_animated_duration']['#suffix'] = '</div>';
$settings_form['masonry_resizable']['#states'] = array(
'visible' => array(
'input.form-checkbox[name$="[masonry]"]' => array(
'checked' => TRUE,
),
),
);
$settings_form['masonry_center']['#states'] = array(
'visible' => array(
'input.form-checkbox[name$="[masonry]"]' => array(
'checked' => TRUE,
),
),
);
$settings_form['masonry_gutter']['#states'] = array(
'visible' => array(
'input.form-checkbox[name$="[masonry]"]' => array(
'checked' => TRUE,
),
),
);
$settings_form['masonry_rtl']['#states'] = array(
'visible' => array(
'input.form-checkbox[name$="[masonry]"]' => array(
'checked' => TRUE,
),
),
);
$settings_form['masonry_rtl']['#suffix'] = '</div>';
}
else {
// jQuery Masonry plugin not installed
$settings_form['masonry']['#disabled'] = TRUE;
$settings_form['masonry']['#description'] = t('This field has been disabled as the jQuery Masonry plugin is not properly installed.');
}
}
}