ILIAS  Release_4_1_x_branch Revision 61804
 All Data Structures Namespaces Files Functions Variables Groups Pages
PurifierLinkify.php
Go to the documentation of this file.
1 <?php
2 
8 {
9 
10  public $name = 'PurifierLinkify';
11  public $docURL;
12  public $needed = array('a' => array('href'));
13 
14  public function prepare($config, $context) {
15  $this->docURL = $config->get('AutoFormat.PurifierLinkify.DocURL');
16  return parent::prepare($config, $context);
17  }
18 
19  public function handleText(&$token) {
20  if (!$this->allowsElement('a')) return;
21  if (strpos($token->data, '%') === false) return;
22 
23  $bits = preg_split('#%([a-z0-9]+\.[a-z0-9]+)#Si', $token->data, -1, PREG_SPLIT_DELIM_CAPTURE);
24  $token = array();
25 
26  // $i = index
27  // $c = count
28  // $l = is link
29  for ($i = 0, $c = count($bits), $l = false; $i < $c; $i++, $l = !$l) {
30  if (!$l) {
31  if ($bits[$i] === '') continue;
32  $token[] = new HTMLPurifier_Token_Text($bits[$i]);
33  } else {
34  $token[] = new HTMLPurifier_Token_Start('a',
35  array('href' => str_replace('%s', $bits[$i], $this->docURL)));
36  $token[] = new HTMLPurifier_Token_Text('%' . $bits[$i]);
37  $token[] = new HTMLPurifier_Token_End('a');
38  }
39  }
40 
41  }
42 
43 }
44 
45 // vim: et sw=4 sts=4