Merge remote-tracking branch 'moodle/MOODLE_26_STABLE' into MOODLE_26_STABLE
This commit is contained in:
@@ -68,10 +68,10 @@ class tool_behat_renderer extends plugin_renderer_base {
|
||||
$html .= $this->output->box_start();
|
||||
$html .= html_writer::tag('h1', get_string('infoheading', 'tool_behat'));
|
||||
$html .= html_writer::tag('div', get_string('aim', 'tool_behat'));
|
||||
$html .= html_writer::empty_tag('div');
|
||||
$html .= html_writer::empty_tag('ul');
|
||||
$html .= html_writer::empty_tag('li');
|
||||
$html .= implode(html_writer::end_tag('li') . html_writer::empty_tag('li'), $infos);
|
||||
$html .= html_writer::start_tag('div');
|
||||
$html .= html_writer::start_tag('ul');
|
||||
$html .= html_writer::start_tag('li');
|
||||
$html .= implode(html_writer::end_tag('li') . html_writer::start_tag('li'), $infos);
|
||||
$html .= html_writer::end_tag('li');
|
||||
$html .= html_writer::end_tag('ul');
|
||||
$html .= html_writer::end_tag('div');
|
||||
|
||||
+2
-3
@@ -775,10 +775,9 @@ class auth_plugin_mnet extends auth_plugin_base {
|
||||
u.mnethostid = ?
|
||||
AND l.id > ?
|
||||
AND l.course IS NOT NULL
|
||||
ORDER by l.id ASC
|
||||
LIMIT 500";
|
||||
ORDER by l.id ASC";
|
||||
|
||||
$mnethostlogs = $DB->get_records_sql($mnethostlogssql, array($mnethostid, $mnet_request->response['last log id']));
|
||||
$mnethostlogs = $DB->get_records_sql($mnethostlogssql, array($mnethostid, $mnet_request->response['last log id']), 0, 500);
|
||||
|
||||
if ($mnethostlogs == false) {
|
||||
continue;
|
||||
|
||||
@@ -55,7 +55,7 @@ class behat_auth extends behat_base {
|
||||
|
||||
// Generic steps (we will prefix them later expanding the navigation dropdown if necessary).
|
||||
$steps = array(
|
||||
new Given('I follow "' . get_string('login') . '"'),
|
||||
new Given('I click on "' . get_string('login') . '" "link" in the ".logininfo" "css_element"'),
|
||||
new Given('I fill in "' . get_string('username') . '" with "' . $this->escape($username) . '"'),
|
||||
new Given('I fill in "' . get_string('password') . '" with "'. $this->escape($username) . '"'),
|
||||
new Given('I press "' . get_string('login') . '"')
|
||||
|
||||
@@ -237,7 +237,13 @@ class restore_gradebook_structure_step extends restore_structure_step {
|
||||
$data->timecreated = $this->apply_date_offset($data->timecreated);
|
||||
$data->timemodified = $this->apply_date_offset($data->timemodified);
|
||||
|
||||
$newitemid = $DB->insert_record('grade_grades', $data);
|
||||
$gradeexists = $DB->record_exists('grade_grades', array('userid' => $data->userid, 'itemid' => $data->itemid));
|
||||
if ($gradeexists) {
|
||||
$message = "User id '{$data->userid}' already has a grade entry for grade item id '{$data->itemid}'";
|
||||
$this->log($message, backup::LOG_DEBUG);
|
||||
} else {
|
||||
$newitemid = $DB->insert_record('grade_grades', $data);
|
||||
}
|
||||
} else {
|
||||
$message = "Mapped user id not found for user id '{$olduserid}', grade item id '{$data->itemid}'";
|
||||
$this->log($message, backup::LOG_DEBUG);
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@ list($context, $course, $cm) = get_context_info_array($contextid);
|
||||
navigation_node::override_active_url(new moodle_url('/backup/restorefile.php', array('contextid'=>$contextid)));
|
||||
$PAGE->set_url(new moodle_url('/backup/restore.php', array('contextid'=>$contextid)));
|
||||
$PAGE->set_context($context);
|
||||
$PAGE->set_pagelayout('standard');
|
||||
$PAGE->set_pagelayout('admin');
|
||||
|
||||
require_login($course, null, $cm);
|
||||
require_capability('moodle/restore:restorecourse', $context);
|
||||
|
||||
+1
-1
@@ -53,7 +53,7 @@ if ($badge->type == BADGE_TYPE_COURSE) {
|
||||
}
|
||||
require_login($badge->courseid);
|
||||
$navurl = new moodle_url('/badges/index.php', array('type' => $badge->type, 'id' => $badge->courseid));
|
||||
$PAGE->set_pagelayout('standard');
|
||||
$PAGE->set_pagelayout('course');
|
||||
navigation_node::override_active_url($navurl);
|
||||
} else {
|
||||
$PAGE->set_pagelayout('admin');
|
||||
|
||||
+4
-13
@@ -323,11 +323,6 @@ class core_badges_renderer extends plugin_renderer_base {
|
||||
$datatable->data[] = array(get_string('name'), get_string('error:userdeleted', 'badges', $strdata));
|
||||
} else {
|
||||
$datatable->data[] = array(get_string('name'), fullname($userinfo));
|
||||
if (empty($userinfo->backpackemail)) {
|
||||
$datatable->data[] = array(get_string('email'), obfuscate_mailto($userinfo->accountemail));
|
||||
} else {
|
||||
$datatable->data[] = array(get_string('email'), obfuscate_mailto($userinfo->backpackemail));
|
||||
}
|
||||
}
|
||||
|
||||
$datatable->data[] = array($this->output->heading(get_string('issuerdetails', 'badges'), 3), '');
|
||||
@@ -414,13 +409,11 @@ class core_badges_renderer extends plugin_renderer_base {
|
||||
$datatable->data[] = array($this->output->heading(get_string('recipientdetails', 'badges'), 3), '');
|
||||
// Technically, we should alway have a user at this point, but added an extra check just in case.
|
||||
if ($userinfo) {
|
||||
$datatable->data[] = array(get_string('name'), fullname($userinfo));
|
||||
$notify = '';
|
||||
if (!$ibadge->valid) {
|
||||
$notify = $this->output->notification(get_string('recipientvalidationproblem', 'badges'), 'notifynotice');
|
||||
$datatable->data[] = array(get_string('email'), obfuscate_mailto($userinfo->email) . $notify);
|
||||
} else {
|
||||
$datatable->data[] = array(get_string('email'), obfuscate_mailto($userinfo->email));
|
||||
}
|
||||
$datatable->data[] = array(get_string('name'), fullname($userinfo). $notify);
|
||||
} else {
|
||||
$notify = $this->output->notification(get_string('recipientidentificationproblem', 'badges'), 'notifynotice');
|
||||
$datatable->data[] = array(get_string('name'), $notify);
|
||||
@@ -945,10 +938,8 @@ class issued_badge implements renderable {
|
||||
if ($rec) {
|
||||
// Get a recipient from database.
|
||||
$namefields = get_all_user_name_fields(true, 'u');
|
||||
$user = $DB->get_record_sql("SELECT u.id, $namefields, u.deleted,
|
||||
u.email AS accountemail, b.email AS backpackemail
|
||||
FROM {user} u LEFT JOIN {badge_backpack} b ON u.id = b.userid
|
||||
WHERE u.id = :userid", array('userid' => $rec->userid));
|
||||
$user = $DB->get_record_sql("SELECT u.id, $namefields, u.deleted, u.email
|
||||
FROM {user} u WHERE u.id = :userid", array('userid' => $rec->userid));
|
||||
$this->recipient = $user;
|
||||
$this->visible = $rec->visible;
|
||||
$this->badgeid = $rec->badgeid;
|
||||
|
||||
@@ -235,7 +235,6 @@ class block_completionstatus extends block_base {
|
||||
|
||||
// Display link to detailed view.
|
||||
$details = new moodle_url('/blocks/completionstatus/details.php', array('course' => $course->id));
|
||||
$this->content->footer = html_writer::empty_tag('br');
|
||||
$this->content->footer = html_writer::link($details, get_string('moredetails', 'completion'));
|
||||
} else {
|
||||
// If user is not enrolled, show error.
|
||||
@@ -244,6 +243,9 @@ class block_completionstatus extends block_base {
|
||||
|
||||
if (has_capability('report/completion:view', $context)) {
|
||||
$report = new moodle_url('/report/completion/index.php', array('course' => $course->id));
|
||||
if (empty($this->content->footer)) {
|
||||
$this->content->footer = '';
|
||||
}
|
||||
$this->content->footer .= html_writer::empty_tag('br');
|
||||
$this->content->footer .= html_writer::link($report, get_string('viewcoursereport', 'completion'));
|
||||
}
|
||||
|
||||
@@ -76,7 +76,7 @@ $page = get_string('completionprogressdetails', 'block_completionstatus');
|
||||
$title = format_string($course->fullname) . ': ' . $page;
|
||||
|
||||
$PAGE->navbar->add($page);
|
||||
$PAGE->set_pagelayout('standard');
|
||||
$PAGE->set_pagelayout('report');
|
||||
$PAGE->set_url('/blocks/completionstatus/details.php', array('course' => $course->id, 'user' => $user->id));
|
||||
$PAGE->set_title(get_string('course') . ': ' . $course->fullname);
|
||||
$PAGE->set_heading($title);
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
@block @block_course_summary
|
||||
Feature: Course summary block used in a course
|
||||
In order to help particpants know the summary of a course
|
||||
As a teacher
|
||||
I can add the course summary block to a course page
|
||||
|
||||
Background:
|
||||
Given the following "courses" exist:
|
||||
| fullname | shortname | summary | category |
|
||||
| Course 1 | C101 | Proved the course summary block works! |0 |
|
||||
And the following "users" exist:
|
||||
| username | firstname | lastname | email |
|
||||
| student1 | Sam | Student | student1@asd.com |
|
||||
| teacher1 | Teacher | One | teacher1@asd.com |
|
||||
And the following "course enrolments" exist:
|
||||
| user | course | role |
|
||||
| student1 | C101 | student |
|
||||
| teacher1 | C101 | editingteacher |
|
||||
And I log in as "teacher1"
|
||||
And I follow "Course 1"
|
||||
And I turn editing mode on
|
||||
And I add the "Course/site summary" block
|
||||
And I log out
|
||||
|
||||
Scenario: Student can view course summary
|
||||
When I log in as "student1"
|
||||
And I follow "Course 1"
|
||||
Then "block_course_summary" "block" should exist
|
||||
And I should see "Proved the course summary block works!" in the "block_course_summary" "block"
|
||||
|
||||
Scenario: Teacher can see an edit icon when edit mode is on and follow it to the course edit page
|
||||
When I log in as "teacher1"
|
||||
And I follow "Course 1"
|
||||
And I turn editing mode on
|
||||
Then I should see "Proved the course summary block works!" in the "block_course_summary" "block"
|
||||
And I click on "Edit" "link" in the "block_course_summary" "block"
|
||||
Then I should see "Edit course settings" in the "h2" "css_element"
|
||||
|
||||
Scenario: Teacher can not see edit icon when edit mode is off
|
||||
When I log in as "teacher1"
|
||||
And I follow "Course 1"
|
||||
Then I should see "Proved the course summary block works!" in the "block_course_summary" "block"
|
||||
And "Edit" "link" should not exist in the "block_course_summary" "block"
|
||||
@@ -0,0 +1,33 @@
|
||||
@block @block_course_summary
|
||||
Feature: Course summary block used on the frontpage
|
||||
In order to help particpants know the summary of a site
|
||||
As admin
|
||||
I can use the course summary block on the frontpage
|
||||
|
||||
Background:
|
||||
Given I log in as "admin"
|
||||
And I follow "Edit settings"
|
||||
And I set the following fields to these values:
|
||||
| summary | Proved the summary block works! |
|
||||
And I press "Save changes"
|
||||
And I log out
|
||||
# The course summary block a default front page block, so no need to add it.
|
||||
|
||||
Scenario: Guest can view site summary
|
||||
When I am on homepage
|
||||
Then "block_course_summary" "block" should exist
|
||||
And I should see "Proved the summary block works!" in the "block_course_summary" "block"
|
||||
|
||||
Scenario: Admin can see an edit icon when edit mode is on and follow it to the front page settings
|
||||
When I log in as "admin"
|
||||
And I am on homepage
|
||||
And I follow "Turn editing on"
|
||||
Then I should see "Proved the summary block works!" in the "block_course_summary" "block"
|
||||
And I click on "Edit" "link" in the "block_course_summary" "block"
|
||||
Then I should see "Front page settings" in the "h2" "css_element"
|
||||
|
||||
Scenario: Admin can not see edit icon when edit mode is off
|
||||
When I log in as "teacher1"
|
||||
And I am on homepage
|
||||
Then I should see "Proved the summary block works!" in the "block_course_summary" "block"
|
||||
And "Edit" "link" should not exist in the "block_course_summary" "block"
|
||||
@@ -148,7 +148,11 @@ class block_glossary_random extends block_base {
|
||||
|
||||
if (empty($this->config->glossary)) {
|
||||
$this->content = new stdClass();
|
||||
$this->content->text = get_string('notyetconfigured','block_glossary_random');
|
||||
if ($this->user_can_edit()) {
|
||||
$this->content->text = get_string('notyetconfigured','block_glossary_random');
|
||||
} else {
|
||||
$this->content->text = '';
|
||||
}
|
||||
$this->content->footer = '';
|
||||
return $this->content;
|
||||
}
|
||||
@@ -175,7 +179,11 @@ class block_glossary_random extends block_base {
|
||||
$this->instance_config_commit();
|
||||
|
||||
$this->content = new stdClass();
|
||||
$this->content->text = get_string('notyetconfigured','block_glossary_random');
|
||||
if ($this->user_can_edit()) {
|
||||
$this->content->text = get_string('notyetconfigured','block_glossary_random');
|
||||
} else {
|
||||
$this->content->text = '';
|
||||
}
|
||||
$this->content->footer = '';
|
||||
return $this->content;
|
||||
}
|
||||
|
||||
+5
-2
@@ -33,7 +33,7 @@
|
||||
* @todo MDL-36050 improve capability check on stick blocks, so we can check user capability before sending images.
|
||||
*/
|
||||
function block_html_pluginfile($course, $birecord_or_cm, $context, $filearea, $args, $forcedownload, array $options=array()) {
|
||||
global $DB, $CFG;
|
||||
global $DB, $CFG, $USER;
|
||||
|
||||
if ($context->contextlevel != CONTEXT_BLOCK) {
|
||||
send_file_not_found();
|
||||
@@ -53,8 +53,11 @@ function block_html_pluginfile($course, $birecord_or_cm, $context, $filearea, $a
|
||||
if (!$category->visible) {
|
||||
require_capability('moodle/category:viewhiddencategories', $parentcontext);
|
||||
}
|
||||
} else if ($parentcontext->contextlevel === CONTEXT_USER && $parentcontext->instanceid != $USER->id) {
|
||||
// The block is in the context of a user, it is only visible to the user who it belongs to.
|
||||
send_file_not_found();
|
||||
}
|
||||
// At this point there is no way to check SYSTEM or USER context, so ignoring it.
|
||||
// At this point there is no way to check SYSTEM context, so ignoring it.
|
||||
}
|
||||
|
||||
if ($filearea !== 'content') {
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
@block @block_login
|
||||
Feature: Login from a block
|
||||
In order to make it easier to login
|
||||
As an user
|
||||
In need to login through a block
|
||||
|
||||
Background:
|
||||
Given the following "users" exist:
|
||||
| username | password | firstname | lastname | email |
|
||||
| testuser | testpass | Test | User | student1@asd.com |
|
||||
And I log in as "admin"
|
||||
And I follow "Turn editing on"
|
||||
And I add the "Login" block
|
||||
|
||||
Scenario: Login block visible to non-logged in users
|
||||
Given I log out
|
||||
When I am on homepage
|
||||
Then "Login" "block" should exist
|
||||
|
||||
Scenario: Login as student through login block
|
||||
Given I log out
|
||||
And I am on homepage
|
||||
When I set the field "Username" to "testuser"
|
||||
And I set the field "Password" to "testpass"
|
||||
And I click on "Log in" "button" in the "Login" "block"
|
||||
Then I should see "You are logged in as Test User"
|
||||
And "Login" "block" should not exist
|
||||
+6
-4
@@ -275,10 +275,12 @@ TREE.prototype = {
|
||||
M.block_navigation.expandablebranchcount++;
|
||||
this.branches[siteadminbranch.get('id')] = siteadminbranch;
|
||||
// Remove link on site admin with JS to keep old UI.
|
||||
var siteadminlinknode = siteadminbranch.node.get('childNodes').item(0);
|
||||
if (siteadminlinknode) {
|
||||
var siteadminnode = Y.Node.create('<span tabindex="0">'+siteadminlinknode.get('innerHTML')+'</span>');
|
||||
siteadminbranch.node.replaceChild(siteadminnode, siteadminlinknode);
|
||||
if (siteadminbranch.node) {
|
||||
var siteadminlinknode = siteadminbranch.node.get('childNodes').item(0);
|
||||
if (siteadminlinknode) {
|
||||
var siteadminnode = Y.Node.create('<span tabindex="0">'+siteadminlinknode.get('innerHTML')+'</span>');
|
||||
siteadminbranch.node.replaceChild(siteadminnode, siteadminlinknode);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (M.block_navigation.expandablebranchcount > 0) {
|
||||
|
||||
+2
-2
File diff suppressed because one or more lines are too long
blocks/navigation/yui/build/moodle-block_navigation-navigation/moodle-block_navigation-navigation.js
Vendored
+6
-4
@@ -274,10 +274,12 @@ TREE.prototype = {
|
||||
M.block_navigation.expandablebranchcount++;
|
||||
this.branches[siteadminbranch.get('id')] = siteadminbranch;
|
||||
// Remove link on site admin with JS to keep old UI.
|
||||
var siteadminlinknode = siteadminbranch.node.get('childNodes').item(0);
|
||||
if (siteadminlinknode) {
|
||||
var siteadminnode = Y.Node.create('<span tabindex="0">'+siteadminlinknode.get('innerHTML')+'</span>');
|
||||
siteadminbranch.node.replaceChild(siteadminnode, siteadminlinknode);
|
||||
if (siteadminbranch.node) {
|
||||
var siteadminlinknode = siteadminbranch.node.get('childNodes').item(0);
|
||||
if (siteadminlinknode) {
|
||||
var siteadminnode = Y.Node.create('<span tabindex="0">'+siteadminlinknode.get('innerHTML')+'</span>');
|
||||
siteadminbranch.node.replaceChild(siteadminnode, siteadminlinknode);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (M.block_navigation.expandablebranchcount > 0) {
|
||||
|
||||
+6
-4
@@ -273,10 +273,12 @@ TREE.prototype = {
|
||||
M.block_navigation.expandablebranchcount++;
|
||||
this.branches[siteadminbranch.get('id')] = siteadminbranch;
|
||||
// Remove link on site admin with JS to keep old UI.
|
||||
var siteadminlinknode = siteadminbranch.node.get('childNodes').item(0);
|
||||
if (siteadminlinknode) {
|
||||
var siteadminnode = Y.Node.create('<span tabindex="0">'+siteadminlinknode.get('innerHTML')+'</span>');
|
||||
siteadminbranch.node.replaceChild(siteadminnode, siteadminlinknode);
|
||||
if (siteadminbranch.node) {
|
||||
var siteadminlinknode = siteadminbranch.node.get('childNodes').item(0);
|
||||
if (siteadminlinknode) {
|
||||
var siteadminnode = Y.Node.create('<span tabindex="0">'+siteadminlinknode.get('innerHTML')+'</span>');
|
||||
siteadminbranch.node.replaceChild(siteadminnode, siteadminlinknode);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (M.block_navigation.expandablebranchcount > 0) {
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
$plugin->version = 2013110500; // The current plugin version (Date: YYYYMMDDXX)
|
||||
$plugin->version = 2013110501; // The current plugin version (Date: YYYYMMDDXX)
|
||||
$plugin->requires = 2013110500; // Requires this Moodle version
|
||||
$plugin->component = 'block_news_items'; // Full name of the plugin (used for diagnostics)
|
||||
$plugin->dependencies = array('mod_forum' => 2013110500);
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
@block @block_participants
|
||||
Feature: People Block used in a course
|
||||
In order to view participants in a course
|
||||
As a teacher
|
||||
I can add the people block to a course
|
||||
|
||||
Background:
|
||||
Given the following "courses" exist:
|
||||
| fullname | shortname | category |
|
||||
| Course 1 | C101 | 0 |
|
||||
And the following "users" exist:
|
||||
| username | firstname | lastname | email |
|
||||
| student1 | Sam | Student | student1@asd.com |
|
||||
And the following "course enrolments" exist:
|
||||
| user | course | role |
|
||||
| student1 | C101 | student |
|
||||
And I log in as "admin"
|
||||
And I follow "Course 1"
|
||||
And I turn editing mode on
|
||||
And I add the "People" block
|
||||
And I log out
|
||||
|
||||
Scenario: Student can view participants link
|
||||
When I log in as "student1"
|
||||
And I follow "Course 1"
|
||||
Then "People" "block" should exist
|
||||
And I should see "Participants" in the "People" "block"
|
||||
|
||||
Scenario: Student can follow participants link and be directed to the correct page
|
||||
When I log in as "student1"
|
||||
And I follow "Course 1"
|
||||
And I click on "Participants" "link" in the "People" "block"
|
||||
Then I should see "All participants" in the "h3" "css_element"
|
||||
And the "My courses" select box should contain "C101"
|
||||
|
||||
Scenario: Student without permission can not view participants link
|
||||
Given the following "permission overrides" exist:
|
||||
| capability | permission | role | contextlevel | reference |
|
||||
| moodle/course:viewparticipants | Prevent | student | Course | C101 |
|
||||
When I log in as "student1"
|
||||
And I follow "Course 1"
|
||||
Then "People" "block" should not exist
|
||||
@@ -0,0 +1,23 @@
|
||||
@block @block_participants
|
||||
Feature: People Block used on frontpage
|
||||
In order to view participants in a site
|
||||
As a admin
|
||||
I can add the people block to the front page
|
||||
|
||||
Background:
|
||||
Given the following "users" exist:
|
||||
| username | firstname | lastname | email |
|
||||
| student1 | Sam | Student | student1@asd.com |
|
||||
And I log in as "admin"
|
||||
And I follow "Turn editing on"
|
||||
And I add the "People" block
|
||||
And I log out
|
||||
|
||||
Scenario: Admin can view site participants link
|
||||
When I log in as "admin"
|
||||
Then "People" "block" should exist
|
||||
And I should see "Participants" in the "People" "block"
|
||||
|
||||
Scenario: Student can not follow participants link on frontpage
|
||||
When I log in as "student1"
|
||||
Then "People" "block" should not exist
|
||||
@@ -177,7 +177,7 @@ if ($returnurl) {
|
||||
$managefeeds = new moodle_url('/blocks/rss_client/managefeeds.php', $urlparams);
|
||||
|
||||
$PAGE->set_url('/blocks/rss_client/editfeed.php', $urlparams);
|
||||
$PAGE->set_pagelayout('standard');
|
||||
$PAGE->set_pagelayout('admin');
|
||||
|
||||
if ($rssid) {
|
||||
$isadding = false;
|
||||
|
||||
@@ -74,7 +74,7 @@ class block_tag_flickr extends block_base {
|
||||
//pull photos from a specific photoset
|
||||
if(!empty($this->config->photoset)){
|
||||
|
||||
$request = 'http://api.flickr.com/services/rest/?method=flickr.photosets.getPhotos';
|
||||
$request = 'https://api.flickr.com/services/rest/?method=flickr.photosets.getPhotos';
|
||||
$request .= '&api_key='.FLICKR_DEV_KEY;
|
||||
$request .= '&photoset_id='.$this->config->photoset;
|
||||
$request .= '&per_page='.$numberofphotos;
|
||||
@@ -94,7 +94,7 @@ class block_tag_flickr extends block_base {
|
||||
//search for photos tagged with $tagscsv
|
||||
else{
|
||||
|
||||
$request = 'http://api.flickr.com/services/rest/?method=flickr.photos.search';
|
||||
$request = 'https://api.flickr.com/services/rest/?method=flickr.photos.search';
|
||||
$request .= '&api_key='.FLICKR_DEV_KEY;
|
||||
$request .= '&tags='.$tagscsv;
|
||||
$request .= '&per_page='.$numberofphotos;
|
||||
|
||||
@@ -44,7 +44,7 @@ if ($id !== null) {
|
||||
}
|
||||
$PAGE->set_url($url);
|
||||
$PAGE->set_context($context);
|
||||
$PAGE->set_pagelayout('standard');
|
||||
$PAGE->set_pagelayout('admin');
|
||||
|
||||
$returnurl = new moodle_url('/blog/external_blogs.php');
|
||||
|
||||
|
||||
@@ -53,7 +53,7 @@ if ($groupid !== null) {
|
||||
}
|
||||
|
||||
$PAGE->set_url($url);
|
||||
$PAGE->set_pagelayout('standard');
|
||||
$PAGE->set_pagelayout('admin');
|
||||
|
||||
$sitecontext = context_system::instance();
|
||||
$PAGE->set_context($sitecontext);
|
||||
|
||||
Vendored
+38
-17
@@ -105,6 +105,14 @@ class cachestore_mongodb extends cache_store implements cache_is_configurable {
|
||||
*/
|
||||
protected $isready = false;
|
||||
|
||||
/**
|
||||
* Set to true if the Mongo extension is < version 1.3.
|
||||
* If this is the case we must use the legacy Mongo class instead of MongoClient.
|
||||
* Mongo is backwards compatible, although obviously deprecated.
|
||||
* @var bool
|
||||
*/
|
||||
protected $legacymongo = false;
|
||||
|
||||
/**
|
||||
* Constructs a new instance of the Mongo store.
|
||||
*
|
||||
@@ -140,8 +148,13 @@ class cachestore_mongodb extends cache_store implements cache_is_configurable {
|
||||
$this->extendedmode = $configuration['extendedmode'];
|
||||
}
|
||||
|
||||
// Test if the MongoClient class exists, if not we need to switch to legacy classes.
|
||||
$this->legacymongo = (!class_exists('MongoClient'));
|
||||
|
||||
// MongoClient from Mongo 1.3 onwards. Mongo for earlier versions.
|
||||
$class = ($this->legacymongo) ? 'Mongo' : 'MongoClient';
|
||||
try {
|
||||
$this->connection = new Mongo($this->server, $this->options);
|
||||
$this->connection = new $class($this->server, $this->options);
|
||||
$this->isready = true;
|
||||
} catch (MongoConnectionException $e) {
|
||||
// We only want to catch MongoConnectionExceptions here.
|
||||
@@ -153,7 +166,7 @@ class cachestore_mongodb extends cache_store implements cache_is_configurable {
|
||||
* @return bool
|
||||
*/
|
||||
public static function are_requirements_met() {
|
||||
return class_exists('Mongo');
|
||||
return class_exists('MongoClient') || class_exists('Mongo');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -193,10 +206,14 @@ class cachestore_mongodb extends cache_store implements cache_is_configurable {
|
||||
$this->database = $this->connection->selectDB($this->databasename);
|
||||
$this->definitionhash = $definition->generate_definition_hash();
|
||||
$this->collection = $this->database->selectCollection($this->definitionhash);
|
||||
$this->collection->ensureIndex(array('key' => 1), array(
|
||||
'safe' => $this->usesafe,
|
||||
'name' => 'idx_key'
|
||||
));
|
||||
|
||||
$options = array('name' => 'idx_key');
|
||||
if ($this->legacymongo) {
|
||||
$options['safe'] = $this->usesafe;
|
||||
} else {
|
||||
$options['w'] = $this->usesafe ? 1 : 0;
|
||||
}
|
||||
$this->collection->ensureIndex(array('key' => 1), $options);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -301,11 +318,12 @@ class cachestore_mongodb extends cache_store implements cache_is_configurable {
|
||||
$record = $key;
|
||||
}
|
||||
$record['data'] = serialize($data);
|
||||
$options = array(
|
||||
'upsert' => true,
|
||||
'safe' => $this->usesafe,
|
||||
'w' => $this->usesafe ? 1 : 0
|
||||
);
|
||||
$options = array('upsert' => true);
|
||||
if ($this->legacymongo) {
|
||||
$options['safe'] = $this->usesafe;
|
||||
} else {
|
||||
$options['w'] = $this->usesafe ? 1 : 0;
|
||||
}
|
||||
$this->delete($key);
|
||||
$result = $this->collection->insert($record, $options);
|
||||
if ($result === true) {
|
||||
@@ -354,11 +372,12 @@ class cachestore_mongodb extends cache_store implements cache_is_configurable {
|
||||
} else {
|
||||
$criteria = $key;
|
||||
}
|
||||
$options = array(
|
||||
'justOne' => false,
|
||||
'safe' => $this->usesafe,
|
||||
'w' => $this->usesafe ? 1 : 0
|
||||
);
|
||||
$options = array('justOne' => false);
|
||||
if ($this->legacymongo) {
|
||||
$options['safe'] = $this->usesafe;
|
||||
} else {
|
||||
$options['w'] = $this->usesafe ? 1 : 0;
|
||||
}
|
||||
$result = $this->collection->remove($criteria, $options);
|
||||
|
||||
if ($result === true) {
|
||||
@@ -483,7 +502,9 @@ class cachestore_mongodb extends cache_store implements cache_is_configurable {
|
||||
$connection = $this->connection;
|
||||
} else {
|
||||
try {
|
||||
$connection = new Mongo($this->server, $this->options);
|
||||
// MongoClient from Mongo 1.3 onwards. Mongo for earlier versions.
|
||||
$class = ($this->legacymongo) ? 'Mongo' : 'MongoClient';
|
||||
$connection = new $class($this->server, $this->options);
|
||||
} catch (MongoConnectionException $e) {
|
||||
// We only want to catch MongoConnectionExceptions here.
|
||||
// If the server cannot be connected to we cannot clean it.
|
||||
|
||||
+1
-1
@@ -86,7 +86,7 @@ if ($courseid != SITEID) {
|
||||
}
|
||||
|
||||
$PAGE->set_url($url);
|
||||
$PAGE->set_pagelayout('standard');
|
||||
$PAGE->set_pagelayout('admin');
|
||||
|
||||
if ($courseid != SITEID && !empty($courseid)) {
|
||||
$course = $DB->get_record('course', array('id' => $courseid), '*', MUST_EXIST);
|
||||
|
||||
@@ -41,7 +41,7 @@ if ($courseid != SITEID) {
|
||||
}
|
||||
navigation_node::override_active_url(new moodle_url('/calendar/view.php', array('view' => 'month')));
|
||||
$PAGE->set_url($url);
|
||||
$PAGE->set_pagelayout('standard');
|
||||
$PAGE->set_pagelayout('admin');
|
||||
$PAGE->navbar->add(get_string('managesubscriptions', 'calendar'));
|
||||
|
||||
if ($courseid != SITEID && !empty($courseid)) {
|
||||
|
||||
+1
-1
@@ -8,6 +8,6 @@
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "3.7.*",
|
||||
"phpunit/dbUnit": "1.2.*",
|
||||
"moodlehq/behat-extension": "1.26.7"
|
||||
"moodlehq/behat-extension": "1.26.8"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -65,7 +65,7 @@ $PAGE->set_course($course);
|
||||
$PAGE->set_url('/course/completion.php', array('id' => $course->id));
|
||||
$PAGE->set_title($course->shortname);
|
||||
$PAGE->set_heading($course->fullname);
|
||||
$PAGE->set_pagelayout('standard');
|
||||
$PAGE->set_pagelayout('admin');
|
||||
|
||||
// Create the settings form instance.
|
||||
$form = new course_completion_form('completion.php?id='.$id, array('course' => $course));
|
||||
|
||||
+5
-1
@@ -232,8 +232,12 @@ M.course_dndupload = {
|
||||
types_includes: function(e, type) {
|
||||
var i;
|
||||
var types = e._event.dataTransfer.types;
|
||||
type = type.toLowerCase();
|
||||
for (i=0; i<types.length; i++) {
|
||||
if (types[i] == type) {
|
||||
if (!types.hasOwnProperty(i)) {
|
||||
continue;
|
||||
}
|
||||
if (types[i].toLowerCase() === type) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
+15
-1
@@ -1220,7 +1220,7 @@ function set_section_visible($courseid, $sectionnumber, $visibility) {
|
||||
if (!empty($section->sequence)) {
|
||||
$modules = explode(",", $section->sequence);
|
||||
foreach ($modules as $moduleid) {
|
||||
if ($cm = $DB->get_record('course_modules', array('id' => $moduleid), 'visible, visibleold')) {
|
||||
if ($cm = get_coursemodule_from_id(null, $moduleid, $courseid)) {
|
||||
if ($visibility) {
|
||||
// As we unhide the section, we use the previously saved visibility stored in visibleold.
|
||||
set_coursemodule_visible($moduleid, $cm->visibleold);
|
||||
@@ -1229,6 +1229,7 @@ function set_section_visible($courseid, $sectionnumber, $visibility) {
|
||||
set_coursemodule_visible($moduleid, 0);
|
||||
$DB->set_field('course_modules', 'visibleold', $cm->visible, array('id' => $moduleid));
|
||||
}
|
||||
\core\event\course_module_updated::create_from_cm($cm)->trigger();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1530,6 +1531,16 @@ function course_add_cm_to_section($courseorid, $cmid, $sectionnum, $beforemod =
|
||||
return $section->id; // Return course_sections ID that was used.
|
||||
}
|
||||
|
||||
/**
|
||||
* Change the group mode of a course module.
|
||||
*
|
||||
* Note: Do not forget to trigger the event \core\event\course_module_updated as it needs
|
||||
* to be triggered manually, refer to {@link \core\event\course_module_updated::create_from_cm()}.
|
||||
*
|
||||
* @param int $id course module ID.
|
||||
* @param int $groupmode the new groupmode value.
|
||||
* @return bool True if the $groupmode was updated.
|
||||
*/
|
||||
function set_coursemodule_groupmode($id, $groupmode) {
|
||||
global $DB;
|
||||
$cm = $DB->get_record('course_modules', array('id' => $id), 'id,course,groupmode', MUST_EXIST);
|
||||
@@ -1553,6 +1564,9 @@ function set_coursemodule_idnumber($id, $idnumber) {
|
||||
/**
|
||||
* Set the visibility of a module and inherent properties.
|
||||
*
|
||||
* Note: Do not forget to trigger the event \core\event\course_module_updated as it needs
|
||||
* to be triggered manually, refer to {@link \core\event\course_module_updated::create_from_cm()}.
|
||||
*
|
||||
* From 2.4 the parameter $prevstateoverrides has been removed, the logic it triggered
|
||||
* has been moved to {@link set_section_visible()} which was the only place from which
|
||||
* the parameter was used.
|
||||
|
||||
+3
-2
@@ -227,7 +227,7 @@ if ((!empty($movetosection) or !empty($moveto)) and confirm_sesskey()) {
|
||||
require_capability('moodle/course:activityvisibility', $modcontext);
|
||||
|
||||
set_coursemodule_visible($cm->id, 0);
|
||||
|
||||
\core\event\course_module_updated::create_from_cm($cm, $modcontext)->trigger();
|
||||
redirect(course_get_url($course, $cm->sectionnum, array('sr' => $sectionreturn)));
|
||||
|
||||
} else if (!empty($show) and confirm_sesskey()) {
|
||||
@@ -245,6 +245,7 @@ if ((!empty($movetosection) or !empty($moveto)) and confirm_sesskey()) {
|
||||
|
||||
if ($module->visible and ($section->visible or (SITEID == $cm->course))) {
|
||||
set_coursemodule_visible($cm->id, 1);
|
||||
\core\event\course_module_updated::create_from_cm($cm, $modcontext)->trigger();
|
||||
}
|
||||
|
||||
redirect(course_get_url($course, $section->section, array('sr' => $sectionreturn)));
|
||||
@@ -261,7 +262,7 @@ if ((!empty($movetosection) or !empty($moveto)) and confirm_sesskey()) {
|
||||
require_capability('moodle/course:manageactivities', $modcontext);
|
||||
|
||||
set_coursemodule_groupmode($cm->id, $groupmode);
|
||||
|
||||
\core\event\course_module_updated::create_from_cm($cm, $modcontext)->trigger();
|
||||
redirect(course_get_url($course, $cm->sectionnum, array('sr' => $sectionreturn)));
|
||||
|
||||
} else if (!empty($copy) and confirm_sesskey()) { // value = course module
|
||||
|
||||
+2
-13
@@ -505,19 +505,8 @@ function update_moduleinfo($cm, $moduleinfo, $course, $mform = null) {
|
||||
if ($completion->is_enabled() && !empty($moduleinfo->completionunlocked)) {
|
||||
$completion->reset_all_state($cm);
|
||||
}
|
||||
|
||||
// Trigger event based on the action we did.
|
||||
$event = \core\event\course_module_updated::create(array(
|
||||
'courseid' => $course->id,
|
||||
'context' => $modcontext,
|
||||
'objectid' => $moduleinfo->coursemodule,
|
||||
'other' => array(
|
||||
'modulename' => $moduleinfo->modulename,
|
||||
'name' => $moduleinfo->name,
|
||||
'instanceid' => $moduleinfo->instance
|
||||
)
|
||||
));
|
||||
$event->trigger();
|
||||
$cm->name = $moduleinfo->name;
|
||||
\core\event\course_module_updated::create_from_cm($cm, $modcontext)->trigger();
|
||||
|
||||
add_to_log($course->id, $moduleinfo->modulename, "update",
|
||||
"view.php?id=$moduleinfo->coursemodule",
|
||||
|
||||
@@ -224,8 +224,10 @@ abstract class moodleform_mod extends moodleform {
|
||||
// is changed, maybe someone has completed it now)
|
||||
$mform->getElement('completionunlocked')->setValue(1);
|
||||
} else {
|
||||
// Has the element been unlocked?
|
||||
if ($mform->exportValue('unlockcompletion')) {
|
||||
// Has the element been unlocked, either by the button being pressed
|
||||
// in this request, or the field already being set from a previous one?
|
||||
if ($mform->exportValue('unlockcompletion') ||
|
||||
$mform->exportValue('completionunlocked')) {
|
||||
// Yes, add in warning text and set the hidden variable
|
||||
$mform->insertElementBefore(
|
||||
$mform->createElement('static', 'completedunlocked',
|
||||
@@ -688,6 +690,11 @@ abstract class moodleform_mod extends moodleform {
|
||||
$mform->disabledIf('completionusegrade', 'completion', 'ne', COMPLETION_TRACKING_AUTOMATIC);
|
||||
$mform->addHelpButton('completionusegrade', 'completionusegrade', 'completion');
|
||||
$gotcompletionoptions = true;
|
||||
|
||||
// If using the rating system, there is no grade unless ratings are enabled.
|
||||
if ($this->_features->rating) {
|
||||
$mform->disabledIf('completionusegrade', 'assessed', 'eq', 0);
|
||||
}
|
||||
}
|
||||
|
||||
// Automatic completion according to module-specific rules
|
||||
|
||||
@@ -101,6 +101,8 @@ class recent_form extends moodleform {
|
||||
} else {
|
||||
// Default to no user.
|
||||
$mform->addElement('hidden', 'user', 0);
|
||||
$mform->setType('user', PARAM_INT);
|
||||
$mform->setConstant('user', 0);
|
||||
}
|
||||
|
||||
$options = array(''=>get_string('allactivities'));
|
||||
|
||||
@@ -104,6 +104,7 @@ switch($requestmethod) {
|
||||
case 'visible':
|
||||
require_capability('moodle/course:activityvisibility', $modcontext);
|
||||
set_coursemodule_visible($cm->id, $value);
|
||||
\core\event\course_module_updated::create_from_cm($cm, $modcontext)->trigger();
|
||||
break;
|
||||
|
||||
case 'duplicate':
|
||||
@@ -121,6 +122,7 @@ switch($requestmethod) {
|
||||
case 'groupmode':
|
||||
require_capability('moodle/course:manageactivities', $modcontext);
|
||||
set_coursemodule_groupmode($cm->id, $value);
|
||||
\core\event\course_module_updated::create_from_cm($cm, $modcontext)->trigger();
|
||||
break;
|
||||
|
||||
case 'indent':
|
||||
@@ -173,6 +175,8 @@ switch($requestmethod) {
|
||||
|
||||
if (!empty($module->name)) {
|
||||
$DB->update_record($cm->modname, $module);
|
||||
$cm->name = $module->name;
|
||||
\core\event\course_module_updated::create_from_cm($cm, $modcontext)->trigger();
|
||||
rebuild_course_cache($cm->course);
|
||||
} else {
|
||||
$module->name = $cm->name;
|
||||
|
||||
@@ -142,7 +142,8 @@ class core_course_courselib_testcase extends advanced_testcase {
|
||||
// The goal not being to fully test assign_add_instance() we'll stop here for the assign tests - to avoid too many DB queries.
|
||||
|
||||
// Advanced grading.
|
||||
$contextmodule = context_module::instance($dbmodinstance->id);
|
||||
$cm = get_coursemodule_from_instance('assign', $dbmodinstance->id);
|
||||
$contextmodule = context_module::instance($cm->id);
|
||||
$advancedgradingmethod = $DB->get_record('grading_areas',
|
||||
array('contextid' => $contextmodule->id,
|
||||
'activemethod' => $moduleinfo->advancedgradingmethod_submissions));
|
||||
@@ -993,6 +994,32 @@ class core_course_courselib_testcase extends advanced_testcase {
|
||||
}
|
||||
}
|
||||
|
||||
public function test_section_visibility_events() {
|
||||
$this->setAdminUser();
|
||||
$this->resetAfterTest(true);
|
||||
|
||||
$course = $this->getDataGenerator()->create_course(array('numsections' => 1), array('createsections' => true));
|
||||
$sectionnumber = 1;
|
||||
$forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id),
|
||||
array('section' => $sectionnumber));
|
||||
$assign = $this->getDataGenerator()->create_module('assign', array('duedate' => time(),
|
||||
'course' => $course->id), array('section' => $sectionnumber));
|
||||
$sink = $this->redirectEvents();
|
||||
set_section_visible($course->id, $sectionnumber, 0);
|
||||
$events = $sink->get_events();
|
||||
|
||||
// Extract the number of events related to what we are testing, other events
|
||||
// such as course_section_updated could have been triggered.
|
||||
$count = 0;
|
||||
foreach ($events as $event) {
|
||||
if ($event instanceof \core\event\course_module_updated) {
|
||||
$count++;
|
||||
}
|
||||
}
|
||||
$this->assertSame(2, $count);
|
||||
$sink->close();
|
||||
}
|
||||
|
||||
public function test_section_visibility() {
|
||||
$this->setAdminUser();
|
||||
$this->resetAfterTest(true);
|
||||
@@ -2035,6 +2062,46 @@ class core_course_courselib_testcase extends advanced_testcase {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests for create_from_cm method.
|
||||
*/
|
||||
public function test_course_module_create_from_cm() {
|
||||
$this->resetAfterTest();
|
||||
$this->setAdminUser();
|
||||
|
||||
// Create course and modules.
|
||||
$course = $this->getDataGenerator()->create_course(array('numsections' => 5));
|
||||
|
||||
// Generate an assignment.
|
||||
$assign = $this->getDataGenerator()->create_module('assign', array('course' => $course->id));
|
||||
|
||||
// Get the module context.
|
||||
$modcontext = context_module::instance($assign->cmid);
|
||||
|
||||
// Get course module.
|
||||
$cm = get_coursemodule_from_id(null, $assign->cmid, $course->id, false, MUST_EXIST);
|
||||
|
||||
// Create an event from course module.
|
||||
$event = \core\event\course_module_updated::create_from_cm($cm, $modcontext);
|
||||
|
||||
// Trigger the events.
|
||||
$sink = $this->redirectEvents();
|
||||
$event->trigger();
|
||||
$events = $sink->get_events();
|
||||
$event2 = array_pop($events);
|
||||
|
||||
// Test event data.
|
||||
$this->assertInstanceOf('\core\event\course_module_updated', $event);
|
||||
$this->assertEquals($cm->id, $event2->objectid);
|
||||
$this->assertEquals($modcontext, $event2->get_context());
|
||||
$this->assertEquals($cm->modname, $event2->other['modulename']);
|
||||
$this->assertEquals($cm->instance, $event2->other['instanceid']);
|
||||
$this->assertEquals($cm->name, $event2->other['name']);
|
||||
$this->assertSame('mod_updated', $event2->get_legacy_eventname());
|
||||
$arr = array($cm->course, "course", "update mod", "../mod/assign/view.php?id=$cm->id", "assign $cm->instance");
|
||||
$this->assertEventLegacyLogData($arr, $event);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests for event validations related to course module update.
|
||||
*/
|
||||
|
||||
@@ -41,6 +41,10 @@ if ($course->id == SITEID) {
|
||||
redirect("$CFG->wwwroot/");
|
||||
}
|
||||
|
||||
if (!$course->visible && !has_capability('moodle/course:viewhiddencourses', context_course::instance($course->id))) {
|
||||
print_error('coursehidden');
|
||||
}
|
||||
|
||||
$PAGE->set_course($course);
|
||||
$PAGE->set_pagelayout('course');
|
||||
$PAGE->set_url('/enrol/index.php', array('id'=>$course->id));
|
||||
|
||||
@@ -109,7 +109,7 @@ M.gradingform_rubriceditor.editmode = function(el, editmode, focustb) {
|
||||
height
|
||||
if (el.hasClass('level')) height = parseFloat(el.getComputedStyle('height')) - parseFloat(el.one('.score').getComputedStyle('height'))
|
||||
else height = parseFloat(ta.get('parentNode').getComputedStyle('height'))
|
||||
ta.setStyle('width', Math.max(width,50)+'px')
|
||||
ta.setStyle('width', Math.max(width-16,50)+'px')
|
||||
ta.setStyle('height', Math.max(height,20)+'px')
|
||||
}
|
||||
catch (err) {
|
||||
|
||||
@@ -220,7 +220,7 @@ class MoodleQuickForm_rubriceditor extends HTML_QuickForm_input {
|
||||
'score' => 0,
|
||||
);
|
||||
foreach ($criterion['levels'] as $lastlevel) {
|
||||
if ($level['score'] < $lastlevel['score'] + 1) {
|
||||
if (isset($lastlevel['score']) && $level['score'] < $lastlevel['score'] + 1) {
|
||||
$level['score'] = $lastlevel['score'] + 1;
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -122,7 +122,7 @@ $straddgroupstogroupings = get_string('addgroupstogroupings', 'group');
|
||||
$groupingname = format_string($grouping->name);
|
||||
|
||||
navigation_node::override_active_url(new moodle_url('/group/index.php', array('id'=>$course->id)));
|
||||
$PAGE->set_pagelayout('standard');
|
||||
$PAGE->set_pagelayout('admin');
|
||||
|
||||
$PAGE->navbar->add($strparticipants, new moodle_url('/user/index.php', array('id'=>$courseid)));
|
||||
$PAGE->navbar->add($strgroups, new moodle_url('/group/index.php', array('id'=>$courseid)));
|
||||
|
||||
+1
-1
@@ -52,7 +52,7 @@ $strautocreategroups = get_string('autocreategroups', 'group');
|
||||
|
||||
$PAGE->set_title($strgroups);
|
||||
$PAGE->set_heading($course->fullname. ': '.$strgroups);
|
||||
$PAGE->set_pagelayout('standard');
|
||||
$PAGE->set_pagelayout('admin');
|
||||
navigation_node::override_active_url(new moodle_url('/group/index.php', array('id' => $courseid)));
|
||||
|
||||
// Print the page and form
|
||||
|
||||
+1
-1
@@ -77,7 +77,7 @@ require_capability('moodle/course:managegroups', $context);
|
||||
$strgroups = get_string('groups');
|
||||
$PAGE->set_title($strgroups);
|
||||
$PAGE->set_heading($course->fullname . ': '.$strgroups);
|
||||
$PAGE->set_pagelayout('standard');
|
||||
$PAGE->set_pagelayout('admin');
|
||||
navigation_node::override_active_url(new moodle_url('/group/index.php', array('id' => $course->id)));
|
||||
|
||||
$returnurl = $CFG->wwwroot.'/group/index.php?id='.$course->id.'&group='.$id;
|
||||
|
||||
+1
-1
@@ -69,7 +69,7 @@ require_capability('moodle/course:managegroups', $context);
|
||||
$strgroupings = get_string('groupings', 'group');
|
||||
$PAGE->set_title($strgroupings);
|
||||
$PAGE->set_heading($course->fullname. ': '.$strgroupings);
|
||||
$PAGE->set_pagelayout('standard');
|
||||
$PAGE->set_pagelayout('admin');
|
||||
navigation_node::override_active_url(new moodle_url('/group/index.php', array('id' => $course->id)));
|
||||
|
||||
$returnurl = $CFG->wwwroot.'/group/groupings.php?id='.$course->id;
|
||||
|
||||
+1
-1
@@ -45,7 +45,7 @@ $PAGE->navbar->add($strimportgroups);
|
||||
navigation_node::override_active_url(new moodle_url('/group/index.php', array('id' => $course->id)));
|
||||
$PAGE->set_title("$course->shortname: $strimportgroups");
|
||||
$PAGE->set_heading($course->fullname);
|
||||
$PAGE->set_pagelayout('standard');
|
||||
$PAGE->set_pagelayout('admin');
|
||||
|
||||
$returnurl = new moodle_url('/group/index.php', array('id'=>$id));
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
$string['cannotcreatedboninstall'] = '<p>Nelze vytvořit databázi.</p>
|
||||
<p>Určená databáze neexistuje a uživatel nemá oprávnění k vytvoření databáze. </p>
|
||||
<p>Určená databáze neexistuje a uživatel nemá oprávnění k vytvoření databáze.</p>
|
||||
<p>Správce stránek by měl ověřit konfiguraci databáze.</p>';
|
||||
$string['cannotcreatelangdir'] = 'Nelze vytvořit adresář pro jazykové soubory';
|
||||
$string['cannotcreatetempdir'] = 'Nelze vytvořit dočasný adresář';
|
||||
|
||||
@@ -44,7 +44,7 @@ $string['dmlexceptiononinstall'] = '<p>Ein Datenbankfehler ist aufgetreten [{$a-
|
||||
$string['downloadedfilecheckfailed'] = 'Die Überprüfung der heruntergeladenen Datei ist gescheitert';
|
||||
$string['invalidmd5'] = 'Der Prüfwert ist ungültig. Versuchen Sie es bitte nochmal!';
|
||||
$string['missingrequiredfield'] = 'Einige erforderliche Felder sind nicht ausgefüllt.';
|
||||
$string['remotedownloaderror'] = 'Der Download auf Ihren Server konnte nicht ausgeführt werden. Prüfen Sie bitte die Proxy-Einstellungen, die PHP CURL Erweiterung wird dringend empfohlen.<br /><br />Die Datei <a href="{$a->url}">{$a->url}</a> muss nun manuell herunter geladen, entpackt und auf den Server nach "{$a->dest}" kopiert werden. there.';
|
||||
$string['remotedownloaderror'] = '<p>Der Download auf Ihren Server konnte nicht ausgeführt werden. Prüfen Sie bitte die Proxy-Einstellungen, die PHP CURL Erweiterung wird dringend empfohlen.</p><p>Die Datei <a href="{$a->url}">{$a->url}</a> muss nun manuell herunter geladen, entpackt und auf den Server nach "{$a->dest}" kopiert werden. there.</p>';
|
||||
$string['wrongdestpath'] = 'Falscher Pfad';
|
||||
$string['wrongsourcebase'] = 'Falsche URL-Quelle';
|
||||
$string['wrongzipfilename'] = 'Falscher ZIP-Dateiname';
|
||||
|
||||
+11
-10
@@ -34,8 +34,8 @@ $string['admindirname'] = 'Admin directory';
|
||||
$string['availablelangs'] = 'Available language packs';
|
||||
$string['chooselanguagehead'] = 'Choose a language';
|
||||
$string['chooselanguagesub'] = 'Please choose a language for the installation. This language will also be used as the default language for the site, though it may be changed later.';
|
||||
$string['clialreadyconfigured'] = 'File config.php already exists, please use admin/cli/install_database.php if you want to install this site.';
|
||||
$string['clialreadyinstalled'] = 'File config.php already exists, please use admin/cli/upgrade.php if you want to upgrade this site.';
|
||||
$string['clialreadyconfigured'] = 'The configuration file config.php already exists. Please use admin/cli/install_database.php to install Moodle for this site.';
|
||||
$string['clialreadyinstalled'] = 'The configuration file config.php already exists. Please use admin/cli/install_database.php to upgrade Moodle for this site.';
|
||||
$string['cliinstallheader'] = 'Moodle {$a} command line installation program';
|
||||
$string['databasehost'] = 'Database host';
|
||||
$string['databasename'] = 'Database name';
|
||||
@@ -77,14 +77,15 @@ $string['pathsroparentdataroot'] = 'Parent directory ({$a->parent}) is not write
|
||||
$string['pathssubadmindir'] = 'A very few webhosts use /admin as a special URL for you to access a
|
||||
control panel or something. Unfortunately this conflicts with the standard location for the Moodle admin pages. You can fix this by
|
||||
renaming the admin directory in your installation, and putting that new name here. For example: <em>moodleadmin</em>. This will fix admin links in Moodle.';
|
||||
$string['pathssubdataroot'] = 'You need a place where Moodle can save uploaded files. This directory should be readable AND WRITEABLE by the web server user
|
||||
(usually \'nobody\' or \'apache\'), but it must not be accessible directly via the web. The installer will try to create it if doesn\'t exist.';
|
||||
$string['pathssubdirroot'] = 'Full directory path to Moodle installation.';
|
||||
$string['pathssubwwwroot'] = 'Full web address where Moodle will be accessed.
|
||||
It\'s not possible to access Moodle using multiple addresses.
|
||||
If your site has multiple public addresses you must set up permanent redirects on all of them except this one.
|
||||
If your site is accessible both from Intranet and Internet use the public address here and set up DNS so that the Intranet users may use the public address too.
|
||||
If the address is not correct please change the URL in your browser to restart installation with a different value.';
|
||||
$string['pathssubdataroot'] = '<p>A directory where Moodle will store all file content uploaded by users.</p>
|
||||
<p>This directory should be both readable and writeable by the web server user (usually \'www-data\', \'nobody\', or \'apache\').</p>
|
||||
<p>It must not be directly accessible over the web.</p>
|
||||
<p>If the directory does not currently exist, the installation process will attempt to create it.</p>';
|
||||
$string['pathssubdirroot'] = '<p>The full path to the directory containing the Moodle code.</p>';
|
||||
$string['pathssubwwwroot'] = '<p>The full address where Moodle will be accessed i.e. the address that users will enter into the address bar of their browser to access Moodle.</p>
|
||||
<p>It is not possible to access Moodle using multiple addresses. If your site is accessible via multiple addresses then choose the easiest one and set up a permanent redirect for each of the other addresses.</p>
|
||||
<p>If your site is accessible both from the Internet, and from an internal network (sometimes called an Intranet), then use the public address here.</p>
|
||||
<p>If the current address is not correct, please change the URL in your browser\'s address bar and restart the installation.</p>';
|
||||
$string['pathsunsecuredataroot'] = 'Dataroot location is not secure';
|
||||
$string['pathswrongadmindir'] = 'Admin directory does not exist';
|
||||
$string['phpextension'] = '{$a} PHP extension';
|
||||
|
||||
@@ -34,8 +34,8 @@ $string['admindirname'] = 'Directorio Admin';
|
||||
$string['availablelangs'] = 'Paquetes de idiomas disponibles';
|
||||
$string['chooselanguagehead'] = 'Seleccionar idioma';
|
||||
$string['chooselanguagesub'] = 'Por favor, seleccione un idioma para el proceso de instalación. Este idioma se usará también como idioma por defecto del sitio, si bien puede cambiarse más adelante.';
|
||||
$string['clialreadyconfigured'] = 'El archivo config.php ya existe, por favor use admin/cli/install_database.php si desea instalar este sitio';
|
||||
$string['clialreadyinstalled'] = 'El archivo config.php ya existe. Por favor, utilice admin/cli/upgrade.php si desea actualizar su sitio web.';
|
||||
$string['clialreadyconfigured'] = 'El archivo de configuración config.php ya existe. Por favor, use admin/cli/install_database.php para instalar Moodle para este sitio';
|
||||
$string['clialreadyinstalled'] = 'El archivo de configuración config.php ya existe. Por favor, utilice admin/cli/install_database.php para actualizar Moodle para este sitio.';
|
||||
$string['cliinstallheader'] = 'Programa de instalación Moodle de línea de comando {$a}';
|
||||
$string['databasehost'] = 'host de la Base de Datos';
|
||||
$string['databasename'] = 'Nombre de la base de datos';
|
||||
@@ -72,9 +72,15 @@ $string['pathsrodataroot'] = 'El directorio dataroot no tiene permisos de escrit
|
||||
$string['pathsroparentdataroot'] = 'El directorio padre ({$a->parent}) no tiene permisos de escritura. El directorio de los datos ({$a->dataroot}) no puede ser creado por el instalador.';
|
||||
$string['pathssubadmindir'] = 'Muy pocos servidores web usan /admin como un URL especial para acceder a un
|
||||
panel de control o algo similar. Lamentablemente, esto entra en conflicto con la ubicación estándar para las páginas de administración de Moodle. Usted puede solucionar este problema, renombrando el directorio admin en su instalación Moodle, poniendo un nuevo nombre aquí. Por ejemplo: <em> moodleadmin </em>. Esto solucionará los enlaces de administración en instalación Moodle.';
|
||||
$string['pathssubdataroot'] = 'Usted necesita un espacio donde Moodle puede guardar los archivos subidos. En este directorio debe poder LEER y ESCRIBIR el usuario del servidor web (por lo general \'nobody\', \'apache\' o \'www-data\'), pero no debe poderse acceder a esta carpeta directamente a través de la web. El instalador tratará de crearla si no existe.';
|
||||
$string['pathssubdirroot'] = 'Ruta completa del directorio de instalación de Moodle.';
|
||||
$string['pathssubwwwroot'] = 'Dirección web completa para acceder a Moodle. No es posible acceder a Moodle utilizando múltiples direcciones. Si su sitio tiene varias direcciones públicas debe configurar redirecciones permanentes en todas ellas, excepto en ésta. Si su sitio web es accesible tanto desde una intranet como desde Internet, escriba aquí la dirección pública y configure su DNS para que los usuarios de su intranet puedan también utilizar la dirección pública.';
|
||||
$string['pathssubdataroot'] = '<p>Un directorio en donde Moodle almacenará todo el contenido de los archivos subidos por usuarios.</p>
|
||||
<p>Este directorio debería de ser, tanto legible como escribible por el usuario del servidor web (usualmente \'www-data\', \'nobody\', o \'apache\').</p>
|
||||
<p>No debería de estar directamente accesible por web.</p>
|
||||
<p>Si el directorio no existiera actualmente, el proceso de instalación intentará crearlo.</p>';
|
||||
$string['pathssubdirroot'] = '<p> La ruta completa al directorio que contiene el código de Moodle.</p>';
|
||||
$string['pathssubwwwroot'] = '<p>La dirección completa desde donde se accederá a Moodle; o sea, la dirección que los usuarios escribirán en la barra de dirección de su navegador para acceder a Moodle.</p>
|
||||
<p>No es posible acceder a Moodle usando direcciones múltiples. Si su sitio fuera accesible desde direcciones múltiples, entonces elija la más sencilla y configure una redirección permanente para cada una de las otras direcciones.</p>
|
||||
<p>Si su sitio fuera accesible, tanto desde la Internet como desde una red interna (la que a veces llaman intranet) , entonce use aquí la dirección pública.</p>
|
||||
<p>Si la dirección actual no fuera correcta, por favor, cambie la URL en la barra de dirección del navegador y reinicie la instalación.</p>';
|
||||
$string['pathsunsecuredataroot'] = 'La ubicación de dataroot no es segura';
|
||||
$string['pathswrongadmindir'] = 'El directorio admin no existe';
|
||||
$string['phpextension'] = 'Extensión PHP {$a}';
|
||||
|
||||
@@ -34,7 +34,7 @@ $string['admindirname'] = 'Dossier administration';
|
||||
$string['availablelangs'] = 'Paquetages de langue disponibles';
|
||||
$string['chooselanguagehead'] = 'Choisissez une langue';
|
||||
$string['chooselanguagesub'] = 'Veuillez choisir la langue d\'installation. Cette langue sera utilisée comme langue par défaut du site, que vous pourrez modifier ultérieurement.';
|
||||
$string['clialreadyconfigured'] = 'Le fichier config.php existe déjà. Veuillez utiliser admin/cli/install_database.php si vous désirez mettre à jour ce site.';
|
||||
$string['clialreadyconfigured'] = 'Le fichier config.php existe déjà. Veuillez utiliser admin/cli/install_database.php pour installer Moodle sur ce site.';
|
||||
$string['clialreadyinstalled'] = 'Le fichier config.php existe déjà. Veuillez utiliser admin/cli/upgrade.php si vous désirez mettre à jour ce site.';
|
||||
$string['cliinstallheader'] = 'Programme d\'installation de Moodle {$a} en ligne de commande';
|
||||
$string['databasehost'] = 'Serveur de base de données';
|
||||
@@ -65,9 +65,15 @@ $string['pathshead'] = 'Confirmer les chemins d\'accès';
|
||||
$string['pathsrodataroot'] = 'Le dossier de données n\'est pas accessible en écriture.';
|
||||
$string['pathsroparentdataroot'] = 'Le dossier parent ({$a->parent}) n\'est pas accessible en écriture. Le dossier de données ({$a->dataroot}) ne peut pas être créé par l\'installeur.';
|
||||
$string['pathssubadmindir'] = 'Quelques rares hébergeurs utilisent « /admin » comme URL spéciale pour l\'accès à un tableau de bord ou d\'autres fonctionnalités. Malheureusement ceci entre en conflit avec l\'emplacement standard des pages d\'administration de Moodle. Vous pouvez corriger ceci en renommant le dossier admin de votre installation Moodle et en plaçant le nouveau nom choisi dans ce champ. Par exemple, <em>moodleadmin</em>. Ceci modifiera tous les liens de l\'administration de Moodle.';
|
||||
$string['pathssubdataroot'] = 'Un emplacement est nécessaire pour permettre à Moodle d\'enregistrer les fichiers déposés. Ce dossier doit être accessible en lecture et <strong>en écriture</strong> par le serveur web (dénomé « nobody » ou « apache » ou encore « www »), mais ne doit pas être accessible directement via le web. L\'installeur va tenter de le créer s\'il n\'existe pas.';
|
||||
$string['pathssubdirroot'] = 'Le chemin d\'accès complet au dossier d\'installation de Moodle.';
|
||||
$string['pathssubwwwroot'] = 'L\'adresse web complète par laquelle on accédera à Moodle. Il n\'est pas possible d\'accéder à Moodle depuis plusieurs adresses web différentes. Si votre site web possède plusieurs adresses web publiques, vous devez définir des redirections permanentes pour toutes ces adresses, sauf celle qui est indiquée ici. Si votre site est accessible depuis un intranet et internet, indiquez ici l\'adresse publique et configurez le DNS de sorte que les utilisateurs de l\'intranet puissent également utiliser l\'adresse publique.';
|
||||
$string['pathssubdataroot'] = '<p>Un dossier dans lequel Moodle stockera tous les fichiers qui seront déposés par les utilisateurs.</p>
|
||||
<p>Ce dossier doit être accessible en lecture et en écriture par le serveur web (dénomé « nobody » ou « apache » ou encore « www-data »).</p>
|
||||
<p>Il ne doit pas être accessible directement via le web.</p>
|
||||
<p>Si ce dossier n\'existe pas encore, Moodle tentera de le créer au cours du processus d\'installation.</p>';
|
||||
$string['pathssubdirroot'] = '<p>Le chemin d\'accès complet au dossier contenant le code source de Moodle.</p>';
|
||||
$string['pathssubwwwroot'] = '<p>L\'adresse web complète par laquelle on accédera à Moodle, i.e. l\'adresse que les utilisateurs saisiront dans la barre d\'adresse de leur navigateur pour accéder à Moodle.</p>
|
||||
<p>Il n\'est pas possible d\'accéder à Moodle depuis plusieurs adresses web différentes. Si votre site web est accessible depuis plusieurs adresses, saisissez ici la plus simple d\'entre elles et définissez des redirections permanentes pour toutes les autres adresses.</p>
|
||||
<p>Si votre site est accessible depuis internet et un réseau interne (un intranet), indiquez ici l\'adresse publique.</p>
|
||||
<p>Si l\'adresse indiquée actuellement n\'est pas correcte, veuillez modifier l\'URL dans la barre d\'adresse de votre navigateur et recommencer l\'installation.</p>';
|
||||
$string['pathsunsecuredataroot'] = 'L\'emplacement du dossier de données n\'est pas sûr';
|
||||
$string['pathswrongadmindir'] = 'Le dossier d\'administration n\'existe pas';
|
||||
$string['phpextension'] = 'Extension PHP {$a}';
|
||||
|
||||
@@ -34,8 +34,10 @@ $string['admindirname'] = 'Cartella Admin';
|
||||
$string['availablelangs'] = 'Elenco delle lingue disponibili';
|
||||
$string['chooselanguagehead'] = 'Scegli la lingua';
|
||||
$string['chooselanguagesub'] = 'Scegli la lingua da usare durante l\'installazione. La lingua usata nel sito e dagli utenti potrà essere modificata in seguito.';
|
||||
$string['clialreadyconfigured'] = 'Il file config.php esiste già, per favore utilizza admin/cli/install_database.php se desideri installare questo sito.';
|
||||
$string['clialreadyinstalled'] = 'Il file config.php è già presente, se desideri aggiornare il sito per favore utilizza admin/cli/upgrade.php.';
|
||||
$string['clialreadyconfigured'] = 'Il file di configurazione config.php è già presente.
|
||||
Utilizzare admin/cli/install_database.php per installare Moodle.';
|
||||
$string['clialreadyinstalled'] = 'Il file config.php è già presente.
|
||||
Utilizzare admin/cli/install_database.php per aggiornare Moodle.';
|
||||
$string['cliinstallheader'] = 'Programma di installazione Moodle {$a} via linea di comando';
|
||||
$string['databasehost'] = 'Host database';
|
||||
$string['databasename'] = 'Nome database';
|
||||
@@ -68,11 +70,15 @@ $string['pathsrodataroot'] = 'Non è possibile scrivere nella Cartella dati.';
|
||||
$string['pathsroparentdataroot'] = 'La cartella genitore ({$a->parent}) non è scrivibile. Lo script di installazione non può creare la Cartella dati ({$a->dataroot}).';
|
||||
$string['pathssubadmindir'] = 'Alcuni web host utilizzano la cartella /admin come URL di accesso a pannelli di controllo od altre funzioni particolari. Tuttavia questo nome coincide con il nome della cartella che Moodle utilizza per i propri file di amministrazione. Per evitare conflitti, è possibile specificare un nome alternativo per la cartella Admin di Moodle. Ad esempio:<p><b>moodleadmin</b></p>
|
||||
Tutti i link che puntano ai file di amministrazione di Moodle terranno conto di questa variazione.';
|
||||
$string['pathssubdataroot'] = 'E\' necessario specificare una cartella dove Moodle inserirà i file caricati dagli utenti. Il web server (in genere \'nobody\' o \'apache\') DEVE avere i permessi di lettura e di scrittura su questa cartella. In aggiunta, la cartella dei dati NON DEVE essere direttamente accessibile via web. Se la Cartella dei dati non esiste, lo script di installazione tenterà di crearla.';
|
||||
$string['pathssubdirroot'] = 'Percorso assoluto della cartella di installazione di Moodle.';
|
||||
$string['pathssubwwwroot'] = 'Indirizzo web per accedere a Moodle. Non è possibile accedere alla stessa installazione Moodle usando più di un indirizzi web. Se il tuo sito usa più indirizzi web, devi configurare dei re-indirizzamenti permanenti per tutti gli altri indirizzi.
|
||||
Se il tuo sito è raggiungibile sia dalla Internet che dalla Intranet, allora usa l\'indirizzo Internet pubblico ed imposta il DNS in modo che anche gli utenti della Intranet possano accedere usando l\'indirizzo pubblico.
|
||||
Se l\'indirizzo è errato per favore correggilo nella barra degli indirizzi del browser per avviare nuovamente l\'installazione.';
|
||||
$string['pathssubdataroot'] = '<p>La cartella dove Moodle memorizzerà i file caricati dagli utenti.</p>
|
||||
<p>L\'utente con il qule gira il processo del web server (in genere \'www-data\' o \'apache\') deve avere i permessi di lettura e di scrittura su questa cartella.</p>
|
||||
<p>La cartella inoltre non deve essere direttamente accessibile via web.</p>
|
||||
<p>Qualora la cartella non esista, lo script di installazione tenterà di crearla.</p>';
|
||||
$string['pathssubdirroot'] = '<p>Percorso assoluto della cartella dove si trova il codice di Moodle.</p>';
|
||||
$string['pathssubwwwroot'] = '<p>L\'iIndirizzo web per raggiungere a Moodle, in altre parole l\'indirizzo che gli utenti inseriranno nella barra degli indirizzi del proprio browser per accedere a questa installazione.</p>
|
||||
<p>Non è possibile accedere alla stessa installazione Moodle usando più di un indirizzi web. Se il tuo sito usa più indirizzi web, devi configurare dei re-indirizzamenti permanenti per tutti gli altri indirizzi web.</p>
|
||||
<p>Se il tuo sito è raggiungibile sia dalla Internet sia dalla rete interna (a volte chiamata Intranet), allora usa l\'indirizzo Internet pubblico.</p>
|
||||
<p>Se l\'indirizzo utilizzato è errato, per favore correggilo nella barra degli indirizzi del browser e avvia nuovamente l\'installazione.</p>';
|
||||
$string['pathsunsecuredataroot'] = 'La posizione della Cartella dati non è sicura';
|
||||
$string['pathswrongadmindir'] = 'La cartella Admin non esiste';
|
||||
$string['phpextension'] = '{$a} estensioni PHP';
|
||||
|
||||
@@ -34,8 +34,8 @@ $string['admindirname'] = 'Adminディレクトリ';
|
||||
$string['availablelangs'] = '利用可能な言語パック';
|
||||
$string['chooselanguagehead'] = '言語を選択してください。';
|
||||
$string['chooselanguagesub'] = 'インストールのみに使用する言語を選択してください。この言語は、サイトのデフォルト言語としても使用されます。サイト言語は、後で変更することが可能です。';
|
||||
$string['clialreadyconfigured'] = 'ファイルconfig.phpは、すでに登録されています。このサイトをインストールしたい場合、admin/cli/install_database.phpを使用してください。';
|
||||
$string['clialreadyinstalled'] = 'ファイルconfig.phpは、すでに登録されています。あなたのサイトをアップグレードしたい場合、admin/cli/upgrade.phpを使用してください。';
|
||||
$string['clialreadyconfigured'] = '設定ファイルconfig.phpはすでに登録されています。このサイトをインストールしたい場合、admin/cli/install_database.phpを使用してください。';
|
||||
$string['clialreadyinstalled'] = '設定ファイルconfig.phpは、すでに登録されています。あなたのサイトをアップグレードしたい場合、admin/cli/upgrade.phpを使用してください。';
|
||||
$string['cliinstallheader'] = 'Moodle {$a} コマンドライン・インストールプログラム';
|
||||
$string['databasehost'] = 'データベースホスト :';
|
||||
$string['databasename'] = 'データベース名 :';
|
||||
@@ -68,7 +68,7 @@ $string['pathsrodataroot'] = 'datarootディレクトリに書き込み権があ
|
||||
$string['pathsroparentdataroot'] = '親ディレクトリ ({$a->parent}) に書き込み権がありません。データディレクトリ ({$a->dataroot}) は、インストーラーで作成できません。';
|
||||
$string['pathssubadmindir'] = '極わずかですが、あなたがコントロールパネル等にアクセスするため、特別なURLとして/adminを使用するウェブホストがあります。残念なことに、これはMoodle管理ページの標準的なローケーションと競合してしまいます。ここに新しいディレクトリ名を入力することで、あなたのMoodleのadminディレクトリを修正することができます。例えば、<em>moodleadmin</em>です。これにより、Moodleのadminリンクが修正されます。';
|
||||
$string['pathssubdataroot'] = 'あなたには、Moodleがファイルをアップロードすることのできる場所が必要です。このディレクトリは、ウェブサーバユーザ (通常「nobody」または「apache」) から読み込みおよび「書き込み」できる必要があります。しかし、ウェブからは直接アクセスできないようにしてください。データディレクトリがない場合、インストーラーは作成を試みます。';
|
||||
$string['pathssubdirroot'] = 'Moodleインストールに関するフルディレクトリパスです。';
|
||||
$string['pathssubdirroot'] = 'Moodleコードを含むディレクトリに関するフルパスです。';
|
||||
$string['pathssubwwwroot'] = 'Moodleにアクセスすることのできるフルウェブアドレスです。複数アドレスを使用して、Moodleにアクセスすることはできません。あなたのサイトに複数のパブリックアドレスがある場合、このアドレスを除く、すべてのアドレスにパーマネントリダイレクトを設定してください。あなたのサイトにイントラネットおよびインターネットからアクセスできる場合、ここにはパブリックアドレスを入力してください。また、イントラネットユーザもパブリックアドレスを利用できるよう、DNSを設定してください。アドレスが正しくない場合、あなたのブラウザのURLを変更して、異なる値でインストールを再開してください。';
|
||||
$string['pathsunsecuredataroot'] = 'dirrootロケーションが安全ではありません。';
|
||||
$string['pathswrongadmindir'] = 'adminディレクトリがありません。';
|
||||
|
||||
@@ -44,7 +44,8 @@ $string['dmlexceptiononinstall'] = 'p>Дошло је до грешке у ба
|
||||
$string['downloadedfilecheckfailed'] = 'Није успела провера преузете датотеке';
|
||||
$string['invalidmd5'] = 'Неисправна md5 датотека';
|
||||
$string['missingrequiredfield'] = 'Недостаје неко обавезно поље';
|
||||
$string['remotedownloaderror'] = 'Преузимање компоненте на Ваш сервер није успело. Проверите подешавања прокси серевера. PHP cURL екстензија се препоручује.<br /><br />Морате да преузмете <a href="{$a->url}">{$a->url}</a> датотеку ручно, копирате је у директоријум "{$a->dest}" на свом сереверу тамо је распакујете.';
|
||||
$string['remotedownloaderror'] = '<p>Преузимање ове компоненте на ваш сервер није успело. Проверите подешавања прокси сервера. PHP cURL екстензија се препоручује.</p>
|
||||
<p>Морате да преузмете <a href="{$a->url}">{$a->url}</a> датотеку ручно, копирате је у директоријум "{$a->dest}" на свом серверу и тамо је распакујете.</p>';
|
||||
$string['wrongdestpath'] = 'Погрешна одредишна путања';
|
||||
$string['wrongsourcebase'] = 'Погрешна база изворног URL-a';
|
||||
$string['wrongzipfilename'] = 'Погрешан назив архиве';
|
||||
|
||||
@@ -44,7 +44,8 @@ $string['dmlexceptiononinstall'] = '<p>Došlo je do greške u bazi podataka [{$a
|
||||
$string['downloadedfilecheckfailed'] = 'Nije uspela provera preuzete datoteke';
|
||||
$string['invalidmd5'] = 'Neispravna md5 datoteka';
|
||||
$string['missingrequiredfield'] = 'Nedostaje neko obavezno polje';
|
||||
$string['remotedownloaderror'] = 'Preuzimanje komponente na Vaš server nije uspelo. Proverite podešavanja proksi serevera. PHP cURL ekstenzija se preporučuje.<br /><br />Morate da preuzmete <a href="{$a->url}">{$a->url}</a> datoteku ručno, kopirate je u direktorijum "{$a->dest}" na svom sereveru tamo je raspakujete.';
|
||||
$string['remotedownloaderror'] = '<p>Preuzimanje ove komponente na vaš server nije uspelo. Proverite podešavanja proksi servera. PHP cURL ekstenzija se preporučuje.</p>
|
||||
<p>Morate da preuzmete <a href="{$a->url}">{$a->url}</a> datoteku ručno, kopirate je u direktorijum "{$a->dest}" na svom serveru i tamo je raspakujete.</p>';
|
||||
$string['wrongdestpath'] = 'Pogrešna odredišna putanja';
|
||||
$string['wrongsourcebase'] = 'Pogrešna baza izvornog URL-a';
|
||||
$string['wrongzipfilename'] = 'Pogrešan naziv arhive';
|
||||
|
||||
+21
-17
@@ -42,8 +42,8 @@ $string['availablelangs'] = 'Available language packs';
|
||||
$string['caution'] = 'Caution';
|
||||
$string['cliadminpassword'] = 'New admin user password';
|
||||
$string['cliadminusername'] = 'Admin account username';
|
||||
$string['clialreadyconfigured'] = 'File config.php already exists, please use admin/cli/install_database.php if you want to install this site.';
|
||||
$string['clialreadyinstalled'] = 'File config.php already exists, please use admin/cli/upgrade.php if you want to upgrade this site.';
|
||||
$string['clialreadyconfigured'] = 'The configuration file config.php already exists. Please use admin/cli/install_database.php to install Moodle for this site.';
|
||||
$string['clialreadyinstalled'] = 'The configuration file config.php already exists. Please use admin/cli/install_database.php to upgrade Moodle for this site.';
|
||||
$string['cliinstallfinished'] = 'Installation completed successfully.';
|
||||
$string['cliinstallheader'] = 'Moodle {$a} command line installation program';
|
||||
$string['climustagreelicense'] = 'In non interactive mode you must agree to license by specifying --agree-license option';
|
||||
@@ -178,12 +178,14 @@ $string['memorylimithelp'] = '<p>The PHP memory limit for your server is current
|
||||
$string['mssqlextensionisnotpresentinphp'] = 'PHP has not been properly configured with the MSSQL extension so that it can communicate with SQL*Server. Please check your php.ini file or recompile PHP.';
|
||||
$string['mysqliextensionisnotpresentinphp'] = 'PHP has not been properly configured with the MySQLi extension so that it can communicate with MySQL. Please check your php.ini file or recompile PHP. MySQLi extension is not available for PHP 4.';
|
||||
$string['nativemariadb'] = 'MariaDB (native/mariadb)';
|
||||
$string['nativemariadbhelp'] = 'Now you need to configure the database where most Moodle data will be stored.
|
||||
Database may be created if database user has needed permissions, username and password must already exist. Table prefix is optional.
|
||||
This driver is not compatible with legacy MyISAM engine.';
|
||||
$string['nativemariadbhelp'] = '<p>The database is where most of the Moodle settings and data are stored and must be configured here.</p>
|
||||
<p>The database name, username, and password are required fields; table prefix is optional.</p>
|
||||
<p>If the database currently does not exist, and the user you specify has permission, Moodle will attempt to create a new database with the correct permissions and settings.</p>
|
||||
<p>This driver is not compatible with legacy MyISAM engine.</p>';
|
||||
$string['nativemysqli'] = 'Improved MySQL (native/mysqli)';
|
||||
$string['nativemysqlihelp'] = 'Now you need to configure the database where most Moodle data will be stored.
|
||||
Database may be created if database user has needed permissions, username and password must already exist. Table prefix is optional.';
|
||||
$string['nativemysqlihelp'] = '<p>The database is where most of the Moodle settings and data are stored and must be configured here.</p>
|
||||
<p>The database name, username, and password are required fields; table prefix is optional.</p>
|
||||
<p>If the database currently does not exist, and the user you specify has permission, Moodle will attempt to create a new database with the correct permissions and settings.</p>';
|
||||
$string['nativemssql'] = 'SQL*Server FreeTDS (native/mssql)';
|
||||
$string['nativemssqlhelp'] = 'Now you need to configure the database where most Moodle data will be stored.
|
||||
This database must already have been created and a username and password created to access it. Table prefix is mandatory.';
|
||||
@@ -191,8 +193,9 @@ $string['nativeoci'] = 'Oracle (native/oci)';
|
||||
$string['nativeocihelp'] = 'Now you need to configure the database where most Moodle data will be stored.
|
||||
This database must already have been created and a username and password created to access it. Table prefix is mandatory.';
|
||||
$string['nativepgsql'] = 'PostgreSQL (native/pgsql)';
|
||||
$string['nativepgsqlhelp'] = 'Now you need to configure the database where most Moodle data will be stored.
|
||||
This database must already have been created and a username and password created to access it. Table prefix is mandatory.';
|
||||
$string['nativepgsqlhelp'] = '<p>The database is where most of the Moodle settings and data are stored and must be configured here.</p>
|
||||
<p>The database name, username, password and table prefix are required fields.</p>
|
||||
<p>The database must already exist and the user must have access to both read, and write to it.</p>';
|
||||
$string['nativesqlsrv'] = 'SQL*Server Microsoft (native/sqlsrv)';
|
||||
$string['nativesqlsrvhelp'] = 'Now you need to configure the database where most Moodle data will be stored.
|
||||
This database must already have been created and a username and password created to access it. Table prefix is mandatory.';
|
||||
@@ -208,14 +211,15 @@ $string['pathsroparentdataroot'] = 'Parent directory ({$a->parent}) is not write
|
||||
$string['pathssubadmindir'] = 'A very few webhosts use /admin as a special URL for you to access a
|
||||
control panel or something. Unfortunately this conflicts with the standard location for the Moodle admin pages. You can fix this by
|
||||
renaming the admin directory in your installation, and putting that new name here. For example: <em>moodleadmin</em>. This will fix admin links in Moodle.';
|
||||
$string['pathssubdataroot'] = 'You need a place where Moodle can save uploaded files. This directory should be readable AND WRITEABLE by the web server user
|
||||
(usually \'nobody\' or \'apache\'), but it must not be accessible directly via the web. The installer will try to create it if doesn\'t exist.';
|
||||
$string['pathssubdirroot'] = 'Full directory path to Moodle installation.';
|
||||
$string['pathssubwwwroot'] = 'Full web address where Moodle will be accessed.
|
||||
It\'s not possible to access Moodle using multiple addresses.
|
||||
If your site has multiple public addresses you must set up permanent redirects on all of them except this one.
|
||||
If your site is accessible both from Intranet and Internet use the public address here and set up DNS so that the Intranet users may use the public address too.
|
||||
If the address is not correct please change the URL in your browser to restart installation with a different value.';
|
||||
$string['pathssubdataroot'] = '<p>A directory where Moodle will store all file content uploaded by users.</p>
|
||||
<p>This directory should be both readable and writeable by the web server user (usually \'www-data\', \'nobody\', or \'apache\').</p>
|
||||
<p>It must not be directly accessible over the web.</p>
|
||||
<p>If the directory does not currently exist, the installation process will attempt to create it.</p>';
|
||||
$string['pathssubdirroot'] = '<p>The full path to the directory containing the Moodle code.</p>';
|
||||
$string['pathssubwwwroot'] = '<p>The full address where Moodle will be accessed i.e. the address that users will enter into the address bar of their browser to access Moodle.</p>
|
||||
<p>It is not possible to access Moodle using multiple addresses. If your site is accessible via multiple addresses then choose the easiest one and set up a permanent redirect for each of the other addresses.</p>
|
||||
<p>If your site is accessible both from the Internet, and from an internal network (sometimes called an Intranet), then use the public address here.</p>
|
||||
<p>If the current address is not correct, please change the URL in your browser\'s address bar and restart the installation.</p>';
|
||||
$string['pathsunsecuredataroot'] = 'Dataroot location is not secure';
|
||||
$string['pathswrongadmindir'] = 'Admin directory does not exist';
|
||||
$string['pgsqlextensionisnotpresentinphp'] = 'PHP has not been properly configured with the PGSQL extension so that it can communicate with PostgreSQL. Please check your php.ini file or recompile PHP.';
|
||||
|
||||
@@ -1674,6 +1674,7 @@ $string['sitefilesused'] = 'Site files used in this course';
|
||||
$string['sitehome'] = 'Site home';
|
||||
$string['sitelegacyfiles'] = 'Legacy site files';
|
||||
$string['sitelogs'] = 'Site logs';
|
||||
$string['sitemessage'] = 'Message users';
|
||||
$string['sitenews'] = 'Site news';
|
||||
$string['sitepages'] = 'Site pages';
|
||||
$string['sitepartlist'] = 'You do not have the required permissions to view the participants list';
|
||||
|
||||
+7
-8
@@ -2352,7 +2352,7 @@ class admin_setting_configexecutable extends admin_setting_configfile {
|
||||
$default = $this->get_defaultsetting();
|
||||
|
||||
if ($data) {
|
||||
if (file_exists($data) and is_executable($data)) {
|
||||
if (file_exists($data) and !is_dir($data) and is_executable($data)) {
|
||||
$executable = '<span class="pathok">✔</span>';
|
||||
} else {
|
||||
$executable = '<span class="patherror">✘</span>';
|
||||
@@ -8224,12 +8224,9 @@ class admin_setting_configstoredfile extends admin_setting {
|
||||
|
||||
// Let's not deal with validation here, this is for admins only.
|
||||
$current = $this->get_setting();
|
||||
if (empty($data)) {
|
||||
// Most probably applying default settings.
|
||||
if ($current === null) {
|
||||
return ($this->config_write($this->name, '') ? '' : get_string('errorsetting', 'admin'));
|
||||
}
|
||||
return '';
|
||||
if (empty($data) && $current === null) {
|
||||
// This will be the case when applying default settings (installation).
|
||||
return ($this->config_write($this->name, '') ? '' : get_string('errorsetting', 'admin'));
|
||||
} else if (!is_number($data)) {
|
||||
// Draft item id is expected here!
|
||||
return get_string('errorsetting', 'admin');
|
||||
@@ -8250,8 +8247,10 @@ class admin_setting_configstoredfile extends admin_setting {
|
||||
|
||||
if ($fs->file_exists($options['context']->id, $component, $this->filearea, $this->itemid, '/', '.')) {
|
||||
// Make sure the settings form was not open for more than 4 days and draft areas deleted in the meantime.
|
||||
// But we can safely ignore that if the destination area is empty, so that the user is not prompt
|
||||
// with an error because the draft area does not exist, as he did not use it.
|
||||
$usercontext = context_user::instance($USER->id);
|
||||
if (!$fs->file_exists($usercontext->id, 'user', 'draft', $data, '/', '.')) {
|
||||
if (!$fs->file_exists($usercontext->id, 'user', 'draft', $data, '/', '.') && $current !== '') {
|
||||
return get_string('errorsetting', 'admin');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -54,10 +54,15 @@ class behat_field_manager {
|
||||
try {
|
||||
// The DOM node.
|
||||
$fieldnode = $context->find_field($label);
|
||||
} catch (ElementNotFoundException $e) {
|
||||
} catch (ElementNotFoundException $fieldexception) {
|
||||
|
||||
// Looking for labels that points to filemanagers.
|
||||
$fieldnode = $context->find_filemanager($label);
|
||||
try {
|
||||
$fieldnode = $context->find_filemanager($label);
|
||||
} catch (ElementNotFoundException $filemanagerexception) {
|
||||
// We want the generic 'field' exception.
|
||||
throw $fieldexception;
|
||||
}
|
||||
}
|
||||
|
||||
// The behat field manager.
|
||||
|
||||
@@ -70,6 +70,7 @@ class behat_selectors {
|
||||
'table' => 'table',
|
||||
'field' => 'field',
|
||||
'fieldset' => 'fieldset',
|
||||
'text' => 'text',
|
||||
'css_element' => 'css_element',
|
||||
'xpath_element' => 'xpath_element'
|
||||
);
|
||||
@@ -83,7 +84,10 @@ class behat_selectors {
|
||||
* @var XPaths for moodle elements.
|
||||
*/
|
||||
protected static $moodleselectors = array(
|
||||
'dialogue' => <<<XPATH
|
||||
'text' => <<<XPATH
|
||||
//*[contains(., %locator%)][count(./descendant::*[contains(., %locator%)]) = 0]
|
||||
XPATH
|
||||
, 'dialogue' => <<<XPATH
|
||||
//div[contains(concat(' ', normalize-space(@class), ' '), ' moodle-dialogue ') and
|
||||
normalize-space(descendant::div[
|
||||
contains(concat(' ', normalize-space(@class), ' '), ' moodle-dialogue-hd ')
|
||||
|
||||
@@ -123,5 +123,33 @@ class course_module_updated extends base {
|
||||
throw new \coding_exception("Field other['name'] cannot be empty");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set data to create new event from course module.
|
||||
*
|
||||
* @param \cm_info|\stdClass $cm course module instance, as returned by {@link get_coursemodule_from_id}
|
||||
* or {@link get_coursemodule_from_instance}.
|
||||
* @param \context_module $modcontext module context instance
|
||||
* @return \core\event\base returns instance of new event
|
||||
* @since Moodle 2.6.3
|
||||
*/
|
||||
public static final function create_from_cm($cm, $modcontext = null) {
|
||||
// If not set, get the module context.
|
||||
if (empty($modcontext)) {
|
||||
$modcontext = \context_module::instance($cm->id);
|
||||
}
|
||||
|
||||
// Create event object for course module update action.
|
||||
$event = static::create(array(
|
||||
'context' => $modcontext,
|
||||
'objectid' => $cm->id,
|
||||
'other' => array(
|
||||
'modulename' => $cm->modname,
|
||||
'instanceid' => $cm->instance,
|
||||
'name' => $cm->name,
|
||||
)
|
||||
));
|
||||
return $event;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -62,6 +62,7 @@ class plagiarism extends base {
|
||||
* @return moodle_url
|
||||
*/
|
||||
public static function get_manage_url() {
|
||||
return new moodle_url('/admin/plagiarism.php');
|
||||
global $CFG;
|
||||
return !empty($CFG->enableplagiarism) ? new moodle_url('/admin/plagiarism.php') : null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -60,6 +60,11 @@ class qbehaviour extends base {
|
||||
public function is_uninstall_allowed() {
|
||||
global $DB;
|
||||
|
||||
if ($this->name === 'missing') {
|
||||
// qbehaviour_missing is used by the system. It cannot be uninstalled.
|
||||
return false;
|
||||
}
|
||||
|
||||
return !$DB->record_exists('question_attempts', array('behaviour' => $this->name));
|
||||
}
|
||||
|
||||
|
||||
@@ -68,6 +68,11 @@ class qtype extends base {
|
||||
public function is_uninstall_allowed() {
|
||||
global $DB;
|
||||
|
||||
if ($this->name === 'missingtype') {
|
||||
// qtype_missingtype is used by the system. It cannot be uninstalled.
|
||||
return false;
|
||||
}
|
||||
|
||||
return !$DB->record_exists('question', array('qtype' => $this->name));
|
||||
}
|
||||
|
||||
|
||||
@@ -2939,5 +2939,21 @@ function xmldb_main_upgrade($oldversion) {
|
||||
upgrade_main_savepoint(true, 2013111801.04);
|
||||
}
|
||||
|
||||
if ($oldversion < 2013111802.10) {
|
||||
// Fixing possible wrong MIME type for DigiDoc files.
|
||||
$extensions = array('%.bdoc', '%.cdoc', '%.ddoc');
|
||||
$select = $DB->sql_like('filename', '?', false);
|
||||
foreach ($extensions as $extension) {
|
||||
$DB->set_field_select(
|
||||
'files',
|
||||
'mimetype',
|
||||
'application/x-digidoc',
|
||||
$select,
|
||||
array($extension)
|
||||
);
|
||||
}
|
||||
upgrade_main_savepoint(true, 2013111802.10);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -289,7 +289,7 @@ $string['advlist:types'] = 'Types';
|
||||
$string['advlist:upper_alpha'] = 'Upper alpha';
|
||||
$string['advlist:upper_roman'] = 'Upper roman';
|
||||
$string['aria:rich_text_area'] = 'Rich text area';
|
||||
$string['autosave:restore_content'] = 'Restore auto-saved content';
|
||||
/* $string['autosave:restore_content'] = 'Restore auto-saved content.'; */
|
||||
$string['autosave:unload_msg'] = 'The changes you made will be lost if you navigate away from this page.';
|
||||
$string['autosave:warning_message'] = 'If you restore the saved content, you will lose all the content that is currently in the editor.
|
||||
|
||||
@@ -893,3 +893,4 @@ $string['advanced:copy_desc'] = 'Copy';
|
||||
$string['advanced:cut_desc'] = 'Cut';
|
||||
$string['advanced:paste_desc'] = 'Paste';
|
||||
$string['advanced:shortcuts_desc'] = 'Accessibility help';
|
||||
$string['autosave:restore_content'] = 'Restore auto-saved content';
|
||||
|
||||
@@ -27,7 +27,7 @@ defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
class tinymce_texteditor extends texteditor {
|
||||
/** @var string active version - this is the directory name where to find tinymce code */
|
||||
public $version = '3.5.8';
|
||||
public $version = '3.5.10';
|
||||
|
||||
/**
|
||||
* Is the current browser supported by this editor?
|
||||
|
||||
@@ -14,14 +14,10 @@ Upgrade procedure:
|
||||
3/ bump up main version.php
|
||||
4/ update ./thirdpartylibs.xml
|
||||
5/ execute cli/update_lang_files.php and review changes in lang/en/editor_tinymce.php
|
||||
6/ use search/replace to fix oversized zIndexes
|
||||
7/ add moodle-has-zindex to the class definition in createColorSplitButton() in tiny_mce_src.js and tiny_mce.js
|
||||
|
||||
|
||||
Changes:
|
||||
|
||||
1/ zIndex 300000 and 200000 changed to 5003 and 5002 - this prevents collision with YUI,
|
||||
see MDL-35771
|
||||
None
|
||||
|
||||
TODO:
|
||||
* create some new automated script that sends other languages from upstream into AMOS
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<location>tiny_mce</location>
|
||||
<name>TinyMCE</name>
|
||||
<license>LGPL</license>
|
||||
<version>3.5.8</version>
|
||||
<version>3.5.10</version>
|
||||
<licenseversion>2.1+</licenseversion>
|
||||
</library>
|
||||
</libraries>
|
||||
|
||||
+1
-1
@@ -20,7 +20,7 @@ free software--to make sure the software is free for all its users.
|
||||
This license, the Lesser General Public License, applies to some
|
||||
specially designated software packages--typically libraries--of the
|
||||
Free Software Foundation and other authors who decide to use it. You
|
||||
can use it too, but we suggest you first think carefully about whether
|
||||
can use it too, but we suggest you first think carefuly about whether
|
||||
this license or the ordinary General Public License is the better
|
||||
strategy to use in any particular case, based on the explanations below.
|
||||
|
||||
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user