]> git.mjollnir.org Git - moodle.git/commitdiff
Email digest feature step 2: Slight additions to datalib queries, fixed warnings...
authordefacer <defacer>
Tue, 1 Jun 2004 07:28:14 +0000 (07:28 +0000)
committerdefacer <defacer>
Tue, 1 Jun 2004 07:28:14 +0000 (07:28 +0000)
lib/datalib.php
lib/html2text.php

index 2abcd3810279c0400eafb0a66cac85ab244f6de5..d9f355bac1aae6d1de072dad72d8404c8b929811 100644 (file)
@@ -1165,7 +1165,7 @@ function get_course_students($courseid, $sort="s.timeaccess", $dir="", $page=0,
     }
 
     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
@@ -1230,7 +1230,7 @@ function get_course_teachers($courseid, $sort="t.authority ASC") {
 
     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, 
@@ -1302,7 +1302,7 @@ function get_site_users($sort="u.lastaccess DESC", $select="") {
     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";
     }
 
index 39e295af7200e4da50bc6fa2a4c55ab36bd5de67..dda3cc335660f333b106875fe6f69f50547e499d 100644 (file)
@@ -8,17 +8,17 @@
   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;
@@ -26,46 +26,51 @@ function html2text( $badStr ) {
     //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 = '&lt;'; }
-                break;
-
-            case '>':
-                if ( !$is_open_tb || $is_open_dq || $is_open_sq ) { $chr = '&gt;'; } 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 = '&quot;'; }
-                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 = '&lt;'; }
+                    break;
+
+                case '>':
+                    if ( !$is_open_tb || $is_open_dq || $is_open_sq ) { $chr = '&gt;'; } 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 = '&quot;'; }
+                    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
 
@@ -75,24 +80,24 @@ function html2text( $badStr ) {
 
     $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);
@@ -118,7 +123,7 @@ function html2text( $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 );