function make_forums($courseid, $count, $discussions, $posts, $readpercent, $readusers, $subscribepercent, $ratingpercent) { global $CFG; if (!record_exists('course', 'id', $courseid)) { throw new forum_exception('Course does not exist'); } // Get all course users $context = get_context_instance(CONTEXT_COURSE, $courseid); $rs = get_recordset_sql("\nSELECT\n DISTINCT userid\nFROM\n {$CFG->prefix}role_assignments\nWHERE\n contextid={$context->id}"); $userids = array(); while ($record = rs_fetch_next_record($rs)) { $userids[] = $record->userid; } if ($readusers > count($userids)) { throw new forum_exception("The course only has " . count($userids) . " users, but you've asked for {$readusers} to read each discussion.\n Create some more users."); } // Create forums print "<h3>Making {$count} forums</h3><pre>"; $time = time(); for ($i = 0; $i < $count; $i++) { make_forumng($courseid, $time, $discussions, $posts, $readpercent, $readusers, $userids, $subscribepercent, $ratingpercent); print 'X'; if (($i + 1) % 20 == 0) { print " (" . ($i + 1) . ")\n"; } flush(); } print "</pre>"; rebuild_course_cache($courseid); }
function make_forums($courseid, $count, $discussions, $posts, $readpercent, $readusers, $subscribepercent, $ratingpercent) { global $DB; // Require course to exist $DB->get_record('course', array('id' => $courseid), '*', MUST_EXIST); // Get all course users $context = context_course::instance($courseid); $rs = $DB->get_recordset_sql("\nSELECT\n DISTINCT userid\nFROM\n {role_assignments}\nWHERE\n contextid = ?", array($context->id)); $userids = array(); foreach ($rs as $record) { $userids[] = $record->userid; } $rs->close(); if ($readusers > count($userids)) { throw new moodle_exception('error_makebig', 'forumng', '', (object) array('users' => count($userids), 'readusers' => $readusers)); } // Create forums print "<h3>Making {$count} forums</h3><pre>"; $time = time(); for ($i = 0; $i < $count; $i++) { make_forumng($courseid, $time, $discussions, $posts, $readpercent, $readusers, $userids, $subscribepercent, $ratingpercent); print 'X'; if (($i + 1) % 20 == 0) { print " (" . ($i + 1) . ")\n"; } flush(); } print "</pre>"; rebuild_course_cache($courseid); }