Failed Conditions
Push — psr2 ( de3699...36dc94 )
by Andreas
06:50 queued 03:31
created

Wordblock::preConnect()   A

Complexity

Conditions 4
Paths 3

Size

Total Lines 13
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
nc 3
dl 0
loc 13
c 0
b 0
f 0
cc 4
eloc 7
nop 0
rs 9.2
1
<?php
2
3
namespace dokuwiki\ParserMode;
4
5
/**
6
 * @fixme is this actually used?
7
 */
8
class Wordblock extends AbstractMode
9
{
10
    protected $badwords = array();
11
    protected $pattern = '';
12
13
    /**
14
     * Wordblock constructor.
15
     * @param $badwords
16
     */
17
    public function __construct($badwords)
18
    {
19
        $this->badwords = $badwords;
20
    }
21
22
    /** @inheritdoc */
23
    public function preConnect()
24
    {
25
26
        if (count($this->badwords) == 0 || $this->pattern != '') {
27
            return;
28
        }
29
30
        $sep = '';
31
        foreach ($this->badwords as $badword) {
32
            $this->pattern .= $sep.'(?<=\b)(?i)'.Doku_Lexer_Escape($badword).'(?-i)(?=\b)';
33
            $sep = '|';
34
        }
35
    }
36
37
    /** @inheritdoc */
38
    public function connectTo($mode)
39
    {
40
        if (strlen($this->pattern) > 0) {
41
            $this->Lexer->addSpecialPattern($this->pattern, $mode, 'wordblock');
42
        }
43
    }
44
45
    /** @inheritdoc */
46
    public function getSort()
47
    {
48
        return 250;
49
    }
50
}
51