├── README.md
├── classes
├── format_collapsibletopics_renderer.php
├── format_topics_renderer.php
├── format_weeks_renderer.php
├── output
│ ├── core
│ │ └── course_renderer.php
│ ├── core_renderer.php
│ └── core_renderer_ajax.php
├── privacy
│ └── provider.php
└── qtype_shortanswer_renderer.php
├── config.php
├── javascript
├── blockslider.js
├── courseblock.js
├── scrollspy.js
├── scrolltotop.js
└── tooltipfix.js
├── lang
└── en
│ └── theme_fordson.php
├── layout
├── columns2.php
├── course.php
├── frontpage.php
├── login.php
└── mydashboard.php
├── lib.php
├── lib
├── filesettings_lib.php
├── fordson_lib.php
└── scss_lib.php
├── pix
├── favicon.ico
├── headerbg-old2.jpg
├── headerbg.jpg
├── noimg-old2.jpg
├── noimg.jpg
└── screenshot.png
├── pix_core
├── f
│ ├── archive.svg
│ ├── audio.svg
│ ├── avi.svg
│ ├── base.svg
│ ├── bmp.svg
│ ├── calc.svg
│ ├── chart.svg
│ ├── code.svg
│ ├── database.svg
│ ├── document.svg
│ ├── draw.svg
│ ├── eps.svg
│ ├── epub.svg
│ ├── flash.svg
│ ├── folder.svg
│ ├── gif.svg
│ ├── html.svg
│ ├── image.svg
│ ├── impress.svg
│ ├── jpeg.svg
│ ├── markup.svg
│ ├── math.svg
│ ├── mp3.svg
│ ├── mpeg.svg
│ ├── pdf.svg
│ ├── png.svg
│ ├── powerpoint.svg
│ ├── psd.svg
│ ├── publisher.svg
│ ├── quicktime.svg
│ ├── sourcecode.svg
│ ├── spreadsheet.svg
│ ├── text.svg
│ ├── tiff.svg
│ ├── unknown.svg
│ ├── video.svg
│ ├── wave.svg
│ ├── wmv.svg
│ └── writer.svg
└── i
│ ├── completion-auto-fail.svg
│ ├── completion-auto-n.svg
│ ├── completion-auto-pass.svg
│ ├── completion-auto-y.svg
│ ├── completion-manual-n.svg
│ └── completion-manual-y.svg
├── pix_plugins
└── mod
│ ├── assign
│ └── icon.svg
│ ├── assignment
│ └── icon.svg
│ ├── book
│ └── icon.svg
│ ├── certificate
│ └── icon.svg
│ ├── chat
│ └── icon.svg
│ ├── choice
│ └── icon.svg
│ ├── data
│ └── icon.svg
│ ├── feedback
│ └── icon.svg
│ ├── folder
│ └── icon.svg
│ ├── forum
│ └── icon.svg
│ ├── glossary
│ └── icon.svg
│ ├── label
│ └── icon.svg
│ ├── lesson
│ └── icon.svg
│ ├── lti
│ └── icon.svg
│ ├── page
│ └── icon.svg
│ ├── questionnaire
│ └── icon.svg
│ ├── quiz
│ └── icon.svg
│ ├── resource
│ └── icon.svg
│ ├── scorm
│ └── icon.svg
│ ├── survey
│ └── icon.svg
│ ├── url
│ └── icon.svg
│ ├── wiki
│ └── icon.svg
│ └── workshop
│ └── icon.svg
├── scss
├── fordson_variables.scss
├── marketingstyle
│ ├── marketingstyle1.scss
│ ├── marketingstyle2.scss
│ ├── marketingstyle3.scss
│ └── marketingstyle4.scss
├── pagelayout
│ ├── layout1.scss
│ ├── layout2.scss
│ ├── layout3.scss
│ ├── layout4.scss
│ └── layout5.scss
├── preset.scss
├── preset
│ ├── Boost.scss
│ ├── Modern Moodle.scss
│ ├── Perception.scss
│ ├── Spectrum-Achromatic.scss
│ ├── e-Learner.scss
│ └── pulse.scss
├── sectionlayout
│ ├── sectionstyle1.scss
│ ├── sectionstyle2.scss
│ ├── sectionstyle3.scss
│ ├── sectionstyle4.scss
│ ├── sectionstyle5.scss
│ ├── sectionstyle6.scss
│ ├── sectionstyle7.scss
│ └── sectionstyle8.scss
└── styles.scss
├── settings.php
├── settings
├── colours_settings.php
├── content_settings.php
├── customlogin_settings.php
├── footer_settings.php
├── fpicons_settings.php
├── image_settings.php
├── markettiles_settings.php
├── menu_settings.php
├── presets_adjustments_settings.php
├── presets_settings.php
└── slideshow_settings.php
├── templates
├── activitygroups.mustache
├── blockspanelslider.mustache
├── columns2.mustache
├── core
│ ├── chooser.mustache
│ ├── loginform.mustache
│ └── navbar.mustache
├── customlogin.mustache
├── footer.mustache
├── fpmarkettiles.mustache
├── fpwonderbox.mustache
├── frontpage.mustache
├── header.mustache
├── login.mustache
├── mydashboard.mustache
├── navbar.mustache
├── progress-bar.mustache
├── slideshow.mustache
├── socialicons.mustache
├── teacherdash.mustache
└── teacherdashmenu.mustache
└── version.php
/README.md:
--------------------------------------------------------------------------------
1 | THEME_Fordson
2 | ===========
3 |
4 | # Fordson
5 |
6 | Fordson is focused on students going from login to learning, with features that help teachers build better courses and students engage with content. Your school is unique and Fordson provides impressive customizations for a professional and modern learning platform.
7 |
8 | # Install from Github
9 | Click on the button to "Clone or Download" https://github.com/dbnschools/moodle-theme_fordson . When downloaded to your computer, unzip it. It should create a folder named "moodle-theme_fordson-master". Rename the folder so that it is "fordson" (without quotes). You can FTP that folder to your moodle site in /moodle/theme/ directory. Or you can create a new ZIP file of the "fordson" folder and upload and install it via the Plugin Administration in Site Administration.
10 |
11 |
12 | # Versions and Updates
13 |
14 | ## Moodle 3.11 Fordson v3.11 release 1
15 | * Fixed breadcrumb spacing issue.
--------------------------------------------------------------------------------
/classes/output/core_renderer_ajax.php:
--------------------------------------------------------------------------------
1 | .
16 |
17 | /**
18 | * Snap core renderer for ajax calls.
19 | *
20 | * @package theme_snap
21 | * @copyright Copyright (c) 2015 Moodlerooms Inc. (http://www.moodlerooms.com)
22 | * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
23 | */
24 |
25 | namespace theme_fordson\output;
26 |
27 | defined('MOODLE_INTERNAL') || die();
28 |
29 | class core_renderer_ajax extends \core_renderer_ajax {
30 |
31 | public function image_url($imagename, $component = 'moodle') {
32 | // Strip -24, -64, -256 etc from the end of filetype icons so we
33 | // only need to provide one SVG, see MDL-47082.
34 | $imagename = \preg_replace('/-\d\d\d?$/', '', $imagename);
35 | return $this->page->theme->image_url($imagename, $component);
36 | }
37 |
38 | }
39 |
--------------------------------------------------------------------------------
/classes/privacy/provider.php:
--------------------------------------------------------------------------------
1 | .
16 |
17 | /**
18 | * Overriden question type shortanswer.
19 | *
20 | * @package theme_fordson
21 | *
22 | */
23 | defined('MOODLE_INTERNAL') || die();
24 |
25 | require_once($CFG->dirroot . '/question/type/shortanswer/renderer.php');
26 |
27 | class theme_fordson_qtype_shortanswer_renderer extends qtype_shortanswer_renderer {
28 | public function formulation_and_controls(question_attempt $qa,
29 | question_display_options $options) {
30 |
31 | $question = $qa->get_question();
32 | $currentanswer = $qa->get_last_qt_var('answer');
33 |
34 | $inputname = $qa->get_qt_field_name('answer');
35 | $inputattributes = array(
36 | 'type' => 'text',
37 | 'name' => $inputname,
38 | 'spellcheck' => 'false',
39 | 'value' => $currentanswer,
40 | 'id' => $inputname,
41 | 'size' => 80,
42 | 'class' => 'form-control',
43 | );
44 |
45 | if ($options->readonly) {
46 | $inputattributes['readonly'] = 'readonly';
47 | }
48 |
49 | $feedbackimg = '';
50 | if ($options->correctness) {
51 | $answer = $question->get_matching_answer(array('answer' => $currentanswer));
52 | if ($answer) {
53 | $fraction = $answer->fraction;
54 | } else {
55 | $fraction = 0;
56 | }
57 | $inputattributes['class'] .= ' ' . $this->feedback_class($fraction);
58 | $feedbackimg = $this->feedback_image($fraction);
59 | }
60 |
61 | $questiontext = $question->format_questiontext($qa);
62 | $placeholder = false;
63 | if (preg_match('/_____+/', $questiontext, $matches)) {
64 | $placeholder = $matches[0];
65 | $inputattributes['size'] = round(strlen($placeholder) * 1.1);
66 | }
67 | $input = html_writer::empty_tag('input', $inputattributes) . $feedbackimg;
68 |
69 | if ($placeholder) {
70 | $inputinplace = html_writer::tag('label', get_string('answer'),
71 | array('for' => $inputattributes['id'], 'class' => 'accesshide'));
72 | $inputinplace .= $input;
73 | $questiontext = substr_replace($questiontext, $inputinplace,
74 | strpos($questiontext, $placeholder), strlen($placeholder));
75 | }
76 |
77 | $result = html_writer::tag('div', $questiontext, array('class' => 'qtext'));
78 |
79 | if (!$placeholder) {
80 | $result .= html_writer::start_tag('div', array('class' => 'ablock form-inline'));
81 | $result .= html_writer::tag('label', get_string('answer', 'qtype_shortanswer',
82 | html_writer::tag('span', $input, array('class' => 'answer'))),
83 | array('for' => $inputattributes['id']));
84 | $result .= html_writer::end_tag('div');
85 | }
86 |
87 | if ($qa->get_state() == question_state::$invalid) {
88 | $result .= html_writer::nonempty_tag('div',
89 | $question->get_validation_error(array('answer' => $currentanswer)),
90 | array('class' => 'validationerror'));
91 | }
92 |
93 | return $result;
94 | }
95 |
96 | }
--------------------------------------------------------------------------------
/javascript/blockslider.js:
--------------------------------------------------------------------------------
1 | $('.blockpanelbutton').click(function () {
2 | var blockslideropen = localStorage.getItem('blockslideropen');
3 |
4 | if (blockslideropen == 1) {
5 | localStorage.setItem('blockslideropen', 0);
6 | } else {
7 | localStorage.setItem('blockslideropen', 1);
8 | }
9 |
10 | });
11 |
12 | if (localStorage.getItem('blockslideropen') == 1) {
13 | $('#blockslider').addClass('show');
14 | }
15 |
--------------------------------------------------------------------------------
/javascript/courseblock.js:
--------------------------------------------------------------------------------
1 | $(document).ready(function () {
2 |
3 | $('.blockpanelbutton').click(function () {
4 | if ($('#blockslider').hasClass('show')) {
5 | window.scrollTo(0, 0);
6 | }
7 | });
8 |
9 | });
10 |
--------------------------------------------------------------------------------
/javascript/scrollspy.js:
--------------------------------------------------------------------------------
1 | $(document).ready(function () {
2 |
3 | $('.edit-btn').click(function () {
4 |
5 | window.sessionStorage.setItem('edit_toggled', true);
6 |
7 | var viewport_top = $(window).scrollTop();
8 | var closest = null;
9 | var closest_offset = null;
10 |
11 | $('.section.main').each(function (e, f) {
12 | var this_offset = $(f).offset().top;
13 |
14 | if ($(closest).offset()) {
15 | closest_offset = $(closest).offset().top;
16 | }
17 | if (closest == null || Math.abs(this_offset - viewport_top) < Math.abs(closest_offset - viewport_top)) {
18 | closest = f;
19 | }
20 | });
21 |
22 | window.sessionStorage.setItem('closest_id', closest.id);
23 | window.sessionStorage.setItem('closest_delta', viewport_top - $(closest).offset().top);
24 |
25 | });
26 |
27 | var edit_toggled = window.sessionStorage.getItem('edit_toggled');
28 |
29 | if (edit_toggled) {
30 |
31 | var closest_id = window.sessionStorage.getItem('closest_id');
32 | var closest_delta = window.sessionStorage.getItem('closest_delta');
33 |
34 | if (closest_id && closest_delta) {
35 | var closest = $('#' + closest_id);
36 | $(window).scrollTop(closest.offset().top + parseInt(closest_delta));
37 | }
38 |
39 | window.sessionStorage.removeItem('edit_toggled');
40 | window.sessionStorage.removeItem('closest_id');
41 | window.sessionStorage.removeItem('closest_delta');
42 |
43 | }
44 |
45 | });
46 |
--------------------------------------------------------------------------------
/javascript/scrolltotop.js:
--------------------------------------------------------------------------------
1 | $(document).ready(function () {
2 | if ($('#back-to-top').length) {
3 | var scrollTrigger = 200, // px
4 | backToTop = function () {
5 | var scrollTop = $(window).scrollTop();
6 | if (scrollTop > scrollTrigger) {
7 | $('#back-to-top').addClass('show');
8 | } else {
9 | $('#back-to-top').removeClass('show');
10 | }
11 | };
12 | backToTop();
13 | $(window).on('scroll', function () {
14 | backToTop();
15 | });
16 | $('#back-to-top').on('click', function (e) {
17 | e.preventDefault();
18 | $('html,body').animate({
19 | scrollTop: 0
20 | }, 700);
21 | });
22 | }
23 | });
24 |
--------------------------------------------------------------------------------
/javascript/tooltipfix.js:
--------------------------------------------------------------------------------
1 | $(document).ready(function () {
2 |
3 | $('[data-tooltip="tooltip"]').on('mouseleave', function () {
4 | $(this).tooltip('hide');
5 | });
6 |
7 | });
8 |
--------------------------------------------------------------------------------
/layout/columns2.php:
--------------------------------------------------------------------------------
1 | .
16 |
17 | /**
18 | * A two column layout for the boost theme.
19 | *
20 | * @package theme_boost
21 | * @copyright 2016 Damyon Wiese
22 | * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
23 | */
24 |
25 | defined('MOODLE_INTERNAL') || die();
26 |
27 | user_preference_allow_ajax_update('drawer-open-nav', PARAM_ALPHA);
28 | require_once($CFG->libdir . '/behat/lib.php');
29 |
30 | $hasfhsdrawer = isset($PAGE->theme->settings->shownavdrawer) && $PAGE->theme->settings->shownavdrawer == 1;
31 | if (isloggedin() && $hasfhsdrawer && isset($PAGE->theme->settings->shownavclosed) && $PAGE->theme->settings->shownavclosed == 0) {
32 | $navdraweropen = (get_user_preferences('drawer-open-nav', 'true') == 'true');
33 | } else {
34 | $navdraweropen = false;
35 | }
36 | $extraclasses = [];
37 | if ($navdraweropen) {
38 | $extraclasses[] = 'drawer-open-left';
39 | }
40 | $bodyattributes = $OUTPUT->body_attributes($extraclasses);
41 | $blockshtml = $OUTPUT->blocks('side-pre');
42 | $hasblocks = strpos($blockshtml, 'data-block=') !== false;
43 |
44 | $blockshtmla = $OUTPUT->blocks('fp-a');
45 | $blockshtmlb = $OUTPUT->blocks('fp-b');
46 | $blockshtmlc = $OUTPUT->blocks('fp-c');
47 | $hasfpblockregion = ($PAGE->theme->settings->blockdisplay == 1) !== false;
48 |
49 | $hasactivitynav = ($PAGE->theme->settings->showactivitynav ==1) !== false;
50 |
51 | $regionmainsettingsmenu = $OUTPUT->region_main_settings_menu();
52 | $templatecontext = [
53 | 'sitename' => format_string($SITE->shortname, true, ['context' => context_course::instance(SITEID) , "escape" => false]) ,
54 | 'output' => $OUTPUT,
55 | 'sidepreblocks' => $blockshtml,
56 | 'fpablocks' => $blockshtmla,
57 | 'fpbblocks' => $blockshtmlb,
58 | 'fpcblocks' => $blockshtmlc,
59 | 'hasfpblockregion' => $hasfpblockregion,
60 | 'hasblocks' => $hasblocks,
61 | 'bodyattributes' => $bodyattributes,
62 | 'navdraweropen' => $navdraweropen,
63 | 'hasfhsdrawer' => $hasfhsdrawer,
64 | 'regionmainsettingsmenu' => $regionmainsettingsmenu,
65 | 'hasregionmainsettingsmenu' => !empty($regionmainsettingsmenu),
66 | 'hasactivitynav' => $hasactivitynav
67 | ];
68 |
69 | $PAGE->requires->jquery();
70 | $PAGE->requires->js('/theme/fordson/javascript/scrolltotop.js');
71 | $PAGE->requires->js('/theme/fordson/javascript/scrollspy.js');
72 | $PAGE->requires->js('/theme/fordson/javascript/blockslider.js');
73 |
74 | $nav = $PAGE->flatnav;
75 | $templatecontext['flatnavigation'] = $nav;
76 | $templatecontext['firstcollectionlabel'] = $nav->get_collectionlabel();
77 | echo $OUTPUT->render_from_template('theme_fordson/columns2', $templatecontext);
--------------------------------------------------------------------------------
/layout/course.php:
--------------------------------------------------------------------------------
1 | .
16 |
17 | /**
18 | * A two column layout for the boost theme.
19 | *
20 | * @package theme_boost
21 | * @copyright 2016 Damyon Wiese
22 | * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
23 | */
24 |
25 | defined('MOODLE_INTERNAL') || die();
26 |
27 | user_preference_allow_ajax_update('drawer-open-nav', PARAM_ALPHA);
28 | require_once($CFG->libdir . '/behat/lib.php');
29 |
30 | $hasfhsdrawer = isset($PAGE->theme->settings->shownavdrawer) && $PAGE->theme->settings->shownavdrawer == 1;
31 | if (isloggedin() && $hasfhsdrawer && isset($PAGE->theme->settings->shownavclosed) && $PAGE->theme->settings->shownavclosed == 0) {
32 | $navdraweropen = (get_user_preferences('drawer-open-nav', 'true') == 'true');
33 | } else {
34 | $navdraweropen = false;
35 | }
36 | $extraclasses = [];
37 | if ($navdraweropen) {
38 | $extraclasses[] = 'drawer-open-left';
39 | }
40 | $bodyattributes = $OUTPUT->body_attributes($extraclasses);
41 | $blockshtml = $OUTPUT->blocks('side-pre');
42 | $hasblocks = strpos($blockshtml, 'data-block=') !== false;
43 |
44 | $blockshtmla = $OUTPUT->blocks('fp-a');
45 | $blockshtmlb = $OUTPUT->blocks('fp-b');
46 | $blockshtmlc = $OUTPUT->blocks('fp-c');
47 | $checkblocka = strpos($blockshtmla, 'data-block=') !== false;
48 | $checkblockb = strpos($blockshtmlb, 'data-block=') !== false;
49 | $checkblockc = strpos($blockshtmlc, 'data-block=') !== false;
50 | $hasfpblockregion = ($PAGE->theme->settings->blockdisplay == 1) !== false;
51 |
52 | $hasactivitynav = ($PAGE->theme->settings->showactivitynav ==1) !== false;
53 |
54 | $hascourseblocks = false;
55 | if ($checkblocka || $checkblockb || $checkblockc) {
56 | $hascourseblocks = true;
57 | }
58 |
59 | $regionmainsettingsmenu = $OUTPUT->region_main_settings_menu();
60 |
61 | $templatecontext = [
62 | 'sitename' => format_string($SITE->shortname, true, ['context' => context_course::instance(SITEID) , "escape" => false]) ,
63 | 'output' => $OUTPUT,
64 | 'sidepreblocks' => $blockshtml,
65 | 'fpablocks' => $blockshtmla,
66 | 'fpbblocks' => $blockshtmlb,
67 | 'fpcblocks' => $blockshtmlc,
68 | 'hasblocks' => $hasblocks,
69 | 'hascourseblocks' => $hascourseblocks,
70 | 'hasfpblockregion' => $hasfpblockregion,
71 | 'bodyattributes' => $bodyattributes,
72 | 'navdraweropen' => $navdraweropen,
73 | 'hasfhsdrawer' => $hasfhsdrawer,
74 | 'regionmainsettingsmenu' => $regionmainsettingsmenu,
75 | 'hasregionmainsettingsmenu' => !empty($regionmainsettingsmenu),
76 | 'hasactivitynav' => $hasactivitynav
77 | ];
78 |
79 | $PAGE->requires->jquery();
80 | $PAGE->requires->js('/theme/fordson/javascript/scrolltotop.js');
81 | $PAGE->requires->js('/theme/fordson/javascript/scrollspy.js');
82 | $PAGE->requires->js('/theme/fordson/javascript/blockslider.js');
83 |
84 | if (isset($PAGE->theme->settings->preset) && $PAGE->theme->settings->preset != 'Spectrum-Achromatic') {
85 | $PAGE->requires->js('/theme/fordson/javascript/courseblock.js');
86 | }
87 |
88 | $nav = $PAGE->flatnav;
89 | $templatecontext['flatnavigation'] = $nav;
90 | $templatecontext['firstcollectionlabel'] = $nav->get_collectionlabel();
91 | echo $OUTPUT->render_from_template('theme_fordson/columns2', $templatecontext);
--------------------------------------------------------------------------------
/layout/frontpage.php:
--------------------------------------------------------------------------------
1 | .
16 |
17 | /**
18 | * A two column layout for the boost theme.
19 | *
20 | * @package theme_boost
21 | * @copyright 2016 Damyon Wiese
22 | * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
23 | */
24 |
25 | defined('MOODLE_INTERNAL') || die();
26 |
27 | user_preference_allow_ajax_update('drawer-open-nav', PARAM_ALPHA);
28 | require_once($CFG->libdir . '/behat/lib.php');
29 |
30 | $hasfhsdrawer = isset($PAGE->theme->settings->shownavdrawer) && $PAGE->theme->settings->shownavdrawer == 1;
31 | if (isloggedin() && $hasfhsdrawer && isset($PAGE->theme->settings->shownavclosed) && $PAGE->theme->settings->shownavclosed == 0) {
32 | $navdraweropen = (get_user_preferences('drawer-open-nav', 'true') == 'true');
33 | } else {
34 | $navdraweropen = false;
35 | }
36 | $extraclasses = [];
37 | if ($navdraweropen) {
38 | $extraclasses[] = 'drawer-open-left';
39 | }
40 |
41 | $enrolform = '';
42 | $plugin = enrol_get_plugin('easy');
43 | if ($plugin && !isguestuser()) {
44 | $enrolform = $plugin->get_form();
45 | }
46 |
47 | $bodyattributes = $OUTPUT->body_attributes($extraclasses);
48 | $headerlogo = $PAGE->theme->setting_file_url('headerlogo', 'headerlogo');
49 | $blockshtml = $OUTPUT->blocks('side-pre');
50 | $hasblocks = strpos($blockshtml, 'data-block=') !== false;
51 |
52 | $blockshtmla = $OUTPUT->blocks('fp-a');
53 | $blockshtmlb = $OUTPUT->blocks('fp-b');
54 | $blockshtmlc = $OUTPUT->blocks('fp-c');
55 | $hasfpblockregion = (isset($PAGE->theme->settings->blockdisplay) && ($PAGE->theme->settings->blockdisplay == 1)) !== false;
56 |
57 | $hasslideshowpages = (isset($PAGE->theme->settings->slideshowpages) && ($PAGE->theme->settings->slideshowpages == 1 || $PAGE->theme->settings->slideshowpages == 2)) !== false;
58 |
59 | $regionmainsettingsmenu = $OUTPUT->region_main_settings_menu();
60 | $templatecontext = [
61 | 'sitename' => format_string($SITE->shortname, true, array('context' => context_course::instance(SITEID))),
62 | 'output' => $OUTPUT,
63 | 'sidepreblocks' => $blockshtml,
64 | 'fpablocks' => $blockshtmla,
65 | 'fpbblocks' => $blockshtmlb,
66 | 'fpcblocks' => $blockshtmlc,
67 | 'hasblocks' => $hasblocks,
68 | 'hasfpblockregion' => $hasfpblockregion,
69 | 'bodyattributes' => $bodyattributes,
70 | 'navdraweropen' => $navdraweropen,
71 | 'hasfhsdrawer' => $hasfhsdrawer,
72 | 'headerlogo' => $headerlogo,
73 | 'regionmainsettingsmenu' => $regionmainsettingsmenu,
74 | 'hasregionmainsettingsmenu' => !empty($regionmainsettingsmenu),
75 | 'enrolform' => $enrolform,
76 | 'hasslideshowpages' => $hasslideshowpages,
77 | ];
78 |
79 | $PAGE->requires->jquery();
80 | $PAGE->requires->js('/theme/fordson/javascript/scrolltotop.js');
81 |
82 | $nav = $PAGE->flatnav;
83 | $templatecontext['flatnavigation'] = $nav;
84 | $templatecontext['firstcollectionlabel'] = $nav->get_collectionlabel();
85 | echo $OUTPUT->render_from_template('theme_fordson/frontpage', $templatecontext);
86 |
87 |
--------------------------------------------------------------------------------
/layout/login.php:
--------------------------------------------------------------------------------
1 | .
16 |
17 | defined('MOODLE_INTERNAL') || die();
18 |
19 | /**
20 | * A login page layout for the boost theme.
21 | *
22 | * @package theme_boost
23 | * @copyright 2016 Damyon Wiese
24 | * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
25 | */
26 |
27 | $bodyattributes = $OUTPUT->body_attributes();
28 | $hasslideshowpages = (isset($PAGE->theme->settings->slideshowpages) && ($PAGE->theme->settings->slideshowpages == 0 || $PAGE->theme->settings->slideshowpages == 2)) !== false;
29 |
30 | $templatecontext = [
31 | 'sitename' => format_string($SITE->shortname, true, ['context' => context_course::instance(SITEID), "escape" => false]),
32 | 'output' => $OUTPUT,
33 | 'bodyattributes' => $bodyattributes,
34 | 'hascustomlogin' => $PAGE->theme->settings->showcustomlogin == 1,
35 | 'hasslideshowpages' => $hasslideshowpages,
36 | ];
37 |
38 | echo $OUTPUT->render_from_template('theme_fordson/login', $templatecontext);
39 |
--------------------------------------------------------------------------------
/layout/mydashboard.php:
--------------------------------------------------------------------------------
1 | .
16 |
17 | /**
18 | * A two column layout for the boost theme.
19 | *
20 | * @package theme_boost
21 | * @copyright 2016 Damyon Wiese
22 | * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
23 | */
24 |
25 | defined('MOODLE_INTERNAL') || die();
26 |
27 | user_preference_allow_ajax_update('drawer-open-nav', PARAM_ALPHA);
28 | require_once($CFG->libdir . '/behat/lib.php');
29 |
30 | $hasfhsdrawer = isset($PAGE->theme->settings->shownavdrawer) && $PAGE->theme->settings->shownavdrawer == 1;
31 | if (isloggedin() && $hasfhsdrawer && isset($PAGE->theme->settings->shownavclosed) && $PAGE->theme->settings->shownavclosed == 0) {
32 | $navdraweropen = (get_user_preferences('drawer-open-nav', 'true') == 'true');
33 | } else {
34 | $navdraweropen = false;
35 | }
36 | $extraclasses = [];
37 | if ($navdraweropen) {
38 | $extraclasses[] = 'drawer-open-left';
39 | }
40 |
41 | $enrolform = '';
42 | $plugin = enrol_get_plugin('easy');
43 | if ($plugin && !isguestuser()) {
44 | $enrolform = $plugin->get_form();
45 | }
46 |
47 | $bodyattributes = $OUTPUT->body_attributes($extraclasses);
48 | $headerlogo = $PAGE->theme->setting_file_url('headerlogo', 'headerlogo');
49 | $blockshtml = $OUTPUT->blocks('side-pre');
50 | $hasblocks = strpos($blockshtml, 'data-block=') !== false;
51 |
52 | $blockshtmla = $OUTPUT->blocks('fp-a');
53 | $blockshtmlb = $OUTPUT->blocks('fp-b');
54 | $blockshtmlc = $OUTPUT->blocks('fp-c');
55 | $checkblocka = strpos($blockshtmla, 'data-block=') !== false;
56 | $checkblockb = strpos($blockshtmlb, 'data-block=') !== false;
57 | $checkblockc = strpos($blockshtmlc, 'data-block=') !== false;
58 | $hasfpblockregion = ($PAGE->theme->settings->blockdisplay == 1) !== false;
59 |
60 | $hascourseblocks = false;
61 | if ($checkblocka || $checkblockb || $checkblockc) {
62 | $hascourseblocks = true;
63 | }
64 | $hasslideshowpages = (isset($PAGE->theme->settings->slideshowpages) && ($PAGE->theme->settings->slideshowpages == 1 || $PAGE->theme->settings->slideshowpages == 2)) !== false;
65 |
66 | $regionmainsettingsmenu = $OUTPUT->region_main_settings_menu();
67 | $templatecontext = [
68 | 'sitename' => format_string($SITE->shortname, true, array('context' => context_course::instance(SITEID))),
69 | 'output' => $OUTPUT,
70 | 'sidepreblocks' => $blockshtml,
71 | 'fpablocks' => $blockshtmla,
72 | 'fpbblocks' => $blockshtmlb,
73 | 'fpcblocks' => $blockshtmlc,
74 | 'hasblocks' => $hasblocks,
75 | 'hascourseblocks' => $hascourseblocks,
76 | 'hasfpblockregion' => $hasfpblockregion,
77 | 'bodyattributes' => $bodyattributes,
78 | 'navdraweropen' => $navdraweropen,
79 | 'hasfhsdrawer' => $hasfhsdrawer,
80 | 'headerlogo' => $headerlogo,
81 | 'regionmainsettingsmenu' => $regionmainsettingsmenu,
82 | 'hasregionmainsettingsmenu' => !empty($regionmainsettingsmenu),
83 | 'enrolform' => $enrolform,
84 | 'hasslideshowpages' => $hasslideshowpages,
85 | ];
86 |
87 | $PAGE->requires->jquery();
88 | $PAGE->requires->js('/theme/fordson/javascript/scrolltotop.js');
89 | $PAGE->requires->js('/theme/fordson/javascript/blockslider.js');
90 | if ($PAGE->theme->settings->preset != 'Spectrum-Achromatic') {
91 | $PAGE->requires->js('/theme/fordson/javascript/courseblock.js');
92 | }
93 |
94 | $nav = $PAGE->flatnav;
95 | $templatecontext['flatnavigation'] = $nav;
96 | $templatecontext['firstcollectionlabel'] = $nav->get_collectionlabel();
97 | echo $OUTPUT->render_from_template('theme_fordson/mydashboard', $templatecontext);
98 |
99 |
--------------------------------------------------------------------------------
/lib.php:
--------------------------------------------------------------------------------
1 | .
16 |
17 | /**
18 | * Main Lib file.
19 | *
20 | * @package theme_fordson
21 | * @copyright 2016 Chris Kenniburg
22 | * @credits theme_boost - MoodleHQ
23 | * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
24 | */
25 |
26 | /* THEME_fordson BUILDING NOTES
27 | * =============================
28 | * Lib functions have been split into separate files, which are called
29 | * from this central file. This is to aid ongoing development as I find
30 | * it easier to work with multiple smaller function-specific files than
31 | * with a single monolithic lib file. This may be a personal preference
32 | * and it would be quite feasible to bring all lib functions back into
33 | * a single central file if another developer prefered to work in that way.
34 | */
35 |
36 | defined('MOODLE_INTERNAL') || die();
37 |
38 | require('lib/scss_lib.php');
39 | require('lib/filesettings_lib.php');
40 | require('lib/fordson_lib.php');
--------------------------------------------------------------------------------
/lib/fordson_lib.php:
--------------------------------------------------------------------------------
1 | .
16 |
17 | /**
18 | * FileSettings Lib file.
19 | *
20 | * @package theme_fordson
21 | * @copyright 2016 Chris Kenniburg
22 | * @credits theme_boost - MoodleHQ
23 | * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
24 | */
25 |
26 | /**
27 | * Serves any files associated with the theme settings.
28 | *
29 | * @param stdClass $course
30 | * @param stdClass $cm
31 | * @param context $context
32 | * @param string $filearea
33 | * @param array $args
34 | * @param bool $forcedownload
35 | * @param array $options
36 | * @return bool
37 | */
38 |
39 | defined('MOODLE_INTERNAL') || die();
40 |
41 | function theme_fordson_get_course_activities() {
42 | GLOBAL $CFG, $PAGE, $OUTPUT;
43 | // A copy of block_activity_modules.
44 | $course = $PAGE->course;
45 | $content = new stdClass();
46 | $modinfo = get_fast_modinfo($course);
47 | $modfullnames = array();
48 |
49 | $archetypes = array();
50 |
51 | foreach ($modinfo->cms as $cm) {
52 | // Exclude activities which are not visible or have no link (=label).
53 | if (!$cm->uservisible or !$cm->has_view()) {
54 | continue;
55 | }
56 | if (array_key_exists($cm->modname, $modfullnames)) {
57 | continue;
58 | }
59 | if (!array_key_exists($cm->modname, $archetypes)) {
60 | $archetypes[$cm->modname] = plugin_supports('mod', $cm->modname, FEATURE_MOD_ARCHETYPE, MOD_ARCHETYPE_OTHER);
61 | }
62 | if ($archetypes[$cm->modname] == MOD_ARCHETYPE_RESOURCE) {
63 | if (!array_key_exists('resources', $modfullnames)) {
64 | $modfullnames['resources'] = get_string('resources');
65 | }
66 | } else {
67 | $modfullnames[$cm->modname] = $cm->modplural;
68 | }
69 | }
70 | core_collator::asort($modfullnames);
71 |
72 | return $modfullnames;
73 | }
74 |
75 | function theme_fordson_strip_html_tags( $text ) {
76 | $text = preg_replace(
77 | array(
78 | // Remove invisible content.
79 | '@
]*?>.*?@siu',
80 | '@@siu',
81 | '@@siu',
82 | '@]*?.*? @siu',
83 | '@]*?.*? @siu',
84 | '@]*?.*? @siu',
85 | '@]*?.*? @siu',
86 | '@]*?.*? @siu',
87 | '@]*?.*? @siu',
88 | // Add line breaks before and after blocks.
89 | '@?((address)|(blockquote)|(center)|(del))@iu',
90 | '@?((div)|(h[1-9])|(ins)|(isindex)|(p)|(pre))@iu',
91 | '@?((dir)|(dl)|(dt)|(dd)|(li)|(menu)|(ol)|(ul))@iu',
92 | '@?((table)|(th)|(td)|(caption))@iu',
93 | '@?((form)|(button)|(fieldset)|(legend)|(input))@iu',
94 | '@?((label)|(select)|(optgroup)|(option)|(textarea))@iu',
95 | '@?((frameset)|(frame)|(iframe))@iu',
96 | ),
97 | array(
98 | ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
99 | "\n\$0", "\n\$0", "\n\$0", "\n\$0", "\n\$0", "\n\$0",
100 | "\n\$0", "\n\$0",
101 | ),
102 | $text
103 | );
104 | return strip_tags( $text );
105 | }
106 |
107 | /**
108 | * Cut the Course content.
109 | *
110 | * @param $str
111 | * @param $n
112 | * @param $end_char
113 | * @return string
114 | */
115 | function theme_fordson_course_trim_char($str, $n = 500, $endchar = '…') {
116 | if (strlen($str) < $n) {
117 | return $str;
118 | }
119 |
120 | $str = preg_replace("/\s+/", ' ', str_replace(array("\r\n", "\r", "\n"), ' ', $str));
121 | if (strlen($str) <= $n) {
122 | return $str;
123 | }
124 |
125 | $out = "";
126 | $small = substr($str, 0, $n);
127 | $out = $small.$endchar;
128 | return $out;
129 | }
130 |
131 | function page_location_incourse_themeconfig() {
132 | GLOBAL $PAGE;
133 | $course = $PAGE->cm;
134 |
135 | if ($course) {
136 | return true;
137 | } else {
138 | return false;
139 | }
140 |
141 | }
--------------------------------------------------------------------------------
/pix/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbnschools/moodle-theme_fordson/ba04c6d4456f32dc2f49be52faefcbdf56d5f863/pix/favicon.ico
--------------------------------------------------------------------------------
/pix/headerbg-old2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbnschools/moodle-theme_fordson/ba04c6d4456f32dc2f49be52faefcbdf56d5f863/pix/headerbg-old2.jpg
--------------------------------------------------------------------------------
/pix/headerbg.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbnschools/moodle-theme_fordson/ba04c6d4456f32dc2f49be52faefcbdf56d5f863/pix/headerbg.jpg
--------------------------------------------------------------------------------
/pix/noimg-old2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbnschools/moodle-theme_fordson/ba04c6d4456f32dc2f49be52faefcbdf56d5f863/pix/noimg-old2.jpg
--------------------------------------------------------------------------------
/pix/noimg.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbnschools/moodle-theme_fordson/ba04c6d4456f32dc2f49be52faefcbdf56d5f863/pix/noimg.jpg
--------------------------------------------------------------------------------
/pix/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbnschools/moodle-theme_fordson/ba04c6d4456f32dc2f49be52faefcbdf56d5f863/pix/screenshot.png
--------------------------------------------------------------------------------
/pix_core/f/archive.svg:
--------------------------------------------------------------------------------
1 |
2 | image/svg+xml
--------------------------------------------------------------------------------
/pix_core/f/avi.svg:
--------------------------------------------------------------------------------
1 |
2 | image/svg+xml
--------------------------------------------------------------------------------
/pix_core/f/base.svg:
--------------------------------------------------------------------------------
1 |
2 |
17 |
19 |
20 |
22 | image/svg+xml
23 |
25 |
26 |
27 |
28 |
30 |
50 |
54 |
55 |
--------------------------------------------------------------------------------
/pix_core/f/bmp.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/pix_core/f/database.svg:
--------------------------------------------------------------------------------
1 |
2 |
17 |
19 |
20 |
22 | image/svg+xml
23 |
25 |
26 |
27 |
28 |
30 |
50 |
54 |
55 |
--------------------------------------------------------------------------------
/pix_core/f/document.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/pix_core/f/draw.svg:
--------------------------------------------------------------------------------
1 |
2 | image/svg+xml
--------------------------------------------------------------------------------
/pix_core/f/eps.svg:
--------------------------------------------------------------------------------
1 |
2 | image/svg+xml
--------------------------------------------------------------------------------
/pix_core/f/epub.svg:
--------------------------------------------------------------------------------
1 |
2 | image/svg+xml
--------------------------------------------------------------------------------
/pix_core/f/flash.svg:
--------------------------------------------------------------------------------
1 |
2 | image/svg+xml
--------------------------------------------------------------------------------
/pix_core/f/folder.svg:
--------------------------------------------------------------------------------
1 |
2 | image/svg+xml
--------------------------------------------------------------------------------
/pix_core/f/gif.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/pix_core/f/image.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/pix_core/f/impress.svg:
--------------------------------------------------------------------------------
1 |
2 |
15 |
17 |
18 |
20 | image/svg+xml
21 |
23 |
24 |
25 |
26 |
46 |
48 |
50 |
51 |
53 |
57 |
65 |
70 |
78 |
86 |
94 |
102 |
110 |
111 |
112 |
--------------------------------------------------------------------------------
/pix_core/f/jpeg.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/pix_core/f/mpeg.svg:
--------------------------------------------------------------------------------
1 |
2 | image/svg+xml
--------------------------------------------------------------------------------
/pix_core/f/pdf.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
9 |
10 |
17 |
18 |
--------------------------------------------------------------------------------
/pix_core/f/png.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/pix_core/f/powerpoint.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/pix_core/f/psd.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/pix_core/f/publisher.svg:
--------------------------------------------------------------------------------
1 |
2 | image/svg+xml
--------------------------------------------------------------------------------
/pix_core/f/quicktime.svg:
--------------------------------------------------------------------------------
1 |
2 | image/svg+xml
--------------------------------------------------------------------------------
/pix_core/f/spreadsheet.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/pix_core/f/text.svg:
--------------------------------------------------------------------------------
1 |
2 | image/svg+xml
--------------------------------------------------------------------------------
/pix_core/f/tiff.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/pix_core/f/unknown.svg:
--------------------------------------------------------------------------------
1 |
2 | image/svg+xml
--------------------------------------------------------------------------------
/pix_core/f/video.svg:
--------------------------------------------------------------------------------
1 |
2 | image/svg+xml
--------------------------------------------------------------------------------
/pix_core/f/wmv.svg:
--------------------------------------------------------------------------------
1 |
2 | image/svg+xml
--------------------------------------------------------------------------------
/pix_core/f/writer.svg:
--------------------------------------------------------------------------------
1 |
2 | image/svg+xml
--------------------------------------------------------------------------------
/pix_core/i/completion-auto-fail.svg:
--------------------------------------------------------------------------------
1 |
2 |
19 |
21 |
22 |
24 | image/svg+xml
25 |
27 |
28 |
29 |
30 |
50 |
52 |
55 |
56 |
58 |
62 |
63 |
68 |
69 |
--------------------------------------------------------------------------------
/pix_core/i/completion-auto-n.svg:
--------------------------------------------------------------------------------
1 |
2 |
20 |
22 |
23 |
25 | image/svg+xml
26 |
28 |
29 |
30 |
31 |
32 |
34 |
54 |
59 |
60 |
--------------------------------------------------------------------------------
/pix_core/i/completion-auto-pass.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
11 |
12 |
13 |
14 |
16 |
17 |
--------------------------------------------------------------------------------
/pix_core/i/completion-auto-y.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
11 |
12 |
13 |
14 |
16 |
17 |
--------------------------------------------------------------------------------
/pix_core/i/completion-manual-n.svg:
--------------------------------------------------------------------------------
1 |
2 |
18 |
20 |
21 |
23 | image/svg+xml
24 |
26 |
27 |
28 |
29 |
31 |
51 |
55 |
59 |
60 |
--------------------------------------------------------------------------------
/pix_core/i/completion-manual-y.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
11 |
12 |
13 |
14 |
16 |
17 |
--------------------------------------------------------------------------------
/pix_plugins/mod/assign/icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
18 |
20 |
21 |
23 | image/svg+xml
24 |
26 |
27 |
28 |
29 |
31 |
51 |
55 |
60 |
61 |
--------------------------------------------------------------------------------
/pix_plugins/mod/assignment/icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
18 |
20 |
21 |
23 | image/svg+xml
24 |
26 |
27 |
28 |
29 |
31 |
51 |
55 |
60 |
61 |
--------------------------------------------------------------------------------
/pix_plugins/mod/book/icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | image/svg+xml
--------------------------------------------------------------------------------
/pix_plugins/mod/certificate/icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
11 |
12 |
13 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/pix_plugins/mod/chat/icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
11 |
12 |
13 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/pix_plugins/mod/choice/icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
11 |
12 |
13 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/pix_plugins/mod/data/icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
11 |
12 |
13 |
14 |
17 |
18 |
--------------------------------------------------------------------------------
/pix_plugins/mod/feedback/icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
11 |
12 |
13 |
14 |
17 |
18 |
--------------------------------------------------------------------------------
/pix_plugins/mod/folder/icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
13 |
14 |
15 |
16 |
17 |
18 |
20 |
21 |
22 |
23 |
24 |
26 |
27 |
28 |
29 |
31 |
32 |
33 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/pix_plugins/mod/forum/icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
11 |
12 |
13 |
14 |
16 |
17 |
--------------------------------------------------------------------------------
/pix_plugins/mod/glossary/icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
11 |
12 |
13 |
14 |
17 |
18 |
--------------------------------------------------------------------------------
/pix_plugins/mod/label/icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
11 |
12 |
13 |
14 |
17 |
18 |
--------------------------------------------------------------------------------
/pix_plugins/mod/lesson/icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
18 |
20 |
21 |
23 | image/svg+xml
24 |
26 |
27 |
28 |
29 |
31 |
51 |
55 |
60 |
61 |
--------------------------------------------------------------------------------
/pix_plugins/mod/lti/icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
11 |
12 |
13 |
14 |
17 |
18 |
--------------------------------------------------------------------------------
/pix_plugins/mod/page/icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
18 |
20 |
21 |
23 | image/svg+xml
24 |
26 |
27 |
28 |
29 |
31 |
51 |
55 |
60 |
61 |
--------------------------------------------------------------------------------
/pix_plugins/mod/questionnaire/icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
11 |
12 |
13 |
14 |
17 |
18 |
--------------------------------------------------------------------------------
/pix_plugins/mod/quiz/icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
18 |
20 |
21 |
23 | image/svg+xml
24 |
26 |
27 |
28 |
29 |
31 |
51 |
55 |
60 |
61 |
--------------------------------------------------------------------------------
/pix_plugins/mod/resource/icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
11 |
12 |
13 |
14 |
17 |
18 |
--------------------------------------------------------------------------------
/pix_plugins/mod/scorm/icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
11 |
12 |
13 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/pix_plugins/mod/survey/icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
11 |
12 |
13 |
14 |
17 |
18 |
--------------------------------------------------------------------------------
/pix_plugins/mod/url/icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
18 |
20 |
21 |
23 | image/svg+xml
24 |
26 |
27 |
28 |
29 |
31 |
51 |
55 |
60 |
61 |
--------------------------------------------------------------------------------
/pix_plugins/mod/wiki/icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | image/svg+xml
--------------------------------------------------------------------------------
/pix_plugins/mod/workshop/icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
18 |
20 |
21 |
23 | image/svg+xml
24 |
26 |
27 |
28 |
29 |
31 |
51 |
56 |
60 |
61 |
--------------------------------------------------------------------------------
/scss/fordson_variables.scss:
--------------------------------------------------------------------------------
1 | // Default Fordson theme variables
2 |
3 | $fpicon-width: 100px !default;
4 | $fpiconcreate-width: 150px !default;
5 | $fploginform: rgba(255, 255, 255, 0.9) !default;
6 |
7 | $headerimagepadding: 275px !default;
8 | $showheadergradient: 0 !default;
9 |
10 | $courseboxheight: 250px !default;
11 |
12 | $marketing1image: #fff !default;
13 | $marketing2image: #fff !default;
14 | $marketing3image: #fff !default;
15 | $marketing4image: #fff !default;
16 | $marketing5image: #fff !default;
17 | $marketing6image: #fff !default;
18 | $markettile-radius: 5px !default;
19 | $markettextbg: rgba(255, 255, 255, 0.8) !default;
20 |
21 | $border-radius: 4px !default;
22 |
23 | $learningcontentpadding: 400px !default;
24 |
25 | $blockwidthfordson: 280px !default;
26 |
27 | $drawer-bg: darken($body-bg, 5%) !default;
28 | $footer-bg: $gray-800 !default;
29 | $breadcrumb-bg: $primary !default;
30 | $breadcrumb-bg-hover: darken($breadcrumb-bg, 15%) !default;
31 | $breadcrumb-text-color: #ffffff !default;
32 | $breadcrumbdash: #ffffff !default;
33 | $breadcrumbdimmed: $gray-600 !default;
34 |
35 | $slideshowheight: 250px !default;
36 |
37 | $activityiconsize: 36px !default;
38 | $activityhover: #fff6ae !default;
39 |
40 | $gutterwidth: 2rem !default;
41 |
42 | $calendartoday: #fbffba !default;
43 | $custommenu-bg: #fff !default;
44 |
45 | $sectionnamehighlight : #43d0f3 !default;
46 | $dpsaccentcolor: #44d4a6 !default;
47 | $sectionactivitybkg: #fdfdfd !default;
48 | $sectionbkg: $sectionactivitybkg !default;
49 | $layout5imgoverlay: rgba(0,0,0,0.5) !default;
50 | $spectrum-base: #3fcbda !default;
51 | $elearningcontentbkg: rgba(255,255,255,0.6) !default;
52 |
53 | //Preset Checks for unique styling
54 | $spectrumpreset: 0 !default;
55 | $modernmoodlepreset: 0 !default;
56 | $perceptionpreset: 0 !default;
57 |
58 | $topnavbarbg: $white !default;
59 | $teachernavbarcolor: #f3e420 !default;
60 | $studentnavbarcolor: $topnavbarbg !default;
61 | $navbar-fhs-color: $black !default;
62 | $navbar-fhs-active-color: $black !default;
63 | $navbar-fhs-hover-color: $black !default;
64 | $navbar-fhs-disabled-color: $black !default;
65 | $navbar-fhs-toggler-border-color: initial !default;
66 | $navbar-fhs-toggler-icon-bg: initial !default;
67 |
68 | $perceptionfontsize: 1.25rem !default;
--------------------------------------------------------------------------------
/scss/marketingstyle/marketingstyle1.scss:
--------------------------------------------------------------------------------
1 | .markettiles {
2 | margin: 1rem 0;
3 | }
4 |
5 | .market-tile {
6 | margin: 1rem 0rem;
7 | background-color: $body-bg;
8 | padding: 1rem;
9 | border-top: 10px solid $dark;
10 | }
11 |
12 | .marketcontent {
13 | padding: 1rem;
14 | background-color: $markettextbg;
15 | height: 10rem;
16 | overflow: auto;
17 | margin-bottom: 1rem;
18 | }
--------------------------------------------------------------------------------
/scss/marketingstyle/marketingstyle2.scss:
--------------------------------------------------------------------------------
1 | .markettiles {
2 | margin: 1rem 0;
3 | }
4 |
5 | .col-md-4 .market-tile {
6 | text-decoration:none;
7 | color:#000;
8 | background:#ffc;
9 | display:block;
10 | padding:1rem;
11 | margin: 1rem 0;
12 | transform: rotate(1deg);
13 | box-shadow: 0px 4px 6px #333;
14 | border-top: 2rem solid rgba($dark,0.3);
15 | }
16 |
17 | .col-md-4:nth-child(odd) .market-tile {
18 | transform: rotate(-2deg);
19 | }
20 |
21 | .marketcontent {
22 | padding: 1rem;
23 | background-color: $markettextbg;
24 | height: 10rem;
25 | overflow: auto;
26 | margin-bottom: 1rem;
27 | }
28 |
29 | .market-tile .card-title {
30 | border-bottom: 1px dotted $dark;
31 | }
--------------------------------------------------------------------------------
/scss/marketingstyle/marketingstyle3.scss:
--------------------------------------------------------------------------------
1 | .markettiles {
2 | margin: 1rem 0;
3 | }
4 |
5 | .market-tile {
6 | margin: 1rem 0rem;
7 | padding: 1rem;
8 | background-color: $gray-100;
9 | border: 1px solid $gray-200;
10 | }
11 |
12 | .marketcontent {
13 | height: 14rem;
14 | overflow: auto;
15 | }
16 |
17 | .marketcontent .text_to_html {
18 | padding: .5rem;
19 | background-color: rgba($white,0.8);
20 | }
21 |
22 | .market-tile .btn-primary {
23 | display: block;
24 | }
25 |
26 | @if $perceptionpreset == 1 {
27 | .market-tile {
28 | margin: 1rem 0rem;
29 | padding: 0;
30 | background-color: $gray-100;
31 | border: 1px solid $gray-200;
32 | border-top: 7px solid $perception-base;
33 | }
34 | .market-tile .card-title {
35 | padding: 1rem .5rem;
36 | background-color: $gray-200;
37 | margin-bottom: 0;
38 | }
39 | .marketcontent {
40 | height: 10rem;
41 | overflow: auto;
42 | }
43 | .market-tile .btn-primary {
44 | margin-top: .25rem;
45 | color: $dark;
46 | background-color: $gray-200;
47 | border-color: $gray-200;
48 | display: inline-block;
49 | }
50 |
51 | }
--------------------------------------------------------------------------------
/scss/marketingstyle/marketingstyle4.scss:
--------------------------------------------------------------------------------
1 | .markettiles {
2 | margin: 1rem 0;
3 | }
4 |
5 | .market-tile {
6 | margin: 1rem 0rem;
7 | background-color: $gray-100;
8 | box-shadow: 0px -1px 12px 1px rgba($gray-700, 0.8);
9 | }
10 |
11 | .market-tile .btn-primary {
12 | display: block;
13 | }
14 |
15 | .market-tile .card-title {
16 | padding: 1rem;
17 | }
18 |
19 | .marketcontent {
20 | height: 10rem;
21 | overflow: auto;
22 | position: relative;
23 | }
24 |
25 | .marketcontent .text_to_html {
26 | padding: .5rem;
27 | background-color: rgba($dark,0.6);
28 | color: $white;
29 | font-weight: bold;
30 | position: absolute;
31 | top: 0;
32 | left: 0;
33 | width: 100%;
34 | }
35 |
36 | .marketcontent .text_to_html a {
37 | text-decoration: underline;
38 | color: $white;
39 | }
40 |
41 | .marketcontent .text_to_html a:hover {
42 | color: darken($white, 15%);
43 | }
--------------------------------------------------------------------------------
/scss/pagelayout/layout5.scss:
--------------------------------------------------------------------------------
1 | //
2 | // The MIT License (MIT)
3 | //
4 | // Copyright (c) 2013 Thomas Park
5 | //
6 | // Permission is hereby granted, free of charge, to any person obtaining a copy
7 | // of this software and associated documentation files (the "Software"), to deal
8 | // in the Software without restriction, including without limitation the rights
9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | // copies of the Software, and to permit persons to whom the Software is
11 | // furnished to do so, subject to the following conditions:
12 | //
13 | // The above copyright notice and this permission notice shall be included in
14 | // all copies or substantial portions of the Software.
15 | //
16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 | // THE SOFTWARE.
23 | //
24 | $bootstrap-sass-asset-helper: false !default;
25 |
26 | .page-context-header .page-header-headings {
27 | padding: .25rem .5rem;
28 | background-color: $primary;
29 | border-radius: .5rem;
30 | margin-top: 1.25rem;
31 | margin-bottom: .25rem;
32 | }
33 | div#page-navbar {
34 | z-index: 1;
35 | }
36 |
37 | //Add space on top for Fordson block slider button
38 | .pt-3, .py-3 {
39 | padding-top: 3rem!important;
40 | }
41 |
42 | #region-main {
43 | border: 1px solid $border-color;
44 | background-color: initial;
45 | }
46 |
47 | .pagelayout-mydashboard #region-main {
48 | background-color: $card-bg;
49 | padding: 1rem;
50 | }
51 |
52 | #page-content .page-context-header .page-header-headings {
53 | background-color: initial;
54 | }
55 |
56 | .page-context-header .page-header-headings h1 {
57 | color: $white;
58 | margin: 0;
59 | }
60 |
61 | #page-site-index .page-context-header .page-header-headings {
62 | background-color: transparent;
63 | }
64 |
65 | .headerbkg {
66 | height: 100%;
67 | width: 100%;
68 | position: absolute;
69 | top: 0;
70 | left: 0;
71 | right: 0;
72 | bottom: 0;
73 | z-index: 0;
74 | }
75 |
76 | //Button fixes for display over images
77 | #page-header .btn.btn-secondary {
78 | background-color: $white;
79 | }
80 | #page-header .btn.btn-secondary:hover {
81 | background-color: darken($primary, 10%);
82 | }
83 |
84 | div#learningcontent {
85 | position: relative;
86 | background-color: transparent;
87 | }
88 |
89 | .breadcrumb {
90 | padding: .25rem .5rem;
91 | background-color: $card-bg;
92 | border-radius: $border-radius;
93 | }
94 |
95 | @media screen and (max-width: 576px) {
96 | .breadcrumb {
97 | background-color:rgba(255,255,255,0.8)!important;
98 | padding: 1rem;
99 | }
100 | }
101 |
102 |
103 | // Scrollbars
104 |
105 | #nav-drawer::-webkit-scrollbar {
106 | width: 7px;
107 | }
108 |
109 | #nav-drawer::-webkit-scrollbar-track {
110 | -webkit-box-shadow: inset 0 0 7px rgba(0, 0, 0, 0.6);
111 | border-radius: 5%;
112 | }
113 |
114 | #nav-drawer::-webkit-scrollbar-thumb {
115 | background-color: darken($primary, 15%);
116 | outline: 1px solid slategrey;
117 | }
118 |
119 |
120 | // Fixes for phone with main content area
121 |
122 | @media screen and (max-width: 576px) {
123 | #page-course-view-topics .course-content ul.topics li.section {
124 | padding: 2rem 0;
125 | }
126 | .card-block {
127 | padding: .5rem;
128 | }
129 | .section li.activity {
130 | padding: .5rem;
131 | }
132 | .course-content ul.section {
133 | margin: 0;
134 | }
135 | #page.container-fluid {
136 | padding: 0;
137 | }
138 | .row {
139 | margin-left: 0;
140 | margin-right: 0;
141 | }
142 | .p-a-1 {
143 | padding: 0 !important;
144 | }
145 | }
146 |
147 | // Activity navigation
148 |
149 | .course-content .single-section .section-navigation {
150 | padding: 1rem;
151 | border-radius: 3px;
152 | margin: 0!important;
153 | border-top: 7px solid rgba(0,0,0,.2);
154 | border-radius: 0;
155 | }
156 |
157 | // Preset specific styling.
158 |
159 | @if $spectrumpreset == 1 {
160 | #page-header .pt-3, #page-header .py-3 {
161 | padding-top: 0!important;
162 | }
163 | div#page-content {
164 | padding: 0 2rem;
165 | }
166 | }
167 |
168 | @if $modernmoodlepreset == 1 {
169 | #page-header .pb-3 {
170 | padding-top: 0!important;
171 | }
172 | }
173 |
--------------------------------------------------------------------------------
/scss/preset.scss:
--------------------------------------------------------------------------------
1 | // This file is intentionally empty.
2 |
--------------------------------------------------------------------------------
/scss/preset/Boost.scss:
--------------------------------------------------------------------------------
1 | // Bootstrap variables
2 |
3 | $white: #fff !default;
4 | $gray-100: #f8f9fa !default;
5 | $gray-200: #e9ecef !default;
6 | $gray-300: #dee2e6 !default;
7 | $gray-400: #ced4da !default;
8 | $gray-500: #adb5bd !default;
9 | $gray-600: #868e96 !default;
10 | $gray-700: #495057 !default;
11 | $gray-800: #373a3c !default;
12 | $gray-900: #212529 !default;
13 | $black: #000 !default;
14 |
15 | $blue: #1177d1 !default;
16 | $indigo: #6610f2 !default;
17 | $purple: #613d7c !default;
18 | $pink: #e83e8c !default;
19 | $red: #d9534f !default;
20 | $orange: #f0ad4e !default;
21 | $yellow: #ff7518 !default;
22 | $green: #5cb85c !default;
23 | $teal: #20c997 !default;
24 | $cyan: #5bc0de !default;
25 |
26 | $primary: $blue !default;
27 | $secondary: $gray-800 !default;
28 | $success: $green !default;
29 | $info: $cyan !default;
30 | $warning: $yellow !default;
31 | $danger: $red !default;
32 | $light: $gray-100 !default;
33 | $dark: $gray-800 !default;
34 |
35 | // Options
36 | $enable-rounded: false !default;
37 |
38 | // Body
39 | $body-color: $gray-800 !default;
40 |
41 | // Fonts
42 | $font-size-base: 0.9375rem !default;
43 | $headings-font-weight: 300 !default;
44 |
45 | // Navbar
46 | $navbar-dark-hover-color: rgba($white, 1) !default;
47 | $navbar-light-hover-color: rgba($black, .9) !default;
48 |
49 | // Breadcrumbs
50 | $breadcrumb-padding-y: .25rem !default;
51 | $breadcrumb-padding-x: 0 !default;
52 | $breadcrumb-item-padding: .5rem !default;
53 | $breadcrumb-margin-bottom: 0 !default;
54 | $breadcrumb-bg: transparent !default;
55 | $breadcrumb-divider: "/" !default;
56 | $breadcrumb-divider-rtl: "/" !default;
57 |
58 | $breadcrumb-bg: $primary !default;
59 | $breadcrumb-bg-hover: darken($primary, 15%) !default;
60 | $breadcrumb-text-color: $white !default;
61 | $breadcrumbdash: $gray-200 !default;
62 | $breadcrumbdimmed: $gray-600 !default;
63 |
64 | // Alerts
65 | $alert-border-width: 0 !default;
66 |
67 | $card-group-margin: .25rem;
68 |
69 | $theme-colors: (
70 | primary: $primary,
71 | secondary: $gray-200,
72 | success: $success,
73 | info: $info,
74 | warning: $orange,
75 | danger: $danger,
76 | light: $gray-100,
77 | dark: $gray-800
78 | );
79 |
80 | // Import FontAwesome.
81 | @import "../../boost/scss/fontawesome";
82 |
83 | // Import All of Bootstrap
84 | @import "../../boost/scss/bootstrap";
85 |
86 | // Import Core moodle CSS
87 | @import "../../boost/scss/moodle";
88 |
89 |
90 | // Preset CSS
91 |
92 | body {
93 | -webkit-font-smoothing: antialiased;
94 | }
95 |
96 | .navbar {
97 | box-shadow: 0 2px 4px rgba(0, 0, 0, .08);
98 | }
99 |
100 | .filemanager-container,
101 | .filepicker-filelist {
102 | @extend .border;
103 | }
104 |
105 | // Rounded user pictures
106 | .userpicture {
107 | border-radius: 50%;
108 | }
109 |
110 | // Reset the default styling back to the bootstrap defaults for
111 | // the secondary outline button because gray-200 is much too light
112 | // for an outline button.
113 | .btn-outline-secondary {
114 | @include button-outline-variant($gray-600);
115 | border-color: $border-color;
116 | }
117 |
--------------------------------------------------------------------------------
/scss/sectionlayout/sectionstyle1.scss:
--------------------------------------------------------------------------------
1 | //
2 | // The MIT License (MIT)
3 | //
4 | // Copyright (c) 2013 Thomas Park
5 | //
6 | // Permission is hereby granted, free of charge, to any person obtaining a copy
7 | // of this software and associated documentation files (the "Software"), to deal
8 | // in the Software without restriction, including without limitation the rights
9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | // copies of the Software, and to permit persons to whom the Software is
11 | // furnished to do so, subject to the following conditions:
12 | //
13 | // The above copyright notice and this permission notice shall be included in
14 | // all copies or substantial portions of the Software.
15 | //
16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 | // THE SOFTWARE.
23 | //
24 |
25 | // --------------------------------------------------
26 |
27 | /* stylelint-disable color-hex-length */
28 |
29 | /**
30 | * Default preset file.
31 | *
32 | * Use this space to customise variables, create mixins and override SCSS.
33 | */
34 |
35 | //Styling
36 | #page-course-view-topics .course-content .section-summary {
37 | border: 0;
38 | border-bottom: 1px solid $gray-500;
39 | }
40 |
41 | @if $spectrumpreset == 1 {
42 | .course-content ul.topics li.section, .course-content ul.weeks li.section {
43 | margin-bottom: 3rem;
44 | }
45 | .course-content .section-summary {
46 | border: 0;
47 | }
48 | .section-go-link.btn.btn-secondary {
49 | display: block;
50 | margin-top: 2rem;
51 | }
52 | }
53 |
54 | @if $perceptionpreset == 1 {
55 | #page-course-view-topics .course-content ul.topics li.section.current, #page-course-view-topics .course-content ul.weeks li.section.current {
56 | border-left: 7px solid $perception-base;
57 | background-color: $gray-100;
58 | }
59 | #page-course-view-topics .course-content ul.topics li.section.hidden, #page-course-view-topics .course-content ul.weeks li.section.hidden {
60 | border-left: 7px solid $gray-900;
61 | background-color: $gray-100;
62 | }
63 | li.section.current {
64 | border-left: 7px solid $perception-base;
65 | background-color: lighten($gray-200, 5%);
66 | }
67 |
68 | li.section.hidden {
69 | border-left: 7px solid $gray-900;
70 | background-color: lighten($gray-200, 5%);
71 | }
72 |
73 | .course-content .section-summary {
74 | border: 0;
75 | }
76 | .course-content img.activityicon {
77 | height: $activityiconsize;
78 | width: $activityiconsize;
79 | vertical-align: middle !important;
80 | }
81 | .section li.activity {
82 | padding: calc($spacer - 50%);
83 | border-bottom: 1px dashed transparent;
84 | }
85 |
86 | .section li.activity:hover {
87 | transition: all 0.3s cubic-bezier(.25, .8, .25, 1);
88 | background-color: rgba($activityhover, .8);
89 | border-bottom: 1px dashed $gray-300;
90 | }
91 |
92 | .section li.activity.modtype_label.label:hover {
93 | transition: none;
94 | background-color: inherit;
95 | }
96 |
97 | .editing .section .activity:hover,
98 | .editing .section .activity.action-menu-shown {
99 | background-color: $activityhover;
100 | }
101 | .section li.activity {
102 | padding: .2rem .5rem;
103 | clear: both;
104 | }
105 | .course-content ul li.section.main {
106 | border-bottom: 1px solid $gray-500;
107 | }
108 |
109 | }
--------------------------------------------------------------------------------
/scss/sectionlayout/sectionstyle8.scss:
--------------------------------------------------------------------------------
1 | //
2 | // The MIT License (MIT)
3 | //
4 | // Copyright (c) 2013 Thomas Park
5 | //
6 | // Permission is hereby granted, free of charge, to any person obtaining a copy
7 | // of this software and associated documentation files (the "Software"), to deal
8 | // in the Software without restriction, including without limitation the rights
9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | // copies of the Software, and to permit persons to whom the Software is
11 | // furnished to do so, subject to the following conditions:
12 | //
13 | // The above copyright notice and this permission notice shall be included in
14 | // all copies or substantial portions of the Software.
15 | //
16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 | // THE SOFTWARE.
23 | //
24 |
25 | // --------------------------------------------------
26 |
27 | /* stylelint-disable color-hex-length */
28 |
29 | /**
30 | * Default preset file.
31 | *
32 | * Use this space to customise variables, create mixins and override SCSS.
33 | */
34 |
35 | //Styling
36 |
37 | h3.sectionname {
38 | text-align: center;
39 | padding: $spacer;
40 | background-color: $gray-300;
41 | }
42 |
43 | #page-course-view-topics .course-content ul.topics li.section, #page-course-view-weeks .course-content ul.weeks li.section {
44 | margin-bottom: 3rem;
45 | padding-top: 0;
46 | }
47 |
48 | .course-content img.activityicon {
49 | height: $activityiconsize;
50 | width: $activityiconsize;
51 | vertical-align: middle !important;
52 | }
53 |
54 | .course-content .current::before {
55 | border-left: $primary 8px solid;
56 | }
57 |
58 | .course-content .single-section .section-navigation {
59 | padding: 1rem;
60 | margin: 0!important;
61 | border-top: 7px solid rgba(0,0,0,.2);
62 | border-radius: 0;
63 | }
64 | .course-content .section-summary {
65 | border: 0;
66 | }
67 |
68 | .progress.fordsonsinglepage {
69 | margin-top: 1rem;
70 | margin-right: 1rem;
71 | height: 12px!important;
72 | border: 1px solid $white !important;
73 | }
74 |
75 | @if $perceptionpreset == 1 {
76 | .course-content ul.topics li.section .content, .course-content ul.weeks li.section .content {
77 | margin: 0;
78 | padding: 0;
79 | }
80 | h3.sectionname {
81 | text-align: left;
82 | padding: $spacer;
83 | background-color: $perception-base;
84 | }
85 | .hidden h3.sectionname {
86 | text-align: left;
87 | padding: 1rem;
88 | background-color: $gray-300;
89 | }
90 |
91 | .course-content .current::before {
92 | border-left: 0;
93 | }
94 | .course-content ul.topics li.section.current h3.sectionname, .course-content ul.weeks li.section.current h3.sectionname {
95 | background-color: $sectionnamehighlight;
96 | }
97 | .progress-bar {
98 | background-color: $sectionnamehighlight;
99 | }
100 | }
--------------------------------------------------------------------------------
/settings.php:
--------------------------------------------------------------------------------
1 | .
16 |
17 | /**
18 | * Main settings file.
19 | *
20 | * @package theme_fordson
21 | * @copyright 2016 Chris Kenniburg
22 | * @credits theme_boost - MoodleHQ
23 | * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
24 | */
25 |
26 | /* THEME_fordson BUILDING NOTES
27 | * =============================
28 | * Settings have been split into separate files, which are called from
29 | * this central file. This is to aid ongoing development as I find it
30 | * easier to work with multiple smaller function-specific files than
31 | * with a single monolithic settings file.
32 | * This may be a personal preference and it would be quite feasible to
33 | * bring all lib functions back into a single central file if another
34 | * developer prefered to work in that way.
35 | */
36 |
37 | defined('MOODLE_INTERNAL') || die();
38 |
39 | if ($ADMIN->fulltree) {
40 | // Note new tabs layout for admin settings pages.
41 | $settings = new theme_boost_admin_settingspage_tabs('themesettingfordson', get_string('configtitle', 'theme_fordson'));
42 |
43 | require('settings/presets_settings.php');
44 | require('settings/presets_adjustments_settings.php');
45 | require('settings/image_settings.php');
46 | require('settings/colours_settings.php');
47 | require('settings/content_settings.php');
48 | require('settings/menu_settings.php');
49 | require('settings/fpicons_settings.php');
50 | require('settings/markettiles_settings.php');
51 | require('settings/footer_settings.php');
52 | require('settings/slideshow_settings.php');
53 | require('settings/customlogin_settings.php');
54 | }
55 |
--------------------------------------------------------------------------------
/settings/content_settings.php:
--------------------------------------------------------------------------------
1 | .
16 |
17 | /**
18 | * Heading and course images settings page file.
19 | *
20 | * @packagetheme_fordson
21 | * @copyright 2016 Chris Kenniburg
22 | * @creditstheme_fordson - MoodleHQ
23 | * @licensehttp://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
24 | */
25 |
26 | defined('MOODLE_INTERNAL') || die();
27 |
28 | $page = new admin_settingpage('theme_fordson_content', get_string('contentsettings', 'theme_fordson'));
29 | // Content Info
30 | $name = 'theme_fordson/textcontentinfo';
31 | $heading = get_string('textcontentinfo', 'theme_fordson');
32 | $information = get_string('textcontentinfodesc', 'theme_fordson');
33 | $setting = new admin_setting_heading($name, $heading, $information);
34 | $page->add($setting);
35 |
36 | // Frontpage Textbox.
37 | $name = 'theme_fordson/fptextbox';
38 | $title = get_string('fptextbox', 'theme_fordson');
39 | $description = get_string('fptextbox_desc', 'theme_fordson');
40 | $default = '';
41 | $setting = new admin_setting_confightmleditor($name, $title, $description, $default);
42 | $setting->set_updatedcallback('theme_reset_all_caches');
43 | $page->add($setting);
44 |
45 | // Frontpage Textbox Logged Out.
46 | $name = 'theme_fordson/fptextboxlogout';
47 | $title = get_string('fptextboxlogout', 'theme_fordson');
48 | $description = get_string('fptextboxlogout_desc', 'theme_fordson');
49 | $default = '';
50 | $setting = new admin_setting_confightmleditor($name, $title, $description, $default);
51 | $setting->set_updatedcallback('theme_reset_all_caches');
52 | $page->add($setting);
53 |
54 | // Alert setting.
55 | $name = 'theme_fordson/alertbox';
56 | $title = get_string('alert', 'theme_fordson');
57 | $description = get_string('alert_desc', 'theme_fordson');
58 | $default = '';
59 | $setting = new admin_setting_confightmleditor($name, $title, $description, $default);
60 | $setting->set_updatedcallback('theme_reset_all_caches');
61 | $page->add($setting);
62 |
63 | // Must add the page after definiting all the settings!
64 | $settings->add($page);
65 |
--------------------------------------------------------------------------------
/settings/image_settings.php:
--------------------------------------------------------------------------------
1 | .
16 |
17 | /**
18 | * Heading and course images settings page file.
19 | *
20 | * @packagetheme_fordson
21 | * @copyright 2016 Chris Kenniburg
22 | * @creditstheme_boost - MoodleHQ
23 | * @licensehttp://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
24 | */
25 |
26 | defined('MOODLE_INTERNAL') || die();
27 |
28 | $page = new admin_settingpage('theme_fordson_images', get_string('imagesettings', 'theme_fordson'));
29 |
30 | // Show hide user enrollment toggle.
31 | $name = 'theme_fordson/showcourseheaderimage';
32 | $title = get_string('showcourseheaderimage', 'theme_fordson');
33 | $description = get_string('showcourseheaderimage_desc', 'theme_fordson');
34 | $default = 1;
35 | $setting = new admin_setting_configcheckbox($name, $title, $description, $default);
36 | $setting->set_updatedcallback('theme_reset_all_caches');
37 | $page->add($setting);
38 |
39 | // Favicon upload.
40 | $name = 'theme_fordson/favicon';
41 | $title = get_string ( 'favicon', 'theme_fordson' );
42 | $description = get_string ( 'favicon_desc', 'theme_fordson' );
43 | $setting = new admin_setting_configstoredfile( $name, $title, $description, 'favicon', 0,
44 | array('maxfiles' => 1, 'accepted_types' => array('png', 'jpg', 'ico')));
45 | $setting->set_updatedcallback ( 'theme_reset_all_caches' );
46 | $page->add($setting);
47 |
48 | // logo image.
49 | $name = 'theme_fordson/headerlogo';
50 | $title = get_string('headerlogo', 'theme_fordson');
51 | $description = get_string('headerlogo_desc', 'theme_fordson');
52 | $setting = new admin_setting_configstoredfile($name, $title, $description, 'headerlogo');
53 | $setting->set_updatedcallback('theme_reset_all_caches');
54 | $page->add($setting);
55 |
56 | // Default header image.
57 | $name = 'theme_fordson/headerdefaultimage';
58 | $title = get_string('headerdefaultimage', 'theme_fordson');
59 | $description = get_string('headerdefaultimage_desc', 'theme_fordson');
60 | $setting = new admin_setting_configstoredfile($name, $title, $description, 'headerdefaultimage');
61 | $setting->set_updatedcallback('theme_reset_all_caches');
62 | $page->add($setting);
63 |
64 | // Default background image.
65 | $name = 'theme_fordson/backgroundimage';
66 | $title = get_string('backgroundimage', 'theme_fordson');
67 | $description = get_string('backgroundimage_desc', 'theme_fordson');
68 | $setting = new admin_setting_configstoredfile($name, $title, $description, 'backgroundimage');
69 | $setting->set_updatedcallback('theme_reset_all_caches');
70 | $page->add($setting);
71 |
72 | // Default login page image.
73 | $name = 'theme_fordson/loginimage';
74 | $title = get_string('loginimage', 'theme_fordson');
75 | $description = get_string('loginimage_desc', 'theme_fordson');
76 | $setting = new admin_setting_configstoredfile($name, $title, $description, 'loginimage');
77 | $setting->set_updatedcallback('theme_reset_all_caches');
78 | $page->add($setting);
79 |
80 | // Must add the page after definiting all the settings!
81 | $settings->add($page);
82 |
--------------------------------------------------------------------------------
/templates/activitygroups.mustache:
--------------------------------------------------------------------------------
1 |
2 | {{#haschildren}}
3 | {{#children}}
4 |
{{text}}
5 | {{/children}}
6 | {{/haschildren}}
7 |
--------------------------------------------------------------------------------
/templates/blockspanelslider.mustache:
--------------------------------------------------------------------------------
1 | {{#hascourseblocks}}
2 |
3 | {{#hasfpblockregion}}
4 |
5 |
6 |
7 |
8 |
9 | {{{ fpablocks }}}
10 |
11 |
12 |
13 |
14 | {{{ fpbblocks }}}
15 |
16 |
17 |
18 |
19 | {{{ fpcblocks }}}
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 | {{# str }} courseblockpanelbtnclose, theme_fordson {{/ str }}
28 |
29 | {{/hasfpblockregion}}
30 |
31 |
32 | {{#hasfpblockregion}}
33 |
34 |
35 | {{# str }} courseblockpanelbtn, theme_fordson {{/ str }}
36 |
37 |
38 | {{/hasfpblockregion}}
39 |
40 | {{/hascourseblocks}}
--------------------------------------------------------------------------------
/templates/core/chooser.mustache:
--------------------------------------------------------------------------------
1 | {{!
2 | This file is part of Moodle - http://moodle.org/
3 |
4 | Moodle is free software: you can redistribute it and/or modify
5 | it under the terms of the GNU General Public License as published by
6 | the Free Software Foundation, either version 3 of the License, or
7 | (at your option) any later version.
8 |
9 | Moodle is distributed in the hope that it will be useful,
10 | but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | GNU General Public License for more details.
13 |
14 | You should have received a copy of the GNU General Public License
15 | along with Moodle. If not, see .
16 | }}
17 | {{!
18 | @template core/chooser
19 |
20 | Chooser.
21 |
22 | Example context (json):
23 | {
24 | "title": "Chooser title",
25 | "method": "post",
26 | "actionurl": "http://example.org/test",
27 | "instructions": "Choose one:",
28 | "paramname": "param",
29 | "sections": [{
30 | "id": "section-1",
31 | "label": "Section one",
32 | "items": [{
33 | "label": "item one",
34 | "description": "description one"
35 | }]
36 | }]
37 | }
38 | }}
39 |
40 | {{title}}
41 |
42 |
43 |
83 |
--------------------------------------------------------------------------------
/templates/core/navbar.mustache:
--------------------------------------------------------------------------------
1 | {{!
2 | This file is part of Moodle - http://moodle.org/
3 |
4 | Moodle is free software: you can redistribute it and/or modify
5 | it under the terms of the GNU General Public License as published by
6 | the Free Software Foundation, either version 3 of the License, or
7 | (at your option) any later version.
8 |
9 | Moodle is distributed in the hope that it will be useful,
10 | but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | GNU General Public License for more details.
13 |
14 | You should have received a copy of the GNU General Public License
15 | along with Moodle. If not, see .
16 | }}
17 | {{!
18 | @template core/navbar
19 |
20 | Navbar template.
21 |
22 | Classes required for JS:
23 | * none
24 |
25 | Data attributes required for JS:
26 | * none
27 |
28 | Context variables required for this template:
29 | * get_items - array of items
30 | * has_action - boolean
31 | * action - string
32 | * get_title - string
33 | * text - HTML
34 |
35 | Example context (json):
36 | {
37 | "get_items": [
38 | {
39 | "has_action": true,
40 | "action": "#",
41 | "get_title": "Test title",
42 | "text": "First & fresh"
43 | },
44 | {
45 | "has_action": true,
46 | "action": "#",
47 | "get_title": "Second item & a title",
48 | "text": "Second item"
49 | },
50 | {
51 | "has_action": false,
52 | "text": "Third item"
53 | },
54 | {
55 | "has_action": false,
56 | "text": "Fourth & last"
57 | }
58 | ]
59 | }
60 | }}
61 |
62 |
63 |
64 | {{#get_items}}
65 | {{#has_action}}
66 |
67 | {{{get_content}}}
68 |
69 | {{/has_action}}
70 | {{^has_action}}
71 | {{{text}}}
72 | {{/has_action}}
73 | {{/get_items}}
74 |
75 |
--------------------------------------------------------------------------------
/templates/customlogin.mustache:
--------------------------------------------------------------------------------
1 | {{#hascustomlogin}}
2 |
3 | {{#hasfpiconnav}}
4 |
5 | {{#fpiconnav}} {{#hasicon}}
6 |
7 |
8 |
9 |
10 |
11 |
12 |
{{{title}}} {{{text}}}
13 |
14 |
15 |
16 | {{/hasicon}} {{/fpiconnav}}
17 |
18 | {{/hasfpiconnav}}
19 |
20 | {{#hasfeature1}}
21 |
22 |
23 |
24 | {{{feature1text}}}
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 | {{/hasfeature1}}
34 | {{#hasfeature2}}
35 |
36 |
37 |
38 | {{{feature2text}}}
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 | {{/hasfeature2}}
48 | {{#hasfeature3}}
49 |
50 |
51 |
52 | {{{feature3text}}}
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 | {{/hasfeature3}}
62 |
63 | {{/hascustomlogin}}
--------------------------------------------------------------------------------
/templates/footer.mustache:
--------------------------------------------------------------------------------
1 | {{!
2 | This file is part of Moodle - http://moodle.org/
3 |
4 | Moodle is free software: you can redistribute it and/or modify
5 | it under the terms of the GNU General Public License as published by
6 | the Free Software Foundation, either version 3 of the License, or
7 | (at your option) any later version.
8 |
9 | Moodle is distributed in the hope that it will be useful,
10 | but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | GNU General Public License for more details.
13 |
14 | You should have received a copy of the GNU General Public License
15 | along with Moodle. If not, see .
16 | }}
17 | {{!
18 | Page footer.
19 | }}
20 |
21 |
70 |
--------------------------------------------------------------------------------
/templates/fpmarkettiles.mustache:
--------------------------------------------------------------------------------
1 | {{#hasmarkettiles}}
2 |
3 |
4 |
5 |
6 | {{#markettiles}}
7 | {{#hastile}}
8 |
9 |
10 |
11 |
{{{title}}}
12 |
15 | {{{button}}}
16 |
17 |
18 |
19 | {{/hastile}}
20 | {{/markettiles}}
21 |
22 |
23 |
24 |
25 |
26 | {{/hasmarkettiles}}
--------------------------------------------------------------------------------
/templates/header.mustache:
--------------------------------------------------------------------------------
1 | {{!
2 | This file is part of Moodle - http://moodle.org/
3 |
4 | Moodle is free software: you can redistribute it and/or modify
5 | it under the terms of the GNU General Public License as published by
6 | the Free Software Foundation, either version 3 of the License, or
7 | (at your option) any later version.
8 |
9 | Moodle is distributed in the hope that it will be useful,
10 | but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | GNU General Public License for more details.
13 |
14 | You should have received a copy of the GNU General Public License
15 | along with Moodle. If not, see .
16 | }}
17 | {{!
18 | Page header.
19 | }}
20 |
21 |
--------------------------------------------------------------------------------
/templates/login.mustache:
--------------------------------------------------------------------------------
1 | {{!
2 | This file is part of Moodle - http://moodle.org/
3 |
4 | Moodle is free software: you can redistribute it and/or modify
5 | it under the terms of the GNU General Public License as published by
6 | the Free Software Foundation, either version 3 of the License, or
7 | (at your option) any later version.
8 |
9 | Moodle is distributed in the hope that it will be useful,
10 | but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | GNU General Public License for more details.
13 |
14 | You should have received a copy of the GNU General Public License
15 | along with Moodle. If not, see .
16 | }}
17 | {{!
18 | @template theme_boost/login
19 |
20 | Login page template
21 |
22 | Example context (json):
23 | {
24 | "output": {
25 | "doctype": "",
26 | "page_title": "Login page",
27 | "favicon": "favicon.ico",
28 | "main_content": "Headers keep HTML validators happy "
29 | }
30 | }
31 | }}
32 | {{> theme_boost/head }}
33 |
34 |
35 |
36 |
37 |
38 | {{{ output.standard_top_of_body_html }}}
39 |
40 |
41 |
42 |
43 | {{#hasslideshowpages}}
44 |
45 | {{{ output.fp_slideshow }}}
46 |
47 | {{/hasslideshowpages}}
48 | {{{ output.course_content_header }}}
49 | {{{ output.main_content }}}
50 | {{#hasslideshowpages}}
51 |
52 | {{/hasslideshowpages}}
53 | {{{ output.course_content_footer }}}
54 |
55 |
56 |
57 | {{#hascustomlogin}}
58 |
59 |
60 | {{{ output.customlogin }}}
61 |
62 |
63 | {{/hascustomlogin}}
64 | {{> theme_fordson/footer }}
65 |
66 |
67 |
68 |