31 lines
637 B
PHP
31 lines
637 B
PHP
<?php
|
|
|
|
namespace Trinity\Bundle\SearchBundle\Twig\Extension;
|
|
|
|
class HighlightExtension extends \Twig_Extension
|
|
{
|
|
public function getFilters()
|
|
{
|
|
return array(
|
|
'highlight' => new \Twig_Filter_Method($this, 'highlight'),
|
|
);
|
|
}
|
|
|
|
public function highlight($sentence, $expr)
|
|
{
|
|
$expr = explode(' ', $expr);
|
|
foreach ($expr as $word) {
|
|
$sentence = preg_replace('/(' . $word . ')/i',
|
|
'<span class="bold">\1</span>', $sentence);
|
|
}
|
|
|
|
return $sentence;
|
|
}
|
|
|
|
public function getName()
|
|
{
|
|
return 'highlight_extension';
|
|
}
|
|
|
|
}
|