Moodle  2.2.1
http://www.collinsharper.com
C:/xampp/htdocs/moodle/filter/emailprotect/filter.php
Go to the documentation of this file.
00001 <?php
00002 
00003 // This file is part of Moodle - http://moodle.org/
00004 //
00005 // Moodle is free software: you can redistribute it and/or modify
00006 // it under the terms of the GNU General Public License as published by
00007 // the Free Software Foundation, either version 3 of the License, or
00008 // (at your option) any later version.
00009 //
00010 // Moodle is distributed in the hope that it will be useful,
00011 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00012 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00013 // GNU General Public License for more details.
00014 //
00015 // You should have received a copy of the GNU General Public License
00016 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
00017 
00027 defined('MOODLE_INTERNAL') || die();
00028 
00033 class filter_emailprotect extends moodle_text_filter {
00034     function filter($text, array $options = array()) {
00036         if (strpos($text, '@') === false) {
00037             return $text;
00038         }
00039 
00041         $matches = array();
00042 
00044         $emailregex = '((?:[\w\.\-])+\@(?:(?:[a-zA-Z\d\-])+\.)+(?:[a-zA-Z\d]{2,4}))';
00045 
00047         $pattern = '|(<a\s+href\s*=\s*[\'"]?mailto:)'.$emailregex.'([\'"]?\s*>)'.'(.*)'.'(</a>)|iU';
00048         $text = preg_replace_callback($pattern, 'filter_emailprotect_alter_mailto', $text);
00049 
00051         $pattern = '/(^|\s+|>)'.$emailregex.'($|\s+|\.\s+|\.$|<)/i';
00052         $text = preg_replace_callback($pattern, 'filter_emailprotect_alter_email', $text);
00053 
00054         return $text;
00055     }
00056 }
00057 
00058 
00059 function filter_emailprotect_alter_email($matches) {
00060     return $matches[1].obfuscate_text($matches[2]).$matches[3];
00061 }
00062 
00063 function filter_emailprotect_alter_mailto($matches) {
00064     return obfuscate_mailto($matches[2], $matches[4]);
00065 }
00066 
00067 
 All Data Structures Namespaces Files Functions Variables Enumerations