function views_trim_text

Same name in other branches
  1. 6.x-3.x views.module \views_trim_text()

Trim the field down to the specified length.

Parameters

array $alter:

  • max_length: Maximum length of the string, the rest gets truncated.
  • word_boundary: Trim only on a word boundary.
  • ellipsis: Show an ellipsis (...) at the end of the trimmed string.
  • html: Take sure that the html is correct.

string $value: The string which should be trimmed.

2 calls to views_trim_text()
ViewsModuleTest::testViewsTrimText in tests/views_module.test
Tests views_trim_text().
views_handler_field::render_trim_text in handlers/views_handler_field.inc
Trim the field down to the specified length.

File

./views.module, line 2703

Code

function views_trim_text($alter, $value) {
    if (drupal_strlen($value) > $alter['max_length']) {
        $value = drupal_substr($value, 0, $alter['max_length']);
        // @todo Replace this with cleanstring of CTools.
        if (!empty($alter['word_boundary'])) {
            $regex = "(.*)\\b.+";
            if (function_exists('mb_ereg')) {
                mb_regex_encoding('UTF-8');
                $found = mb_ereg($regex, $value, $matches);
            }
            else {
                $found = preg_match("/{$regex}/us", $value, $matches);
            }
            if ($found) {
                $value = $matches[1];
            }
        }
        // Remove scraps of HTML entities from the end of a strings.
        $value = rtrim(preg_replace('/(?:<(?!.+>)|&(?!.+;)).*$/us', '', $value));
        if (!empty($alter['ellipsis'])) {
            $value .= t('...');
        }
    }
    if (!empty($alter['html'])) {
        $value = _filter_htmlcorrector($value);
    }
    return $value;
}