<?php namespace dokuwiki\Parsing\ParserMode; use dokuwiki\Parsing\Lexer\Lexer; /** * @fixme is this actually used? */ class Wordblock extends AbstractMode { protected $badwords = []; protected $pattern = ''; /** * Wordblock constructor. * @param $badwords */ public function __construct($badwords) { $this->badwords = $badwords; } /** @inheritdoc */ public function preConnect() { if (count($this->badwords) == 0 || $this->pattern != '') { return; } $sep = ''; foreach ($this->badwords as $badword) { $this->pattern .= $sep . '(?<=\b)(?i)' . Lexer::escape($badword) . '(?-i)(?=\b)'; $sep = '|'; } } /** @inheritdoc */ public function connectTo($mode) { if (strlen($this->pattern) > 0) { $this->Lexer->addSpecialPattern($this->pattern, $mode, 'wordblock'); } } /** @inheritdoc */ public function getSort() { return 250; } }