}
return get_records_sql("SELECT u.id, u.confirmed, u.username, u.firstname, u.lastname, u.maildisplay, u.mailformat,
- u.email, u.city, u.country, u.picture, u.idnumber, u.department, u.institution,
+ u.maildigest, u.email, u.city, u.country, u.picture, u.idnumber, u.department, u.institution,
u.emailstop, u.lang, u.timezone, s.timeaccess as lastaccess
FROM {$CFG->prefix}user u,
{$CFG->prefix}user_students s
global $CFG;
- return get_records_sql("SELECT u.id, u.username, u.firstname, u.lastname, u.maildisplay, u.mailformat,
+ return get_records_sql("SELECT u.id, u.username, u.firstname, u.lastname, u.maildisplay, u.mailformat, u.maildigest,
u.email, u.city, u.country, u.lastlogin, u.picture, u.lang, u.timezone,
u.emailstop, t.authority,t.role,t.editall,t.timeaccess as lastaccess
FROM {$CFG->prefix}user u,
if ($select) {
$selectinfo = $select;
} else {
- $selectinfo = "u.id, u.username, u.firstname, u.lastname, u.maildisplay, u.mailformat,".
+ $selectinfo = "u.id, u.username, u.firstname, u.lastname, u.maildisplay, u.mailformat, u.maildigest,".
"u.email, u.emailstop, u.city, u.country, u.lastaccess, u.lastlogin, u.picture, u.lang, u.timezone";
}
Copyright 2003 Mark Wilton-Jones
License: HowToCreate script license with written permission
URL: http://www.howtocreate.co.uk/php/
-
+
For full details about the script and to get the latest version,
please see the HowToCreate web site above.
-
- This version contains modifications for Moodle. In each case the
+
+ This version contains modifications for Moodle. In each case the
lines are marked with "Moodle", so you can see what has changed.
-
+
********************************************************************/
function html2text( $badStr ) {
-
+
$is_open_tb = false;
$is_open_dq = false;
$is_open_sq = false;
//remove PHP if it exists
// while ( substr_count( $badStr, '<'.'?' ) && substr_count( $badStr, '?'.'>' ) && strpos( $badStr, '?'.'>', strpos( $badStr, '<'.'?' ) ) > strpos( $badStr, '<'.'?' ) ) {
- // $badStr = substr( $badStr, 0, strpos( $badStr, '<'.'?' ) ) . substr( $badStr, strpos( $badStr, '?'.'>', strpos( $badStr, '<'.'?' ) ) + 2 );
+ // $badStr = substr( $badStr, 0, strpos( $badStr, '<'.'?' ) ) . substr( $badStr, strpos( $badStr, '?'.'>', strpos( $badStr, '<'.'?' ) ) + 2 );
// } // Moodle
//remove comments
while ( substr_count( $badStr, '<!--' ) && substr_count( $badStr, '-->' ) && strpos( $badStr, '-->', strpos( $badStr, '<!--' ) ) > strpos( $badStr, '<!--' ) ) {
- $badStr = substr( $badStr, 0, strpos( $badStr, '<!--' ) ) . substr( $badStr, strpos( $badStr, '-->', strpos( $badStr, '<!--' ) ) + 3 );
+ $badStr = substr( $badStr, 0, strpos( $badStr, '<!--' ) ) . substr( $badStr, strpos( $badStr, '-->', strpos( $badStr, '<!--' ) ) + 3 );
}
//now make sure all HTML tags are correctly written (> not in between quotes)
- for ( $x = 0, $goodStr = '', $is_open_tb = false, $is_open_sq = false, $is_open_dq = false; strlen( $chr = $badStr{$x} ); $x++ ) {
- //take each letter in turn and check if that character is permitted there
- switch ( $chr ) {
- case '<':
- if ( !$is_open_tb && strtolower( substr( $badStr, $x + 1, 5 ) ) == 'style' ) {
- $badStr = substr( $badStr, 0, $x ) . substr( $badStr, strpos( strtolower( $badStr ), '</style>', $x ) + 7 ); $chr = '';
- } elseif( !$is_open_tb && strtolower( substr( $badStr, $x + 1, 6 ) ) == 'script' ) {
- $badStr = substr( $badStr, 0, $x ) . substr( $badStr, strpos( strtolower( $badStr ), '</script>', $x ) + 8 ); $chr = '';
- } elseif( !$is_open_tb ) { $is_open_tb = true; } else { $chr = '<'; }
- break;
-
- case '>':
- if ( !$is_open_tb || $is_open_dq || $is_open_sq ) { $chr = '>'; } else { $is_open_tb = false; }
- break;
-
- case '"':
- if ( $is_open_tb && !$is_open_dq && !$is_open_sq ) { $is_open_dq = true; }
- elseif( $is_open_tb && $is_open_dq && !$is_open_sq ) { $is_open_dq = false; }
- else { $chr = '"'; }
- break;
-
- case "'":
- if( $is_open_tb && !$is_open_dq && !$is_open_sq ) { $is_open_sq = true; }
- elseif( $is_open_tb && !$is_open_dq && $is_open_sq ) { $is_open_sq = false; }
- break;
- }
- $goodStr .= $chr;
-
- }
+ $len = strlen($badStr); // Moodle
+ $chr = $badStr{0}; // Moodle
+ $goodStr = ''; // Moodle
+
+ if($len > 0) { // Moodle
+ for ( $x = 0, $is_open_tb = false, $is_open_sq = false, $is_open_dq = false; $x < $len - 1; $chr = $badStr{++$x} ) { // Moodle
+ //take each letter in turn and check if that character is permitted there
+ switch ( $chr ) {
+ case '<':
+ if ( !$is_open_tb && strtolower( substr( $badStr, $x + 1, 5 ) ) == 'style' ) {
+ $badStr = substr( $badStr, 0, $x ) . substr( $badStr, strpos( strtolower( $badStr ), '</style>', $x ) + 7 ); $chr = '';
+ } elseif( !$is_open_tb && strtolower( substr( $badStr, $x + 1, 6 ) ) == 'script' ) {
+ $badStr = substr( $badStr, 0, $x ) . substr( $badStr, strpos( strtolower( $badStr ), '</script>', $x ) + 8 ); $chr = '';
+ } elseif( !$is_open_tb ) { $is_open_tb = true; } else { $chr = '<'; }
+ break;
+
+ case '>':
+ if ( !$is_open_tb || $is_open_dq || $is_open_sq ) { $chr = '>'; } else { $is_open_tb = false; }
+ break;
+
+ case '"':
+ if ( $is_open_tb && !$is_open_dq && !$is_open_sq ) { $is_open_dq = true; }
+ elseif( $is_open_tb && $is_open_dq && !$is_open_sq ) { $is_open_dq = false; }
+ else { $chr = '"'; }
+ break;
+
+ case "'":
+ if( $is_open_tb && !$is_open_dq && !$is_open_sq ) { $is_open_sq = true; }
+ elseif( $is_open_tb && !$is_open_dq && $is_open_sq ) { $is_open_sq = false; }
+ break;
+ }
+ $goodStr .= $chr;
+ }
+ } // Moodle
//now that the page is valid (I hope) for strip_tags, strip all unwanted tags
$badStr = preg_split( "/<\/?pre[^>]*>/i", $goodStr );
- for ( $x = 0; is_string( $badStr[$x] ); $x++ ) {
+ for ( $x = 0; isset($badStr[$x]) && is_string( $badStr[$x] ); $x++ ) { // Moodle: added isset() test
if ( $x % 2 ) { $badStr[$x] = '<pre>'.$badStr[$x].'</pre>'; } else {
$goodStr = preg_split( "/<\/?textarea[^>]*>/i", $badStr[$x] );
- for ( $z = 0; is_string( $goodStr[$z] ); $z++ ) {
+ for ( $z = 0; isset($goodStr[$z]) && is_string( $goodStr[$z] ); $z++ ) { // Moodle: added isset() test
if ( $z % 2 ) { $goodStr[$z] = '<textarea>'.$goodStr[$z].'</textarea>'; } else {
$goodStr[$z] = preg_replace( "/\s+/", ' ', $goodStr[$z] );
- }
+ }
}
$badStr[$x] = implode('',$goodStr);
- }
+ }
}
$goodStr = implode('',$badStr);
$goodStr = preg_replace( "/<(th|td)[^>]*>/i", "\t", $goodStr );
// $goodStr = preg_replace( "/<a[^>]* href=(\"((?!\"|#|javascript:)[^\"#]*)(\"|#)|'((?!'|#|javascript:)[^'#]*)('|#)|((?!'|\"|>|#|javascript:)[^#\"'> ]*))[^>]*>/i", "[LINK: $2$4$6] ", $goodStr ); // Moodle
- $goodStr = preg_replace( "/<a[^>]* href=(\"((?!\"|#|javascript:)[^\"#]*)(\"|#)|'((?!'|#|javascript:)[^'#]*)('|#)|((?!'|\"|>|#|javascript:)[^#\"'> ]*))[^>]*>/i", "[$2$4$6] ", $goodStr );
+ $goodStr = preg_replace( "/<a[^>]* href=(\"((?!\"|#|javascript:)[^\"#]*)(\"|#)|'((?!'|#|javascript:)[^'#]*)('|#)|((?!'|\"|>|#|javascript:)[^#\"'> ]*))[^>]*>/i", "[$2$4$6] ", $goodStr );
// $goodStr = preg_replace( "/<img[^>]* alt=(\"([^\"]+)\"|'([^']+)'|([^\"'> ]+))[^>]*>/i", "[IMAGE: $2$3$4] ", $goodStr ); // Moodle
$goodStr = preg_replace( "/<img[^>]* alt=(\"([^\"]+)\"|'([^']+)'|([^\"'> ]+))[^>]*>/i", "[$2$3$4] ", $goodStr );