| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 | 
							- <?php
 - 
 - /**
 -  * This file is part of Twig.
 -  *
 -  * (c) 2009 Fabien Potencier
 -  *
 -  * For the full copyright and license information, please view the LICENSE
 -  * file that was distributed with this source code.
 -  *
 -  * @author Henrik Bjornskov <hb@peytz.dk>
 -  * @package Twig
 -  * @subpackage Twig-extensions
 -  */
 - class Twig_Extensions_Extension_Text extends Twig_Extension
 - {
 -     /**
 -      * Returns a list of filters.
 -      *
 -      * @return array
 -      */
 -     public function getFilters()
 -     {
 -         $filters = array(
 -             'truncate' => new Twig_Filter_Function('twig_truncate_filter', array('needs_environment' => true)),
 -             'wordwrap' => new Twig_Filter_Function('twig_wordwrap_filter', array('needs_environment' => true)),
 -         );
 - 
 -         if (version_compare(Twig_Environment::VERSION, '1.5.0-DEV', '<')) {
 -             $filters['nl2br'] = new Twig_Filter_Function('twig_nl2br_filter', array('pre_escape' => 'html', 'is_safe' => array('html')));
 -         }
 - 
 -         return $filters;
 -     }
 - 
 -     /**
 -      * Name of this extension
 -      *
 -      * @return string
 -      */
 -     public function getName()
 -     {
 -         return 'Text';
 -     }
 - }
 - 
 - function twig_nl2br_filter($value, $sep = '<br />')
 - {
 -     return str_replace("\n", $sep."\n", $value);
 - }
 - 
 - if (function_exists('mb_get_info')) {
 -     function twig_truncate_filter(Twig_Environment $env, $value, $length = 30, $preserve = false, $separator = '...')
 -     {
 -         if (mb_strlen($value, $env->getCharset()) > $length) {
 -             if ($preserve) {
 -                 if (false !== ($breakpoint = mb_strpos($value, ' ', $length, $env->getCharset()))) {
 -                     $length = $breakpoint;
 -                 }
 -             }
 - 
 -             return mb_substr($value, 0, $length, $env->getCharset()) . $separator;
 -         }
 - 
 -         return $value;
 -     }
 - 
 -     function twig_wordwrap_filter(Twig_Environment $env, $value, $length = 80, $separator = "\n", $preserve = false)
 -     {
 -         $sentences = array();
 - 
 -         $previous = mb_regex_encoding();
 -         mb_regex_encoding($env->getCharset());
 - 
 -         $pieces = mb_split($separator, $value);
 -         mb_regex_encoding($previous);
 - 
 -         foreach ($pieces as $piece) {
 -             while(!$preserve && mb_strlen($piece, $env->getCharset()) > $length) {
 -                 $sentences[] = mb_substr($piece, 0, $length, $env->getCharset());
 -                 $piece = mb_substr($piece, $length, 2048, $env->getCharset());
 -             }
 - 
 -             $sentences[] = $piece;
 -         }
 - 
 -         return implode($separator, $sentences);
 -     }
 - } else {
 -     function twig_truncate_filter(Twig_Environment $env, $value, $length = 30, $preserve = false, $separator = '...')
 -     {
 -         if (strlen($value) > $length) {
 -             if ($preserve) {
 -                 if (false !== ($breakpoint = strpos($value, ' ', $length))) {
 -                     $length = $breakpoint;
 -                 }
 -             }
 - 
 -             return substr($value, 0, $length) . $separator;
 -         }
 - 
 -         return $value;
 -     }
 - 
 -     function twig_wordwrap_filter(Twig_Environment $env, $value, $length = 80, $separator = "\n", $preserve = false)
 -     {
 -         return wordwrap($value, $length, $separator, !$preserve);
 -     }
 - }
 
 
  |