function smart_trim_field_formatter_settings_form in Smart Trim 7
Implements hook_field_formatter_settings_form().
File
- ./
smart_trim.module, line 197 - Module functionality.
Code
function smart_trim_field_formatter_settings_form($field, $instance, $view_mode, $form, &$form_state) {
$settings = $instance['display'][$view_mode]['settings'];
$element = array();
$element['trim_link'] = array(
'#title' => t('Link text to'),
'#type' => 'select',
'#default_value' => $settings['trim_link'],
'#description' => t('Linking text to content will strip tags entirely from the trimmed text.'),
'#options' => array(
0 => t('Nothing'),
1 => t('Content'),
),
);
$element['trim_length'] = array(
'#title' => t('Trim length'),
'#type' => 'textfield',
'#size' => 10,
'#default_value' => $settings['trim_length'],
// Needs form.inc?
'#element_validate' => array(
'_element_validate_integer_positive',
),
'#required' => TRUE,
);
$element['trim_type'] = array(
'#title' => t('Trim units'),
'#type' => 'select',
'#options' => array(
'chars' => t("Characters"),
'words' => t("Words"),
),
'#default_value' => $settings['trim_type'],
);
$element['trim_suffix'] = array(
'#title' => t('Suffix'),
'#type' => 'textfield',
'#size' => 10,
'#default_value' => $settings['trim_suffix'],
);
$element['more_link'] = array(
'#title' => t('Display more link?'),
'#type' => 'select',
'#options' => array(
SMART_TRIM_NEVER => t('Never'),
SMART_TRIM_ALWAYS => t('Always'),
SMART_TRIM_IFNEEDED => t('If needed (when using a summary or trimmed text)'),
),
'#default_value' => $settings['more_link'],
'#description' => t('Displays a link to the entity (if one exists)'),
);
$element['more_text'] = array(
'#title' => t('More link text'),
'#type' => 'textfield',
'#size' => 20,
'#default_value' => $settings['more_text'],
'#description' => t('If displaying more link, enter the text for the link.'),
'#states' => array(
// Hide this field when $element['more_link'] is set to "Never".
// @see States Api : drupal_process_states()
'invisible' => array(
':input[name="fields[body][settings_edit_form][settings][more_link]"]' => array(
'value' => SMART_TRIM_NEVER,
),
),
),
);
if ($field['type'] == 'text_with_summary') {
$element['summary_handler'] = array(
'#title' => t('Summary'),
'#type' => 'select',
'#options' => array(
'full' => t("Use summary if present, and do not trim"),
'trim' => t("Use summary if present, honor trim settings"),
'ignore' => t("Do not use summary"),
),
'#default_value' => $settings['summary_handler'],
);
}
$element['trim_options'] = array(
'#title' => t('Additional options'),
'#type' => 'checkboxes',
'#options' => array(
'text' => t('Strip HTML'),
),
'#default_value' => empty($settings['trim_options']) ? array() : $settings['trim_options'],
);
$element['trim_preserve_tags'] = array(
'#title' => t('Tags to preserve'),
'#description' => t('Which tags to preserve if "Strip HTML" is chosen above. Format as "<p><a>" to preserve p and a tags.'),
'#type' => 'textfield',
'#default_value' => $settings['trim_preserve_tags'],
);
return $element;
}