MDL-63445 core_renderer: display course image in context header

This commit is contained in:
Bas Brands 2018-10-23 09:41:26 +02:00
parent cc486e6125
commit a7712a9851
10 changed files with 88 additions and 3 deletions

View File

@ -121,6 +121,9 @@ if ($hassiteconfig or has_any_capability($capabilities, $systemcontext)) {
$temp->add(new admin_setting_configselect('moodlecourse/showreports', new lang_string('showreports'), '', 0,
array(0 => new lang_string('no'), 1 => new lang_string('yes'))));
$temp->add(new admin_setting_configcheckbox('moodlecourse/showcourseimages', get_string('showcourseimages'),
get_string('showcourseimages_desc'), 1));
// Files and uploads.
$temp->add(new admin_setting_heading('filesanduploadshdr', new lang_string('filesanduploads'), ''));
@ -155,7 +158,6 @@ if ($hassiteconfig or has_any_capability($capabilities, $systemcontext)) {
$ADMIN->add('courses', $temp);
// "courserequests" settingpage.
$temp = new admin_settingpage('courserequest', new lang_string('courserequest'));
$temp->add(new admin_setting_configcheckbox('enablecourserequests', new lang_string('enablecourserequests', 'admin'), new lang_string('configenablecourserequests', 'admin'), 0));

View File

@ -326,6 +326,7 @@ $string['courseformatdata'] = 'Course format data';
$string['courseformats'] = 'Course formats';
$string['courseformatoptions'] = 'Formatting options for {$a}';
$string['courseformatudpate'] = 'Update format';
$string['courseheaderimage'] = 'Course header image';
$string['courseprofiles'] = 'Course profiles';
$string['coursepreferences'] = 'Course preferences';
$string['coursegrades'] = 'Course grades';
@ -1821,6 +1822,8 @@ $string['showallusers'] = 'Show all users';
$string['showblockcourse'] = 'Show list of courses containing block';
$string['showcategory'] = 'Show {$a}';
$string['showchartdata'] = 'Show chart data';
$string['showcourseimages'] = 'Show course images';
$string['showcourseimages_desc'] = 'Show the course image or image placeholder in the course header.';
$string['showcomments'] = 'Show/hide comments';
$string['showcommentsnonjs'] = 'Show comments';
$string['showdescription'] = 'Display description on course page';

View File

@ -2565,5 +2565,11 @@ function xmldb_main_upgrade($oldversion) {
upgrade_main_savepoint(true, 2018101800.00);
}
if ($oldversion < 2018101900.01) {
// Show course images by default.
set_config('showcourseimages', 1, 'moodlecourse');
upgrade_main_savepoint(true, 2018101900.01);
}
return true;
}

View File

@ -4141,7 +4141,7 @@ EOD;
}
public function context_header($headerinfo = null, $headinglevel = 1) {
global $DB, $USER, $CFG;
global $DB, $USER, $CFG, $COURSE;
require_once($CFG->dirroot . '/user/lib.php');
$context = $this->page->context;
$heading = null;
@ -4152,6 +4152,14 @@ EOD;
if (isset($headerinfo['heading'])) {
$heading = $headerinfo['heading'];
}
// Show a course image if enabled.
if ($context->contextlevel == CONTEXT_COURSE && get_config('moodlecourse', 'showcourseimages')) {
$exporter = new core_course\external\course_summary_exporter($COURSE, ['context' => $context]);
$courseinfo = $exporter->export($this);
$imagedata = $this->render_from_template('core/course_header_image', $courseinfo);
}
// The user context currently has images and buttons. Other contexts may follow.
if (isset($headerinfo['user']) || $context->contextlevel == CONTEXT_USER) {
if (isset($headerinfo['user'])) {

View File

@ -0,0 +1,29 @@
{{!
This file is part of Moodle - http://moodle.org/
Moodle is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Moodle is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Moodle. If not, see <http://www.gnu.org/licenses/>.
}}
{{!
@template core/course_header_image
Example context (json):
{
"courseimage": "http://domain.name/pluginfile.php/123/course/overviewfiles/kitten.jpg"
}
}}
<div class="course-header-image-wrapper">
<div class="course-header-image rounded w-100 h-100" style='background-image: url("{{{courseimage}}}");'>
<div class="sr-only">{{#str}}courseheaderimage, core{{/str}}</div>
</div>
</div>

View File

@ -1139,6 +1139,15 @@ span.editinstructions {
opacity: 0.5;
}
.course-header-image-wrapper {
width: 100px;
height: 100px;
.course-header-image {
background-size: cover;
background-position: center;
}
}
/**
* Display sizes:
* Large displays 1200 +

View File

@ -12326,6 +12326,13 @@ span.editinstructions {
.course-being-dragged {
opacity: 0.5; }
.course-header-image-wrapper {
width: 100px;
height: 100px; }
.course-header-image-wrapper .course-header-image {
background-size: cover;
background-position: center; }
/**
* Display sizes:
* Large displays 1200 +

View File

@ -1124,6 +1124,17 @@ span.editinstructions {
.opacity(50);
}
.course-header-image-wrapper {
width: 100px;
height: 100px;
.course-header-image {
width: 100%;
height: 100%;
background-size: cover;
background-position: center;
}
}
/**
* Display sizes:
* Large displays 1200 +

View File

@ -7004,6 +7004,16 @@ span.editinstructions {
opacity: 0.5;
filter: alpha(opacity=50);
}
.course-header-image-wrapper {
width: 100px;
height: 100px;
}
.course-header-image-wrapper .course-header-image {
width: 100%;
height: 100%;
background-size: cover;
background-position: center;
}
/**
* Display sizes:
* Large displays 1200 +

View File

@ -29,7 +29,7 @@
defined('MOODLE_INTERNAL') || die();
$version = 2018101900.00; // YYYYMMDD = weekly release date of this DEV branch.
$version = 2018101900.01; // YYYYMMDD = weekly release date of this DEV branch.
// RR = release increments - 00 in DEV branches.
// .XX = incremental changes.