Paperyard
CensorTwigExtension.php
Go to the documentation of this file.
1 <?php
2 
3 namespace Paperyard\Helpers;
4 
12 class CensorTwigExtension extends \Twig_Extension
13 {
14  public function getFilters()
15  {
16  return array(
17  'censor' => new \Twig_SimpleFilter('censor', array($this, 'censor'))
18  );
19  }
20 
21  public function censor($value, $censors, $explode = true)
22  {
23  // censor array with array
24  if (is_array($value) && is_array($censors)) {
25  return array_diff($value, $censors);
26  }
27 
28  // censor string (explode)
29  if (!is_array($value) && $explode) {
30  $arrayed = explode(',', $value);
31 
32  // make array from single string and filter
33  $censored = array_diff($arrayed, $censors);
34 
35  // check if empty
36  if (empty($censored)) {
37  return '';
38  }
39 
40  // return first (and only?) string
41  return $censored[0];
42  }
43 
44  return ($value != $censors) ? $value : '';
45 
46  }
47 
48  public function getName()
49  {
50  return 'censor_extention';
51  }
52 }
censor($value, $censors, $explode=true)