2015-03-03 18:51:20 +01:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace Trinity\Bundle\SearchBundle\Twig\Extension;
|
|
|
|
|
2015-03-05 17:51:23 +01:00
|
|
|
class HighlightExtension extends \Twig_Extension
|
|
|
|
{
|
|
|
|
public function getFilters()
|
|
|
|
{
|
2015-03-03 18:51:20 +01:00
|
|
|
return array(
|
|
|
|
'highlight' => new \Twig_Filter_Method($this, 'highlight'),
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
2015-03-05 17:51:23 +01:00
|
|
|
public function highlight($sentence, $expr)
|
|
|
|
{
|
2015-03-03 18:51:20 +01:00
|
|
|
$expr = explode(' ', $expr);
|
|
|
|
foreach ($expr as $word) {
|
|
|
|
$sentence = preg_replace('/(' . $word . ')/i',
|
|
|
|
'<span class="bold">\1</span>', $sentence);
|
|
|
|
}
|
2015-03-05 17:51:23 +01:00
|
|
|
|
2015-03-03 18:51:20 +01:00
|
|
|
return $sentence;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function getName()
|
|
|
|
{
|
|
|
|
return 'highlight_extension';
|
|
|
|
}
|
|
|
|
|
2015-03-05 17:51:23 +01:00
|
|
|
}
|