本文整理汇总了PHP中forum_user_has_posted_discussion函数的典型用法代码示例。如果您正苦于以下问题:PHP forum_user_has_posted_discussion函数的具体用法?PHP forum_user_has_posted_discussion怎么用?PHP forum_user_has_posted_discussion使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了forum_user_has_posted_discussion函数的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: forum_user_can_post_discussion
/**
* @global object
* @param object $forum
* @param object $currentgroup
* @param int $unused
* @param object $cm
* @param object $context
* @return bool
*/
function forum_user_can_post_discussion($forum, $currentgroup=null, $unused=-1, $cm=NULL, $context=NULL) {
// $forum is an object
global $USER;
// shortcut - guest and not-logged-in users can not post
if (isguestuser() or !isloggedin()) {
return false;
}
if (!$cm) {
debugging('missing cm', DEBUG_DEVELOPER);
if (!$cm = get_coursemodule_from_instance('forum', $forum->id, $forum->course)) {
print_error('invalidcoursemodule');
}
}
if (!$context) {
$context = context_module::instance($cm->id);
}
if ($currentgroup === null) {
$currentgroup = groups_get_activity_group($cm);
}
$groupmode = groups_get_activity_groupmode($cm);
if ($forum->type == 'news') {
$capname = 'mod/forum:addnews';
} else if ($forum->type == 'qanda') {
$capname = 'mod/forum:addquestion';
} else {
$capname = 'mod/forum:startdiscussion';
}
if (!has_capability($capname, $context)) {
return false;
}
if ($forum->type == 'single') {
return false;
}
if ($forum->type == 'eachuser') {
if (forum_user_has_posted_discussion($forum->id, $USER->id)) {
return false;
}
}
if (!$groupmode or has_capability('moodle/site:accessallgroups', $context)) {
return true;
}
if ($currentgroup) {
return groups_is_member($currentgroup);
} else {
// no group membership and no accessallgroups means no new discussions
// reverted to 1.7 behaviour in 1.9+, buggy in 1.8.0-1.9.0
return false;
}
}
示例2: test_forum_user_has_posted_discussion_multiple_groups
/**
* Test forum_user_has_posted_discussion with multiple groups.
*/
public function test_forum_user_has_posted_discussion_multiple_groups()
{
global $CFG;
$this->resetAfterTest(true);
$course = self::getDataGenerator()->create_course();
$author = self::getDataGenerator()->create_user();
$this->getDataGenerator()->enrol_user($author->id, $course->id);
$group1 = $this->getDataGenerator()->create_group(array('courseid' => $course->id));
$group2 = $this->getDataGenerator()->create_group(array('courseid' => $course->id));
groups_add_member($group1->id, $author->id);
groups_add_member($group2->id, $author->id);
$forum = self::getDataGenerator()->create_module('forum', (object) ['course' => $course->id], ['groupmode' => SEPARATEGROUPS]);
self::setUser($author);
// The user has not posted in either group.
$this->assertFalse(forum_user_has_posted_discussion($forum->id, $author->id));
$this->assertFalse(forum_user_has_posted_discussion($forum->id, $author->id, $group1->id));
$this->assertFalse(forum_user_has_posted_discussion($forum->id, $author->id, $group2->id));
// Post in one group.
$record = new stdClass();
$record->course = $course->id;
$record->userid = $author->id;
$record->forum = $forum->id;
$record->groupid = $group1->id;
$discussion = self::getDataGenerator()->get_plugin_generator('mod_forum')->create_discussion($record);
// The author has now posted in one group, but the other user has not.
$this->assertTrue(forum_user_has_posted_discussion($forum->id, $author->id));
$this->assertTrue(forum_user_has_posted_discussion($forum->id, $author->id, $group1->id));
$this->assertFalse(forum_user_has_posted_discussion($forum->id, $author->id, $group2->id));
// Post in the other group.
$record = new stdClass();
$record->course = $course->id;
$record->userid = $author->id;
$record->forum = $forum->id;
$record->groupid = $group2->id;
$discussion = self::getDataGenerator()->get_plugin_generator('mod_forum')->create_discussion($record);
// The author has now posted in one group, but the other user has not.
$this->assertTrue(forum_user_has_posted_discussion($forum->id, $author->id));
$this->assertTrue(forum_user_has_posted_discussion($forum->id, $author->id, $group1->id));
$this->assertTrue(forum_user_has_posted_discussion($forum->id, $author->id, $group2->id));
}