public function TwigText::truncate in Bamboo Twig 8.5
Same name and namespace in other branches
- 8.2 bamboo_twig_extensions/src/TwigExtension/TwigText.php \Drupal\bamboo_twig_extensions\TwigExtension\TwigText::truncate()
- 8.3 bamboo_twig_extensions/src/TwigExtension/TwigText.php \Drupal\bamboo_twig_extensions\TwigExtension\TwigText::truncate()
- 8.4 bamboo_twig_extensions/src/TwigExtension/TwigText.php \Drupal\bamboo_twig_extensions\TwigExtension\TwigText::truncate()
Truncate a string.
Can't use the Twig filter callback cause the truncate function is actually declared as a global function and not method of Twig_Extensions_Extension_Text.
Parameters
\Drupal\Core\Template\TwigEnvironment $env: A Twig_Environment instance.
string $string: The input string. Must be one character or longer.
int $length: The string returned will contain at most length chars from beginning.
bool $preserve: Preserving whole words or not.
string $separator: The ellipsis to use.
Return value
string|bool Returns the extracted part of string; or FALSE on failure, or an empty string.
File
- bamboo_twig_extensions/
src/ TwigExtension/ TwigText.php, line 53
Class
- TwigText
- Provides bridge for Text functions and filters.
Namespace
Drupal\bamboo_twig_extensions\TwigExtensionCode
public function truncate(TwigEnvironment $env, $string, $length = 30, $preserve = FALSE, $separator = '...') {
if (mb_strlen($string, $env
->getCharset()) > $length) {
if ($preserve) {
// If breakpoint is on the last word, return the value w/o separator.
$breakpoint = mb_strpos($string, ' ', $length, $env
->getCharset());
if (FALSE === $breakpoint) {
return $string;
}
$length = $breakpoint;
}
return rtrim(mb_substr($string, 0, $length, $env
->getCharset())) . $separator;
}
return $string;
}