function views_trim_text in Views (for Drupal 7) 8.3
Same name and namespace in other branches
- 6.3 views.module \views_trim_text()
- 6.2 views.module \views_trim_text()
- 7.3 views.module \views_trim_text()
Trim the field down to the specified length.
Parameters
$alter:
- max_length: Maximum lenght 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.
$value: The string which should be trimmed.
2 calls to views_trim_text()
- FieldPluginBase::render_trim_text in lib/
Drupal/ views/ Plugin/ views/ field/ FieldPluginBase.php - Trim the field down to the specified length.
- ModuleTest::test_views_trim_text in lib/
Drupal/ views/ Tests/ ModuleTest.php
File
- ./
views.module, line 2269 - Primarily Drupal hooks and global API functions to manipulate views.
Code
function views_trim_text($alter, $value) {
if (drupal_strlen($value) > $alter['max_length']) {
$value = drupal_substr($value, 0, $alter['max_length']);
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'])) {
// @todo: What about changing this to a real ellipsis?
$value .= t('...');
}
}
if (!empty($alter['html'])) {
$value = _filter_htmlcorrector($value);
}
return $value;
}