File: filter.php

package info (click to toggle)
moodle 1.6.3-2%2Betch3
  • links: PTS
  • area: main
  • in suites: etch
  • size: 37,172 kB
  • ctags: 51,688
  • sloc: php: 231,916; sql: 5,631; xml: 2,688; sh: 1,185; perl: 638; makefile: 48; pascal: 36
file content (44 lines) | stat: -rw-r--r-- 1,391 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php // $id$
//////////////////////////////////////////////////////////////
//  Censorship filtering
// 
//  This very simple example of a Text Filter will parse
//  printed text, blacking out words perceived to be bad
//  
//  The list of words is in the lang/xx/moodle.php
//
//////////////////////////////////////////////////////////////

/// This is the filtering function itself.  It accepts the 
/// courseid and the text to be filtered (in HTML form).

function censor_filter($courseid, $text) {

    static $words;
    global $CFG;

    if (!isset($CFG->filter_censor_badwords)) {
        set_config( 'filter_censor_badwords','' );
    }

    if (empty($words)) {
        $words = array();
        // if no user-specified words, use default list from language pack
        if (empty($CFG->filter_censor_badwords)) {
            $badwords = explode(',',get_string('badwords','censor') );
        }
        else {
            $badwords = explode(',', $CFG->filter_censor_badwords );
        }
        foreach ($badwords as $badword) {
            $badword = trim($badword);
            $words[] = new filterobject($badword, '<span class="censoredtext" title="'.$badword.'">', '</span>', 
                                        false, false, str_pad('',strlen($badword),'*'));
        }
    }

    return filter_phrases($text, $words);  // Look for all these words in the text
}


?>