本文整理汇总了PHP中enrol_selfenrol_available函数的典型用法代码示例。如果您正苦于以下问题:PHP enrol_selfenrol_available函数的具体用法?PHP enrol_selfenrol_available怎么用?PHP enrol_selfenrol_available使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了enrol_selfenrol_available函数的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: forum_print_latest_discussions
/**
* Prints the discussion view screen for a forum.
*
* @global object
* @global object
* @param object $course The current course object.
* @param object $forum Forum to be printed.
* @param int $maxdiscussions .
* @param string $displayformat The display format to use (optional).
* @param string $sort Sort arguments for database query (optional).
* @param int $groupmode Group mode of the forum (optional).
* @param void $unused (originally current group)
* @param int $page Page mode, page to display (optional).
* @param int $perpage The maximum number of discussions per page(optional)
*
*/
function forum_print_latest_discussions($course, $forum, $maxdiscussions=-1, $displayformat='plain', $sort='',
$currentgroup=-1, $groupmode=-1, $page=-1, $perpage=100, $cm=NULL) {
global $CFG, $USER, $OUTPUT;
if (!$cm) {
if (!$cm = get_coursemodule_from_instance('forum', $forum->id, $forum->course)) {
print_error('invalidcoursemodule');
}
}
$context = context_module::instance($cm->id);
if (empty($sort)) {
$sort = "d.timemodified DESC";
}
$olddiscussionlink = false;
// Sort out some defaults
if ($perpage <= 0) {
$perpage = 0;
$page = -1;
}
if ($maxdiscussions == 0) {
// all discussions - backwards compatibility
$page = -1;
$perpage = 0;
if ($displayformat == 'plain') {
$displayformat = 'header'; // Abbreviate display by default
}
} else if ($maxdiscussions > 0) {
$page = -1;
$perpage = $maxdiscussions;
}
$fullpost = false;
if ($displayformat == 'plain') {
$fullpost = true;
}
// Decide if current user is allowed to see ALL the current discussions or not
// First check the group stuff
if ($currentgroup == -1 or $groupmode == -1) {
$groupmode = groups_get_activity_groupmode($cm, $course);
$currentgroup = groups_get_activity_group($cm);
}
$groups = array(); //cache
// If the user can post discussions, then this is a good place to put the
// button for it. We do not show the button if we are showing site news
// and the current user is a guest.
$canstart = forum_user_can_post_discussion($forum, $currentgroup, $groupmode, $cm, $context);
if (!$canstart and $forum->type !== 'news') {
if (isguestuser() or !isloggedin()) {
$canstart = true;
}
if (!is_enrolled($context) and !is_viewing($context)) {
// allow guests and not-logged-in to see the button - they are prompted to log in after clicking the link
// normal users with temporary guest access see this button too, they are asked to enrol instead
// do not show the button to users with suspended enrolments here
$canstart = enrol_selfenrol_available($course->id);
}
}
if ($canstart) {
echo '<div class="singlebutton forumaddnew">';
echo "<form id=\"newdiscussionform\" method=\"get\" action=\"$CFG->wwwroot/mod/forum/post.php\">";
echo '<div>';
echo "<input type=\"hidden\" name=\"forum\" value=\"$forum->id\" />";
switch ($forum->type) {
case 'news':
case 'blog':
$buttonadd = get_string('addanewtopic', 'forum');
break;
case 'qanda':
$buttonadd = get_string('addanewquestion', 'forum');
break;
default:
$buttonadd = get_string('addanewdiscussion', 'forum');
//.........这里部分代码省略.........
示例2: print_error
if (!empty($forum)) {
// User is starting a new discussion in a forum
if (!($forum = $DB->get_record("forum", array("id" => $forum)))) {
print_error('invalidforumid', 'forum');
}
if (!($course = $DB->get_record("course", array("id" => $forum->course)))) {
print_error('invalidcourseid');
}
if (!($cm = get_coursemodule_from_instance("forum", $forum->id, $course->id))) {
print_error("invalidcoursemodule");
}
$coursecontext = get_context_instance(CONTEXT_COURSE, $course->id);
if (!forum_user_can_post_discussion($forum, $groupid, -1, $cm)) {
if (!isguestuser()) {
if (!is_enrolled($coursecontext)) {
if (enrol_selfenrol_available($course->id)) {
$SESSION->wantsurl = $FULLME;
$SESSION->enrolcancel = $_SERVER['HTTP_REFERER'];
redirect($CFG->wwwroot . '/enrol/index.php?id=' . $course->id, get_string('youneedtoenrol'));
}
}
}
print_error('nopostforum', 'forum');
}
if (!$cm->visible and !has_capability('moodle/course:viewhiddenactivities', $coursecontext)) {
print_error("activityiscurrentlyhidden");
}
if (isset($_SERVER["HTTP_REFERER"])) {
$SESSION->fromurl = $_SERVER["HTTP_REFERER"];
} else {
$SESSION->fromurl = '';
示例3: forum_user_can_post
$PAGE->set_heading($course->fullname);
$PAGE->set_button($searchform);
echo $OUTPUT->header();
echo $OUTPUT->heading(format_string($forum->name), 2);
/// Check to see if groups are being used in this forum
/// If so, make sure the current person is allowed to see this discussion
/// Also, if we know they should be able to reply, then explicitly set $canreply for performance reasons
$canreply = forum_user_can_post($forum, $discussion, $USER, $cm, $course, $modcontext);
if (!$canreply and $forum->type !== 'news') {
if (isguestuser() or !isloggedin()) {
$canreply = true;
}
if (!is_enrolled($modcontext) and !is_viewing($modcontext)) {
// allow guests and not-logged-in to see the link - they are prompted to log in after clicking the link
// normal users with temporary guest access see this link too, they are asked to enrol instead
$canreply = enrol_selfenrol_available($course->id);
}
}
/// Print the controls across the top
echo '<div class="discussioncontrols clearfix">';
if (!empty($CFG->enableportfolios) && has_capability('mod/forum:exportdiscussion', $modcontext)) {
require_once $CFG->libdir . '/portfoliolib.php';
$button = new portfolio_add_button();
$button->set_callback_options('forum_portfolio_caller', array('discussionid' => $discussion->id), 'mod_forum');
$button = $button->to_html(PORTFOLIO_ADD_FULL_FORM, get_string('exportdiscussion', 'mod_forum'));
$buttonextraclass = '';
if (empty($button)) {
// no portfolio plugin available.
$button = ' ';
$buttonextraclass = ' noavailable';
}
示例4: hsuforum_print_latest_discussions
/**
* Prints the discussion view screen for a forum.
*
* @global object
* @global object
* @param object $course The current course object.
* @param object $forum Forum to be printed.
* @param int $maxdiscussions .
* @param string $sort Sort arguments for database query (optional).
* @param int $groupmode Group mode of the forum (optional).
* @param void $unused (originally current group)
* @param int $page Page mode, page to display (optional).
* @param int $perpage The maximum number of discussions per page(optional)
*
*/
function hsuforum_print_latest_discussions($course, $forum, $maxdiscussions = -1, $sort = '', $currentgroup = -1, $groupmode = -1, $page = -1, $perpage = 100, $cm = NULL)
{
global $CFG, $USER, $OUTPUT, $PAGE;
require_once $CFG->dirroot . '/rating/lib.php';
if (!$cm) {
if (!($cm = get_coursemodule_from_instance('hsuforum', $forum->id, $forum->course))) {
print_error('invalidcoursemodule');
}
}
$context = context_module::instance($cm->id);
if (empty($sort)) {
$sort = "d.timemodified DESC";
}
$olddiscussionlink = false;
// Sort out some defaults
if ($perpage <= 0) {
$perpage = 0;
$page = -1;
}
if ($maxdiscussions == 0) {
// all discussions - backwards compatibility
$page = -1;
$perpage = 0;
} else {
if ($maxdiscussions > 0) {
$page = -1;
$perpage = $maxdiscussions;
}
}
$renderer = $PAGE->get_renderer('mod_hsuforum');
$PAGE->requires->js_init_call('M.mod_hsuforum.init', null, false, $renderer->get_js_module());
$fullpost = true;
// Decide if current user is allowed to see ALL the current discussions or not
// First check the group stuff
if ($currentgroup == -1 or $groupmode == -1) {
$groupmode = groups_get_activity_groupmode($cm, $course);
$currentgroup = groups_get_activity_group($cm);
}
$groups = array();
//cache
// If the user can post discussions, then this is a good place to put the
// button for it. We do not show the button if we are showing site news
// and the current user is a guest.
$canstart = hsuforum_user_can_post_discussion($forum, $currentgroup, $groupmode, $cm, $context);
if (!$canstart and $forum->type !== 'news') {
if (isguestuser() or !isloggedin()) {
$canstart = true;
}
if (!is_enrolled($context) and !is_viewing($context)) {
// allow guests and not-logged-in to see the button - they are prompted to log in after clicking the link
// normal users with temporary guest access see this button too, they are asked to enrol instead
// do not show the button to users with suspended enrolments here
$canstart = enrol_selfenrol_available($course->id);
}
}
// Get all the recent discussions we're allowed to see
$getuserlastmodified = true;
$discussions = hsuforum_get_discussions($cm, $sort, $fullpost, $maxdiscussions, $getuserlastmodified, $page, $perpage, false);
// If we want paging
$numdiscussions = null;
if ($page != -1) {
// Get the number of discussions found.
$numdiscussions = hsuforum_get_discussions_count($cm);
} else {
if ($maxdiscussions > 0 and $maxdiscussions <= count($discussions)) {
$olddiscussionlink = true;
}
}
// TODO - Can we just delete this first if?
if (!$canstart && (isguestuser() or !isloggedin() or $forum->type == 'news' or $forum->type == 'qanda' and !has_capability('mod/hsuforum:addquestion', $context) or $forum->type != 'qanda' and !has_capability('mod/hsuforum:startdiscussion', $context))) {
// no button and no info
} else {
if (!$canstart && $groupmode and !has_capability('moodle/site:accessallgroups', $context)) {
// inform users why they can not post new discussion
if (!$currentgroup) {
echo $OUTPUT->notification(get_string('cannotadddiscussionall', 'hsuforum'), 'notifyproblem hsuforum-cannot-post');
} else {
if (!groups_is_member($currentgroup)) {
echo $OUTPUT->notification(get_string('cannotadddiscussion', 'hsuforum'), 'notifyproblem hsuforum-cannot-post');
}
}
}
}
if ($discussions) {
echo "<h3 class='hsuforum-discussion-count' data-count='{$numdiscussions}'>" . get_string('xdiscussions', 'hsuforum', $numdiscussions) . "</h3>";
//.........这里部分代码省略.........