mirror of
https://github.com/moodle/moodle.git
synced 2025-04-21 00:12:56 +02:00
Merge branch 'MDL-67114' of https://github.com/stronk7/moodle
This commit is contained in:
commit
1429ca06a4
@ -2302,7 +2302,7 @@ class core_competency_privacy_testcase extends provider_testcase {
|
||||
$this->assertEquals('-', $comp['rating']['rating']);
|
||||
$comp = $data->competencies[2];
|
||||
$this->assertEquals($comp4->get('shortname'), $comp['name']);
|
||||
$this->assertNull($comp['rating']['rating']);
|
||||
$this->assertNull($comp['rating']);
|
||||
$data = writer::with_context($u1ctx)->get_data(array_merge($path, ["{$p1a->get('name')} ({$p1a->get('id')})",
|
||||
get_string('commentsubcontext', 'core_comment')]));
|
||||
$this->assert_exported_comments(['Hello.', 'It\'s me.', 'After all these years...'], $data->comments);
|
||||
@ -2320,7 +2320,7 @@ class core_competency_privacy_testcase extends provider_testcase {
|
||||
$this->assertEquals('C', $comp['rating']['rating']);
|
||||
$comp = $data->competencies[2];
|
||||
$this->assertEquals($comp4->get('shortname'), $comp['name']);
|
||||
$this->assertNull($comp['rating']['rating']);
|
||||
$this->assertNull($comp['rating']);
|
||||
|
||||
// This plan is complete.
|
||||
$data = writer::with_context($u1ctx)->get_data(array_merge($path, ["{$p1c->get('name')} ({$p1c->get('id')})"]));
|
||||
|
@ -120,10 +120,12 @@ class enrol_meta_plugin extends enrol_plugin {
|
||||
require_once("$CFG->dirroot/enrol/meta/locallib.php");
|
||||
|
||||
// Support creating multiple at once.
|
||||
if (is_array($fields['customint1'])) {
|
||||
if (isset($fields['customint1']) && is_array($fields['customint1'])) {
|
||||
$courses = array_unique($fields['customint1']);
|
||||
} else {
|
||||
} else if (isset($fields['customint1'])) {
|
||||
$courses = array($fields['customint1']);
|
||||
} else {
|
||||
$courses = array(null); // Strange? Yes, but that's how it's working or instance is not created ever.
|
||||
}
|
||||
foreach ($courses as $courseid) {
|
||||
if (!empty($fields['customint2']) && $fields['customint2'] == ENROL_META_CREATE_GROUP) {
|
||||
|
2
lib/editor/tests/fixtures/editor_form.php
vendored
2
lib/editor/tests/fixtures/editor_form.php
vendored
@ -44,7 +44,7 @@ class editor_form extends moodleform {
|
||||
*/
|
||||
protected function definition() {
|
||||
$mform = $this->_form;
|
||||
$editoroptions = $this->_customdata['editoroptions'];
|
||||
$editoroptions = $this->_customdata['editoroptions'] ?? null;
|
||||
|
||||
// Add header.
|
||||
$mform->addElement('header', 'myheader', 'Editor in Moodle form');
|
||||
|
@ -416,11 +416,16 @@ abstract class file_system {
|
||||
protected function get_imageinfo_from_path($path) {
|
||||
$imageinfo = getimagesize($path);
|
||||
|
||||
if (!is_array($imageinfo)) {
|
||||
return false; // Nothing to process, the file was not recognised as image by GD.
|
||||
}
|
||||
|
||||
$image = array(
|
||||
'width' => $imageinfo[0],
|
||||
'height' => $imageinfo[1],
|
||||
'mimetype' => image_type_to_mime_type($imageinfo[2]),
|
||||
);
|
||||
|
||||
if (empty($image['width']) or empty($image['height']) or empty($image['mimetype'])) {
|
||||
// GD can not parse it, sorry.
|
||||
return false;
|
||||
|
@ -200,7 +200,7 @@ class MoodleQuickForm_duration extends MoodleQuickForm_group {
|
||||
break;
|
||||
|
||||
case 'createElement':
|
||||
if ($arg[2]['optional']) {
|
||||
if (!empty($arg[2]['optional'])) {
|
||||
$caller->disabledIf($arg[0], $arg[0] . '[enabled]');
|
||||
}
|
||||
$caller->setType($arg[0] . '[number]', PARAM_FLOAT);
|
||||
|
@ -221,6 +221,8 @@ class MoodleQuickForm_filetypes extends MoodleQuickForm_group {
|
||||
*/
|
||||
public function validateSubmitValue($value) {
|
||||
|
||||
$value = $value ?? ['filetypes' => null]; // A null $value can arrive here. Coalesce, creating the default array.
|
||||
|
||||
if (!$this->allowall) {
|
||||
// Assert that there is an actual list provided.
|
||||
$normalized = $this->util->normalize_file_types($value['filetypes']);
|
||||
|
@ -11,3 +11,12 @@ unzip v2.12.0.zip
|
||||
cd mustache.php-2.12.0/
|
||||
mv src /path/to/moodle/lib/mustache/
|
||||
mv LICENSE /path/to/moodle/lib/mustache/
|
||||
|
||||
Local changes:
|
||||
|
||||
Note: All this changes need to be reviewed on every upgrade and, if they have
|
||||
been already applied upstream for the release being used, can be removed
|
||||
from the list. If still not available upstream, they will need to be re-applied.
|
||||
|
||||
- MDL-67114: PHP 7.4 compatibility. Array operations on scalar value.
|
||||
This corresponds to upstream https://github.com/bobthecow/mustache.php/pull/352
|
||||
|
@ -149,7 +149,7 @@ class Mustache_Parser
|
||||
case Mustache_Tokenizer::T_BLOCK_VAR:
|
||||
if ($this->pragmaBlocks) {
|
||||
// BLOCKS pragma is enabled, let's do this!
|
||||
if ($parent[Mustache_Tokenizer::TYPE] === Mustache_Tokenizer::T_PARENT) {
|
||||
if (isset($parent) && $parent[Mustache_Tokenizer::TYPE] === Mustache_Tokenizer::T_PARENT) {
|
||||
$token[Mustache_Tokenizer::TYPE] = Mustache_Tokenizer::T_BLOCK_ARG;
|
||||
}
|
||||
$this->clearStandaloneLines($nodes, $tokens);
|
||||
@ -275,7 +275,7 @@ class Mustache_Parser
|
||||
*/
|
||||
private function checkIfTokenIsAllowedInParent($parent, array $token)
|
||||
{
|
||||
if ($parent[Mustache_Tokenizer::TYPE] === Mustache_Tokenizer::T_PARENT) {
|
||||
if (isset($parent) && $parent[Mustache_Tokenizer::TYPE] === Mustache_Tokenizer::T_PARENT) {
|
||||
throw new Mustache_Exception_SyntaxException('Illegal content in < parent tag', $token);
|
||||
}
|
||||
}
|
||||
|
@ -2664,11 +2664,15 @@ class Compiler
|
||||
* @param array $value
|
||||
* @param boolean $inExp
|
||||
*
|
||||
* @return array|\ScssPhp\ScssPhp\Node\Number
|
||||
* @return null|array|\ScssPhp\ScssPhp\Node\Number
|
||||
*/
|
||||
protected function reduce($value, $inExp = false)
|
||||
{
|
||||
|
||||
if (is_null($value)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
switch ($value[0]) {
|
||||
case Type::T_EXPRESSION:
|
||||
list(, $op, $left, $right, $inParens) = $value;
|
||||
|
@ -7,5 +7,14 @@ Import procedure:
|
||||
|
||||
- Copy all the files from the folder 'src' this directory.
|
||||
- Copy the license file from the project root.
|
||||
- Review the local changes defined below, if any. Reapply
|
||||
them if needed. If already available upstream, please remove
|
||||
them from the list.
|
||||
|
||||
Licensed under MIT, Copyright (c) 2015 Leaf Corcoran.
|
||||
|
||||
Currenly using 1.0.2 plus these local changes:
|
||||
|
||||
- MDL-67114 : Added basic compatibility with php 7.4. This corresponds to
|
||||
upstream commit https://github.com/scssphp/scssphp/commit/66675c1553b7e9d7c480d8aaedbf7c72374647cf
|
||||
that is available in scssphp >= 1.0.4
|
||||
|
@ -835,7 +835,7 @@ class core_session_manager_testcase extends advanced_testcase {
|
||||
$SESSION->recentsessionlocks = $this->sessionlock_history();
|
||||
|
||||
$page = \core\session\manager::get_locked_page_at($time);
|
||||
$this->assertEquals($url, $page['url']);
|
||||
$this->assertEquals($url, is_array($page) ? $page['url'] : null);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -10,7 +10,7 @@ class mod_glossary_import_form extends moodleform {
|
||||
function definition() {
|
||||
global $CFG;
|
||||
$mform =& $this->_form;
|
||||
$cmid = $this->_customdata['id'];
|
||||
$cmid = $this->_customdata['id'] ?? null;
|
||||
|
||||
$mform->addElement('filepicker', 'file', get_string('filetoimport', 'glossary'));
|
||||
$mform->addHelpButton('file', 'filetoimport', 'glossary');
|
||||
|
@ -10,8 +10,8 @@ class mod_wiki_comments_form extends moodleform {
|
||||
protected function definition() {
|
||||
$mform = $this->_form;
|
||||
|
||||
$current = $this->_customdata['current'];
|
||||
$commentoptions = $this->_customdata['commentoptions'];
|
||||
$current = $this->_customdata['current'] ?? null;
|
||||
$commentoptions = $this->_customdata['commentoptions'] ?? null;
|
||||
|
||||
// visible elements
|
||||
$mform->addElement('editor', 'entrycomment_editor', get_string('comment', 'glossary'), null, $commentoptions);
|
||||
|
@ -47,7 +47,7 @@ class wiki_parser_proxy {
|
||||
return $content;
|
||||
}
|
||||
else {
|
||||
return $content[1];
|
||||
return is_array($content) ? $content[1] : null;
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
@ -701,7 +701,7 @@ class question_usage_by_activity {
|
||||
// Behaviour vars should not be processed by question type, just add prefix.
|
||||
$behaviourvars = $this->get_question_attempt($slot)->get_behaviour()->get_expected_data();
|
||||
foreach (array_keys($responsedata) as $responsedatakey) {
|
||||
if ($responsedatakey[0] === '-') {
|
||||
if (is_string($responsedatakey) && $responsedatakey[0] === '-') {
|
||||
$behaviourvarname = substr($responsedatakey, 1);
|
||||
if (isset($behaviourvars[$behaviourvarname])) {
|
||||
// Expected behaviour var found.
|
||||
|
@ -181,7 +181,7 @@ class dropbox extends \oauth2_client {
|
||||
* @throws moodle_exception
|
||||
*/
|
||||
protected function check_and_handle_api_errors($data) {
|
||||
if ($this->info['http_code'] == 200) {
|
||||
if (!is_array($this->info) or $this->info['http_code'] == 200) {
|
||||
// Dropbox only returns errors on non-200 response codes.
|
||||
return;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user