You are here

truncate_text.inc in Feeds Tamper 6

Same filename and directory in other branches
  1. 7 plugins/truncate_text.inc

File

plugins/truncate_text.inc
View source
<?php

/**
 * @file
 * Truncate text to a specified length.
 */
$plugin = array(
  'form' => 'feeds_tamper_truncate_text_form',
  'callback' => 'feeds_tamper_truncate_text_callback',
  'validate' => 'feeds_tamper_truncate_text_validate',
  'name' => 'Truncate',
  'multi' => 'loop',
  'category' => 'Text',
);
function feeds_tamper_truncate_text_form($importer, $element_key, $settings) {
  $form = array();
  $form['num_char'] = array(
    '#type' => 'textfield',
    '#title' => t('Number of characters'),
    '#default_value' => isset($settings['num_char']) ? $settings['num_char'] : '',
    '#description' => t('The number of characters the text will be limited to.'),
  );
  $form['ellipses'] = array(
    '#type' => 'checkbox',
    '#title' => t('Ellipses'),
    '#default_value' => isset($settings['ellipses']) ? $settings['ellipses'] : FALSE,
    '#description' => t('Add ellipses (...) to the end of the truncated text.'),
  );
  return $form;
}
function feeds_tamper_truncate_text_validate($settings) {
  $settings['num_char'] = trim($settings['num_char']);
  if (empty($settings['num_char']) || (string) $settings['num_char'] !== (string) (int) $settings['num_char']) {
    form_set_error('settings][num_char', t('Needs to be an integer.'));
  }
}
function feeds_tamper_truncate_text_callback($source, $item_key, $element_key, &$field, $settings) {
  $field = truncate_utf8($field, $settings['num_char'], FALSE, $settings['ellipses']);
}