diff --git a/index.php b/index.php
index 2a19e45c5a5..5d5e0f74078 100644
--- a/index.php
+++ b/index.php
@@ -1,5 +1,4 @@
dirroot .'/course/lib.php');
+require_once($CFG->libdir .'/filelib.php');
+
+redirect_if_major_upgrade_required();
+
+$urlparams = array();
+if (!empty($CFG->defaulthomepage) && ($CFG->defaulthomepage == HOMEPAGE_MY) && optional_param('redirect', 1, PARAM_BOOL) === 0) {
+ $urlparams['redirect'] = 0;
+}
+$PAGE->set_url('/', $urlparams);
+$PAGE->set_course($SITE);
+$PAGE->set_other_editing_capability('moodle/course:update');
+$PAGE->set_other_editing_capability('moodle/course:manageactivities');
+$PAGE->set_other_editing_capability('moodle/course:activityvisibility');
+
+// Prevent caching of this page to stop confusion when changing page after making AJAX changes.
+$PAGE->set_cacheable(false);
+
+if ($CFG->forcelogin) {
+ require_login();
+} else {
+ user_accesstime_log();
+}
+
+$hassiteconfig = has_capability('moodle/site:config', context_system::instance());
+
+// If the site is currently under maintenance, then print a message.
+if (!empty($CFG->maintenance_enabled) and !$hassiteconfig) {
+ print_maintenance_message();
+}
+
+if ($hassiteconfig && moodle_needs_upgrading()) {
+ redirect($CFG->wwwroot .'/'. $CFG->admin .'/index.php');
+}
+
+if (get_home_page() != HOMEPAGE_SITE) {
+ // Redirect logged-in users to My Moodle overview if required.
+ $redirect = optional_param('redirect', 1, PARAM_BOOL);
+ if (optional_param('setdefaulthome', false, PARAM_BOOL)) {
+ set_user_preference('user_home_page_preference', HOMEPAGE_SITE);
+ } else if (!empty($CFG->defaulthomepage) && ($CFG->defaulthomepage == HOMEPAGE_MY) && $redirect === 1) {
+ redirect($CFG->wwwroot .'/my/');
+ } else if (!empty($CFG->defaulthomepage) && ($CFG->defaulthomepage == HOMEPAGE_USER)) {
+ $PAGE->settingsnav->get('usercurrentsettings')->add(
+ get_string('makethismyhome'),
+ new moodle_url('/', array('setdefaulthome' => true)),
+ navigation_node::TYPE_SETTING);
}
+}
- require_once('config.php');
- require_once($CFG->dirroot .'/course/lib.php');
- require_once($CFG->libdir .'/filelib.php');
+$eventparams = array('context' => context_course::instance(SITEID));
+$event = \core\event\course_viewed::create($eventparams);
+$event->trigger();
- redirect_if_major_upgrade_required();
-
- $urlparams = array();
- if (!empty($CFG->defaulthomepage) && ($CFG->defaulthomepage == HOMEPAGE_MY) && optional_param('redirect', 1, PARAM_BOOL) === 0) {
- $urlparams['redirect'] = 0;
+// If the hub plugin is installed then we let it take over the homepage here.
+if (file_exists($CFG->dirroot.'/local/hub/lib.php') and get_config('local_hub', 'hubenabled')) {
+ require_once($CFG->dirroot.'/local/hub/lib.php');
+ $hub = new local_hub();
+ $continue = $hub->display_homepage();
+ // Function display_homepage() returns true if the hub home page is not displayed
+ // ...mostly when search form is not displayed for not logged users.
+ if (empty($continue)) {
+ exit;
}
- $PAGE->set_url('/', $urlparams);
- $PAGE->set_course($SITE);
- $PAGE->set_other_editing_capability('moodle/course:update');
- $PAGE->set_other_editing_capability('moodle/course:manageactivities');
- $PAGE->set_other_editing_capability('moodle/course:activityvisibility');
+}
- // Prevent caching of this page to stop confusion when changing page after making AJAX changes
- $PAGE->set_cacheable(false);
+$PAGE->set_pagetype('site-index');
+$PAGE->set_docs_path('');
+$PAGE->set_pagelayout('frontpage');
+$editing = $PAGE->user_is_editing();
+$PAGE->set_title($SITE->fullname);
+$PAGE->set_heading($SITE->fullname);
+$courserenderer = $PAGE->get_renderer('core', 'course');
+echo $OUTPUT->header();
- if ($CFG->forcelogin) {
- require_login();
- } else {
- user_accesstime_log();
+// Print Section or custom info.
+$siteformatoptions = course_get_format($SITE)->get_format_options();
+$modinfo = get_fast_modinfo($SITE);
+$modnames = get_module_types_names();
+$modnamesplural = get_module_types_names(true);
+$modnamesused = $modinfo->get_used_module_names();
+$mods = $modinfo->get_cms();
+
+if (!empty($CFG->customfrontpageinclude)) {
+ include($CFG->customfrontpageinclude);
+
+} else if ($siteformatoptions['numsections'] > 0) {
+ if ($editing) {
+ // Make sure section with number 1 exists.
+ course_create_sections_if_missing($SITE, 1);
+ // Re-request modinfo in case section was created.
+ $modinfo = get_fast_modinfo($SITE);
}
+ $section = $modinfo->get_section_info(1);
+ if (($section && (!empty($modinfo->sections[1]) or !empty($section->summary))) or $editing) {
+ echo $OUTPUT->box_start('generalbox sitetopic');
- $hassiteconfig = has_capability('moodle/site:config', context_system::instance());
-
-/// If the site is currently under maintenance, then print a message
- if (!empty($CFG->maintenance_enabled) and !$hassiteconfig) {
- print_maintenance_message();
- }
-
- if ($hassiteconfig && moodle_needs_upgrading()) {
- redirect($CFG->wwwroot .'/'. $CFG->admin .'/index.php');
- }
-
- if (get_home_page() != HOMEPAGE_SITE) {
- // Redirect logged-in users to My Moodle overview if required
- if (optional_param('setdefaulthome', false, PARAM_BOOL)) {
- set_user_preference('user_home_page_preference', HOMEPAGE_SITE);
- } else if (!empty($CFG->defaulthomepage) && ($CFG->defaulthomepage == HOMEPAGE_MY) && optional_param('redirect', 1, PARAM_BOOL) === 1) {
- redirect($CFG->wwwroot .'/my/');
- } else if (!empty($CFG->defaulthomepage) && ($CFG->defaulthomepage == HOMEPAGE_USER)) {
- $PAGE->settingsnav->get('usercurrentsettings')->add(get_string('makethismyhome'), new moodle_url('/', array('setdefaulthome'=>true)), navigation_node::TYPE_SETTING);
+ // If currently moving a file then show the current clipboard.
+ if (ismoving($SITE->id)) {
+ $stractivityclipboard = strip_tags(get_string('activityclipboard', '', $USER->activitycopyname));
+ echo '
';
+ echo "$stractivityclipboard (";
+ echo get_string('cancel') . ')';
+ echo '
';
}
- }
- $eventparams = array('context' => context_course::instance(SITEID));
- $event = \core\event\course_viewed::create($eventparams);
- $event->trigger();
+ $context = context_course::instance(SITEID);
-/// If the hub plugin is installed then we let it take over the homepage here
- if (file_exists($CFG->dirroot.'/local/hub/lib.php') and get_config('local_hub', 'hubenabled')) {
- require_once($CFG->dirroot.'/local/hub/lib.php');
- $hub = new local_hub();
- $continue = $hub->display_homepage();
- //display_homepage() return true if the hub home page is not displayed
- //mostly when search form is not displayed for not logged users
- if (empty($continue)) {
- exit;
+ // If the section name is set we show it.
+ if (!is_null($section->name)) {
+ echo $OUTPUT->heading(
+ format_string($section->name, true, array('context' => $context)),
+ 2,
+ 'sectionname'
+ );
}
- }
- $PAGE->set_pagetype('site-index');
- $PAGE->set_docs_path('');
- $PAGE->set_pagelayout('frontpage');
- $editing = $PAGE->user_is_editing();
- $PAGE->set_title($SITE->fullname);
- $PAGE->set_heading($SITE->fullname);
- $courserenderer = $PAGE->get_renderer('core', 'course');
- echo $OUTPUT->header();
+ $summarytext = file_rewrite_pluginfile_urls($section->summary,
+ 'pluginfile.php',
+ $context->id,
+ 'course',
+ 'section',
+ $section->id);
+ $summaryformatoptions = new stdClass();
+ $summaryformatoptions->noclean = true;
+ $summaryformatoptions->overflowdiv = true;
-/// Print Section or custom info
- $siteformatoptions = course_get_format($SITE)->get_format_options();
- $modinfo = get_fast_modinfo($SITE);
- $modnames = get_module_types_names();
- $modnamesplural = get_module_types_names(true);
- $modnamesused = $modinfo->get_used_module_names();
- $mods = $modinfo->get_cms();
+ echo format_text($summarytext, $section->summaryformat, $summaryformatoptions);
- if (!empty($CFG->customfrontpageinclude)) {
- include($CFG->customfrontpageinclude);
-
- } else if ($siteformatoptions['numsections'] > 0) {
- if ($editing) {
- // make sure section with number 1 exists
- course_create_sections_if_missing($SITE, 1);
- // re-request modinfo in case section was created
- $modinfo = get_fast_modinfo($SITE);
+ if ($editing && has_capability('moodle/course:update', $context)) {
+ $streditsummary = get_string('editsummary');
+ echo "id\">
pix_url('t/edit') . "\" ".
+ " class=\"iconsmall\" alt=\"$streditsummary\" />
";
}
- $section = $modinfo->get_section_info(1);
- if (($section && (!empty($modinfo->sections[1]) or !empty($section->summary))) or $editing) {
- echo $OUTPUT->box_start('generalbox sitetopic');
- /// If currently moving a file then show the current clipboard
- if (ismoving($SITE->id)) {
- $stractivityclipboard = strip_tags(get_string('activityclipboard', '', $USER->activitycopyname));
- echo '';
- echo "$stractivityclipboard (". get_string('cancel') .')';
- echo '
';
- }
+ $courserenderer = $PAGE->get_renderer('core', 'course');
+ echo $courserenderer->course_section_cm_list($SITE, $section);
- $context = context_course::instance(SITEID);
- $summarytext = file_rewrite_pluginfile_urls($section->summary, 'pluginfile.php', $context->id, 'course', 'section', $section->id);
- $summaryformatoptions = new stdClass();
- $summaryformatoptions->noclean = true;
- $summaryformatoptions->overflowdiv = true;
-
- echo format_text($summarytext, $section->summaryformat, $summaryformatoptions);
-
- if ($editing && has_capability('moodle/course:update', $context)) {
- $streditsummary = get_string('editsummary');
- echo "id\">
pix_url('t/edit') . "\" ".
- " class=\"iconsmall\" alt=\"$streditsummary\" />
";
- }
-
- $courserenderer = $PAGE->get_renderer('core', 'course');
- echo $courserenderer->course_section_cm_list($SITE, $section);
-
- echo $courserenderer->course_section_add_cm_control($SITE, $section->section);
- echo $OUTPUT->box_end();
- }
+ echo $courserenderer->course_section_add_cm_control($SITE, $section->section);
+ echo $OUTPUT->box_end();
}
- // Include course AJAX
- include_course_ajax($SITE, $modnamesused);
+}
+// Include course AJAX.
+include_course_ajax($SITE, $modnamesused);
- if (isloggedin() and !isguestuser() and isset($CFG->frontpageloggedin)) {
- $frontpagelayout = $CFG->frontpageloggedin;
- } else {
- $frontpagelayout = $CFG->frontpage;
- }
+if (isloggedin() and !isguestuser() and isset($CFG->frontpageloggedin)) {
+ $frontpagelayout = $CFG->frontpageloggedin;
+} else {
+ $frontpagelayout = $CFG->frontpage;
+}
- foreach (explode(',',$frontpagelayout) as $v) {
- switch ($v) { /// Display the main part of the front page.
- case FRONTPAGENEWS:
- if ($SITE->newsitems) { // Print forums only when needed
- require_once($CFG->dirroot .'/mod/forum/lib.php');
+foreach (explode(',', $frontpagelayout) as $v) {
+ switch ($v) {
+ // Display the main part of the front page.
+ case FRONTPAGENEWS:
+ if ($SITE->newsitems) {
+ // Print forums only when needed.
+ require_once($CFG->dirroot .'/mod/forum/lib.php');
- if (! $newsforum = forum_get_course_forum($SITE->id, 'news')) {
- print_error('cannotfindorcreateforum', 'forum');
- }
+ if (! $newsforum = forum_get_course_forum($SITE->id, 'news')) {
+ print_error('cannotfindorcreateforum', 'forum');
+ }
- // fetch news forum context for proper filtering to happen
- $newsforumcm = get_coursemodule_from_instance('forum', $newsforum->id, $SITE->id, false, MUST_EXIST);
- $newsforumcontext = context_module::instance($newsforumcm->id, MUST_EXIST);
+ // Fetch news forum context for proper filtering to happen.
+ $newsforumcm = get_coursemodule_from_instance('forum', $newsforum->id, $SITE->id, false, MUST_EXIST);
+ $newsforumcontext = context_module::instance($newsforumcm->id, MUST_EXIST);
- $forumname = format_string($newsforum->name, true, array('context' => $newsforumcontext));
- echo html_writer::tag('a', get_string('skipa', 'access', core_text::strtolower(strip_tags($forumname))), array('href'=>'#skipsitenews', 'class'=>'skip-block'));
+ $forumname = format_string($newsforum->name, true, array('context' => $newsforumcontext));
+ echo html_writer::tag('a',
+ get_string('skipa', 'access', core_text::strtolower(strip_tags($forumname))),
+ array('href' => '#skipsitenews', 'class' => 'skip-block'));
- // wraps site news forum in div container.
- echo html_writer::start_tag('div', array('id'=>'site-news-forum'));
+ // Wraps site news forum in div container.
+ echo html_writer::start_tag('div', array('id' => 'site-news-forum'));
- if (isloggedin()) {
- $SESSION->fromdiscussion = $CFG->wwwroot;
- $subtext = '';
- if (\mod_forum\subscriptions::is_subscribed($USER->id, $newsforum)) {
- if (!\mod_forum\subscriptions::is_forcesubscribed($newsforum)) {
- $subtext = get_string('unsubscribe', 'forum');
- }
- } else {
- $subtext = get_string('subscribe', 'forum');
+ if (isloggedin()) {
+ $SESSION->fromdiscussion = $CFG->wwwroot;
+ $subtext = '';
+ if (\mod_forum\subscriptions::is_subscribed($USER->id, $newsforum)) {
+ if (!\mod_forum\subscriptions::is_forcesubscribed($newsforum)) {
+ $subtext = get_string('unsubscribe', 'forum');
}
- echo $OUTPUT->heading($forumname);
- $suburl = new moodle_url('/mod/forum/subscribe.php', array('id' => $newsforum->id, 'sesskey' => sesskey()));
- echo html_writer::tag('div', html_writer::link($suburl, $subtext), array('class' => 'subscribelink'));
} else {
- echo $OUTPUT->heading($forumname);
+ $subtext = get_string('subscribe', 'forum');
}
-
- forum_print_latest_discussions($SITE, $newsforum, $SITE->newsitems, 'plain', 'p.modified DESC');
-
- //end site news forum div container
- echo html_writer::end_tag('div');
-
- echo html_writer::tag('span', '', array('class'=>'skip-block-to', 'id'=>'skipsitenews'));
+ echo $OUTPUT->heading($forumname);
+ $suburl = new moodle_url('/mod/forum/subscribe.php', array('id' => $newsforum->id, 'sesskey' => sesskey()));
+ echo html_writer::tag('div', html_writer::link($suburl, $subtext), array('class' => 'subscribelink'));
+ } else {
+ echo $OUTPUT->heading($forumname);
}
- break;
- case FRONTPAGEENROLLEDCOURSELIST:
- $mycourseshtml = $courserenderer->frontpage_my_courses();
- if (!empty($mycourseshtml)) {
- echo html_writer::tag('a', get_string('skipa', 'access', core_text::strtolower(get_string('mycourses'))), array('href'=>'#skipmycourses', 'class'=>'skip-block'));
+ forum_print_latest_discussions($SITE, $newsforum, $SITE->newsitems, 'plain', 'p.modified DESC');
- //wrap frontpage course list in div container
- echo html_writer::start_tag('div', array('id'=>'frontpage-course-list'));
-
- echo $OUTPUT->heading(get_string('mycourses'));
- echo $mycourseshtml;
-
- //end frontpage course list div container
- echo html_writer::end_tag('div');
-
- echo html_writer::tag('span', '', array('class'=>'skip-block-to', 'id'=>'skipmycourses'));
- break;
- }
- // No "break" here. If there are no enrolled courses - continue to 'Available courses'.
-
- case FRONTPAGEALLCOURSELIST:
- $availablecourseshtml = $courserenderer->frontpage_available_courses();
- if (!empty($availablecourseshtml)) {
- echo html_writer::tag('a', get_string('skipa', 'access', core_text::strtolower(get_string('availablecourses'))), array('href'=>'#skipavailablecourses', 'class'=>'skip-block'));
-
- //wrap frontpage course list in div container
- echo html_writer::start_tag('div', array('id'=>'frontpage-course-list'));
-
- echo $OUTPUT->heading(get_string('availablecourses'));
- echo $availablecourseshtml;
-
- //end frontpage course list div container
- echo html_writer::end_tag('div');
-
- echo html_writer::tag('span', '', array('class'=>'skip-block-to', 'id'=>'skipavailablecourses'));
- }
- break;
-
- case FRONTPAGECATEGORYNAMES:
- echo html_writer::tag('a', get_string('skipa', 'access', core_text::strtolower(get_string('categories'))), array('href'=>'#skipcategories', 'class'=>'skip-block'));
-
- //wrap frontpage category names in div container
- echo html_writer::start_tag('div', array('id'=>'frontpage-category-names'));
-
- echo $OUTPUT->heading(get_string('categories'));
- echo $courserenderer->frontpage_categories_list();
-
- //end frontpage category names div container
+ // End site news forum div container.
echo html_writer::end_tag('div');
- echo html_writer::tag('span', '', array('class'=>'skip-block-to', 'id'=>'skipcategories'));
- break;
+ echo html_writer::tag('span', '', array('class' => 'skip-block-to', 'id' => 'skipsitenews'));
+ }
+ break;
- case FRONTPAGECATEGORYCOMBO:
- echo html_writer::tag('a', get_string('skipa', 'access', core_text::strtolower(get_string('courses'))), array('href'=>'#skipcourses', 'class'=>'skip-block'));
+ case FRONTPAGEENROLLEDCOURSELIST:
+ $mycourseshtml = $courserenderer->frontpage_my_courses();
+ if (!empty($mycourseshtml)) {
+ echo html_writer::tag('a',
+ get_string('skipa', 'access', core_text::strtolower(get_string('mycourses'))),
+ array('href' => '#skipmycourses', 'class' => 'skip-block'));
- //wrap frontpage category combo in div container
- echo html_writer::start_tag('div', array('id'=>'frontpage-category-combo'));
+ // Wrap frontpage course list in div container.
+ echo html_writer::start_tag('div', array('id' => 'frontpage-course-list'));
- echo $OUTPUT->heading(get_string('courses'));
- echo $courserenderer->frontpage_combo_list();
+ echo $OUTPUT->heading(get_string('mycourses'));
+ echo $mycourseshtml;
- //end frontpage category combo div container
+ // End frontpage course list div container.
echo html_writer::end_tag('div');
- echo html_writer::tag('span', '', array('class'=>'skip-block-to', 'id'=>'skipcourses'));
- break;
+ echo html_writer::tag('span', '', array('class' => 'skip-block-to', 'id' => 'skipmycourses'));
+ break;
+ }
+ // No "break" here. If there are no enrolled courses - continue to 'Available courses'.
- case FRONTPAGECOURSESEARCH:
- echo $OUTPUT->box($courserenderer->course_search_form('', 'short'), 'mdl-align');
- break;
+ case FRONTPAGEALLCOURSELIST:
+ $availablecourseshtml = $courserenderer->frontpage_available_courses();
+ if (!empty($availablecourseshtml)) {
+ echo html_writer::tag('a',
+ get_string('skipa', 'access', core_text::strtolower(get_string('availablecourses'))),
+ array('href' => '#skipavailablecourses', 'class' => 'skip-block'));
+
+ // Wrap frontpage course list in div container.
+ echo html_writer::start_tag('div', array('id' => 'frontpage-course-list'));
+
+ echo $OUTPUT->heading(get_string('availablecourses'));
+ echo $availablecourseshtml;
+
+ // End frontpage course list div container.
+ echo html_writer::end_tag('div');
+
+ echo html_writer::tag('span', '', array('class' => 'skip-block-to', 'id' => 'skipavailablecourses'));
+ }
+ break;
+
+ case FRONTPAGECATEGORYNAMES:
+ echo html_writer::tag('a',
+ get_string('skipa', 'access', core_text::strtolower(get_string('categories'))),
+ array('href' => '#skipcategories', 'class' => 'skip-block'));
+
+ // Wrap frontpage category names in div container.
+ echo html_writer::start_tag('div', array('id' => 'frontpage-category-names'));
+
+ echo $OUTPUT->heading(get_string('categories'));
+ echo $courserenderer->frontpage_categories_list();
+
+ // End frontpage category names div container.
+ echo html_writer::end_tag('div');
+
+ echo html_writer::tag('span', '', array('class' => 'skip-block-to', 'id' => 'skipcategories'));
+ break;
+
+ case FRONTPAGECATEGORYCOMBO:
+ echo html_writer::tag('a',
+ get_string('skipa', 'access', core_text::strtolower(get_string('courses'))),
+ array('href' => '#skipcourses', 'class' => 'skip-block'));
+
+ // Wrap frontpage category combo in div container.
+ echo html_writer::start_tag('div', array('id' => 'frontpage-category-combo'));
+
+ echo $OUTPUT->heading(get_string('courses'));
+ echo $courserenderer->frontpage_combo_list();
+
+ // End frontpage category combo div container.
+ echo html_writer::end_tag('div');
+
+ echo html_writer::tag('span', '', array('class' => 'skip-block-to', 'id' => 'skipcourses'));
+ break;
+
+ case FRONTPAGECOURSESEARCH:
+ echo $OUTPUT->box($courserenderer->course_search_form('', 'short'), 'mdl-align');
+ break;
- }
- echo '
';
}
- if ($editing && has_capability('moodle/course:create', context_system::instance())) {
- echo $courserenderer->add_new_course_button();
- }
- echo $OUTPUT->footer();
+ echo '
';
+}
+if ($editing && has_capability('moodle/course:create', context_system::instance())) {
+ echo $courserenderer->add_new_course_button();
+}
+echo $OUTPUT->footer();