Merge branch 'MDL-24860_messaging_providers' of git://github.com/andyjdavis/moodle
authorPetr Skoda <commits@skodak.org>
Mon, 27 Dec 2010 12:39:20 +0000 (13:39 +0100)
committerPetr Skoda <commits@skodak.org>
Mon, 27 Dec 2010 12:39:20 +0000 (13:39 +0100)
Conflicts:
mod/lesson/version.php

1  2 
lib/datalib.php
mod/forum/lib.php

diff --combined lib/datalib.php
@@@ -51,8 -51,9 +51,8 @@@ define('LASTACCESS_UPDATE_SECS', 60)
   * Returns $user object of the main admin user
   * primary admin = admin with lowest role_assignment id among admins
   *
 - * @global object
 - * @static object $myadmin
 - * @return object An associative array representing the admin user.
 + * @static stdClass $mainadmin
 + * @return stdClass {@link $USER} record from DB, false if not found
   */
  function get_admin() {
      static $mainadmin = null;
@@@ -65,8 -66,7 +65,8 @@@
          //      for now return the first assigned admin
          $mainadmin = reset($admins);
      }
 -    return $mainadmin;
 +    // we must clone this otherwise code outside can break the static var
 +    return clone($mainadmin);
  }
  
  /**
@@@ -1695,6 -1695,7 +1695,7 @@@ function add_to_log($courseid, $module
  
              $lasttime = get_config('admin', 'lastloginserterrormail');
              if(empty($lasttime) || time() - $lasttime > 60*60*24) { // limit to 1 email per day
+                 //using email directly rather than messaging as they may not be able to log in to access a message
                  mail($CFG->supportemail, $subject, $message);
                  set_config('lastloginserterrormail', time(), 'admin');
              }
diff --combined mod/forum/lib.php
@@@ -461,9 -461,8 +461,9 @@@ function forum_cron() 
              // caching subscribed users of each forum
              if (!isset($subscribedusers[$forumid])) {
                  $modcontext = get_context_instance(CONTEXT_MODULE, $coursemodules[$forumid]->id);
 -                if ($subusers = forum_subscribed_users($courses[$courseid], $forums[$forumid], 0, $modcontext)) {
 +                if ($subusers = forum_subscribed_users($courses[$courseid], $forums[$forumid], 0, $modcontext, "u.*")) {
                      foreach ($subusers as $postuser) {
 +                        unset($postuser->description); // not necessary
                          // this user is subscribed to this forum
                          $subscribedusers[$forumid][$postuser->id] = $postuser->id;
                          // this user is a user we have to process later
                  if (array_key_exists($post->userid, $users)) { // we might know him/her already
                      $userfrom = $users[$post->userid];
                  } else if ($userfrom = $DB->get_record('user', array('id' => $post->userid))) {
 +                    unset($userfrom->description); // not necessary
                      $users[$userfrom->id] = $userfrom; // fetch only once, we can add it to user list, it will be skipped anyway
                  } else {
                      mtrace('Could not find user '.$post->userid);
  
                  $attachment = $attachname='';
                  $usetrueaddress = true;
+                 //directly email forum digests rather than sending them via messaging
                  $mailresult = email_to_user($userto, $site->shortname, $postsubject, $posttext, $posthtml, $attachment, $attachname, $usetrueaddress, $CFG->forum_replytouser);
  
                  if (!$mailresult) {
@@@ -2798,10 -2797,9 +2799,10 @@@ function forum_get_potential_subscriber
   * @param forum $forum the forum
   * @param integer $groupid group id, or 0 for all.
   * @param object $context the forum context, to save re-fetching it where possible.
 + * @param string $fields requested user fields (with "u." table prefix)
   * @return array list of users.
   */
 -function forum_subscribed_users($course, $forum, $groupid=0, $context = NULL) {
 +function forum_subscribed_users($course, $forum, $groupid=0, $context = null, $fields = null) {
      global $CFG, $DB;
      $params = array($forum->id);
  
          $groupselect = '';
      }
  
 -    $fields ="u.id,
 -              u.username,
 -              u.firstname,
 -              u.lastname,
 -              u.maildisplay,
 -              u.mailformat,
 -              u.maildigest,
 -              u.imagealt,
 -              u.email,
 -              u.city,
 -              u.country,
 -              u.lastaccess,
 -              u.lastlogin,
 -              u.picture,
 -              u.timezone,
 -              u.theme,
 -              u.lang,
 -              u.trackforums,
 -              u.mnethostid";
 +    if (empty($fields)) {
 +        $fields ="u.id,
 +                  u.username,
 +                  u.firstname,
 +                  u.lastname,
 +                  u.maildisplay,
 +                  u.mailformat,
 +                  u.maildigest,
 +                  u.imagealt,
 +                  u.email,
 +                  u.city,
 +                  u.country,
 +                  u.lastaccess,
 +                  u.lastlogin,
 +                  u.picture,
 +                  u.timezone,
 +                  u.theme,
 +                  u.lang,
 +                  u.trackforums,
 +                  u.mnethostid";
 +    }
  
      if (forum_is_forcesubscribed($forum)) {
          if (empty($context)) {