Compare commits

..

31 Commits

Author SHA1 Message Date
Eloy Lafuente (stronk7) 19a44918b4 Moodle release 2.6.7 2015-01-10 13:12:36 +01:00
Eloy Lafuente (stronk7) 31f4669230 Merge branch 'install_26_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_26_STABLE 2015-01-10 13:12:30 +01:00
AMOS bot 5766dfa7fa Automatically generated installer lang files 2015-01-09 00:04:20 +08:00
Zachary Durber 531492a32c MDL-48546 filters: Split on all tags for multimedia filter check. 2015-01-07 18:57:24 +01:00
Eloy Lafuente (stronk7) 505f67520f Merge branch 'MDL-48748-26-enfix' of git://github.com/mudrd8mz/moodle into MOODLE_26_STABLE 2015-01-07 17:24:48 +01:00
AMOS bot 4657fbdfde Automatically generated installer lang files 2015-01-08 00:04:08 +08:00
Zachary Durber d11969e777 MDL-48546 filters: ReDoS protection for multimedia links. 2015-01-07 12:29:13 +08:00
Helen Foster 03ccfe6a87 MDL-48748 lang: Fix the regression from the last en_fix merge
See https://moodle.org/mod/forum/discuss.php?d=277584#p1192876
2015-01-06 22:36:27 +01:00
Simey Lameze 371d58d70d MDL-47964 auth_shibboleth: Fix DOS on the shibboleth logout 2015-01-06 11:05:50 +00:00
Simey Lameze ae4a17183a MDL-48017 core_calendar: add context validation to get_calendar_events 2015-01-05 14:13:51 +00:00
Andrew Nicols e83c756f84 MDL-48106 mod_glossary: Add missing sesskey checks 2015-01-05 13:38:12 +00:00
David Monllao c9fa67f7cb MDL-48329 core_message: Checking that messaging system is enabled 2015-01-05 13:14:12 +00:00
Simey Lameze b270bb0d75 MDL-48368 course: fix xss on course request pending page 2015-01-05 12:59:02 +00:00
Jetha Chan 52555c3698 MDL-47920 mod_lti: add capability checks, http headers 2015-01-05 12:50:12 +00:00
AMOS bot 80e30241d2 Automatically generated installer lang files 2014-12-28 00:04:20 +08:00
AMOS bot 11e832a4d1 Automatically generated installer lang files 2014-12-24 00:04:20 +08:00
AMOS bot 0f4b4040fe Automatically generated installer lang files 2014-12-22 00:04:16 +08:00
AMOS bot 9f1e48a5a4 Automatically generated installer lang files 2014-12-20 00:04:18 +08:00
AMOS bot 6592c0289b Automatically generated installer lang files 2014-12-13 00:04:10 +08:00
AMOS bot cd21fd45fd Automatically generated installer lang files 2014-12-11 00:04:11 +08:00
AMOS bot 806361d757 Automatically generated installer lang files 2014-12-06 00:03:59 +08:00
AMOS bot 1bf281664e Automatically generated installer lang files 2014-12-04 00:04:41 +08:00
AMOS bot 634749bb6d Automatically generated installer lang files 2014-11-25 00:04:17 +08:00
Dan Poltawski 25b43f7af5 weekly release 2.6.6+ 2014-11-20 18:05:24 +00:00
Dan Poltawski 08452fad7f NOBUG: Fixed file access permissions 2014-11-20 18:05:24 +00:00
AMOS bot a2b62eebcb Merge branch 'MOODLE_26_STABLE' into install_26_STABLE 2014-11-21 00:05:49 +08:00
AMOS bot 2002c90ff2 Automatically generated installer lang files 2014-11-19 00:05:47 +08:00
Dan Poltawski b6e289615f Merge branch 'MDL-48042_26' of git://github.com/ppichet/moodle into MOODLE_26_STABLE 2014-11-18 11:52:09 +00:00
Pierre Pichet 26d67aecdf MDL-48042 Questions: Reset Calculated qtype comments on datasets
Reset back the modifications of Calculated qtype comments on datasets
    done by MDL-47224

Signed-off-by: Pierre Pichet <pichet.pierre@uqam.ca>
2014-11-15 17:02:59 -05:00
John Okely b69fd9df9e MDL-47700 Grades: Fix incorrect config for overview report showrank 2014-11-13 14:48:53 +08:00
Tim Lock 74acdec205 MDL-47700 Grades: Sitewide overview report isn't visible in some cases
Showing a overview report rank sitewide isn't visible to student in same cases
2014-11-13 14:48:53 +08:00
26 changed files with 317 additions and 77 deletions
+1 -1
View File
@@ -79,7 +79,7 @@ $string['auth_ldap_passtype'] = 'Specify the format of new or changed passwords
$string['auth_ldap_passtype_key'] = 'Password format';
$string['auth_ldap_passwdexpire_settings'] = 'LDAP password expiration settings.';
$string['auth_ldap_preventpassindb'] = 'Select yes to prevent passwords from being stored in Moodle\'s DB.';
$string['auth_ldap_preventpassindb_key'] = 'Cache passwords';
$string['auth_ldap_preventpassindb_key'] = 'Don\'t cache passwords';
$string['auth_ldap_search_sub'] = 'Search users from subcontexts.';
$string['auth_ldap_search_sub_key'] = 'Search subcontexts';
$string['auth_ldap_server_settings'] = 'LDAP server settings';
+18 -24
View File
@@ -8,6 +8,8 @@ require_once("../../config.php");
require_once($CFG->dirroot."/auth/shibboleth/auth.php");
$action = optional_param('action', '', PARAM_ALPHA);
$redirect = optional_param('return', '', PARAM_URL);
// Find out whether host supports https
$protocol = 'http://';
@@ -15,38 +17,32 @@ if ( isset($_SERVER['HTTPS']) && !empty($_SERVER['HTTPS']) && $_SERVER['HTTPS']
$protocol = 'https://';
}
// Front channel logout
if (
isset($_GET['return'])
&& isset($_GET['action'])
&& $_GET['action'] == 'logout'
){
// Logout out user from application
// E.g. destroy application session/cookie etc
require_logout();
// Finally, send user to the return URL
redirect($_GET['return']);
// If the shibboleth plugin is not enable, throw an exception.
if (!is_enabled_auth('shibboleth')) {
throw new moodle_exception(get_string('pluginnotenabled', 'auth', 'shibboleth'));
}
// Back channel logout
elseif (!empty($HTTP_RAW_POST_DATA)) {
// Front channel logout.
if ($action == 'logout' && !empty($redirect)) {
// Requires PHP 5
if ($USER->auth == 'shibboleth') {
// Logout out user from application.
require_logout();
// Finally, send user to the return URL.
redirect($redirect);
}
} else if (!empty($HTTP_RAW_POST_DATA)) {
// Set SOAP header
// Back channel logout.
// Set SOAP header.
$server = new SoapServer($protocol.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'/LogoutNotification.wsdl');
$server->addFunction("LogoutNotification");
$server->handle();
}
// Return WSDL
else {
} else {
// Return WSDL.
header('Content-Type: text/xml');
echo <<<WSDL
@@ -119,9 +115,7 @@ For more information see:
</definitions>
WSDL;
exit;
}
/******************************************************************************/
function LogoutNotification($SessionID){
+11 -5
View File
@@ -173,13 +173,19 @@ class core_calendar_external extends external_api {
// Let us findout courses that we can return events from.
if (!$hassystemcap) {
$courses = enrol_get_my_courses();
$courses = array_keys($courses);
foreach ($params['events']['courseids'] as $id) {
if (in_array($id, $courses)) {
try {
$context = context_course::instance($id);
self::validate_context($context);
$funcparam['courses'][] = $id;
} else {
$warnings[] = array('item' => $id, 'warningcode' => 'nopermissions', 'message' => 'you do not have permissions to access this course');
} catch (Exception $e) {
$warnings[] = array(
'item' => 'course',
'itemid' => $id,
'warningcode' => 'nopermissions',
'message' => 'No access rights in course context '.$e->getMessage().$e->getTraceAsString()
);
continue;
}
}
} else {
+1 -1
View File
@@ -116,7 +116,7 @@ if (empty($pending)) {
$row[] = format_string($course->shortname);
$row[] = format_string($course->fullname);
$row[] = fullname($course->get_requester());
$row[] = $course->summary;
$row[] = format_text($course->summary, $course->summaryformat);
$row[] = $category->get_formatted_name();
$row[] = format_string($course->reason);
$row[] = $OUTPUT->single_button(new moodle_url($baseurl, array('approve' => $course->id, 'sesskey' => sesskey())), get_string('approve'), 'get') .
+42 -8
View File
@@ -68,18 +68,52 @@ class filter_mediaplugin extends moodle_text_filter {
// Check SWF permissions.
$this->trusted = !empty($options['noclean']) or !empty($CFG->allowobjectembed);
// Handle all links that contain any 'embeddable' marker text (it could
// do all links, but the embeddable markers thing should make it faster
// by meaning for most links it doesn't drop into PHP code).
$newtext = preg_replace_callback($re = '~<a\s[^>]*href="([^"]*(?:' .
$this->embedmarkers . ')[^"]*)"[^>]*>([^>]*)</a>~is',
array($this, 'callback'), $text);
// Looking for tags.
$matches = preg_split('/(<[^>]*>)/i', $text, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
if (empty($newtext) or $newtext === $text) {
// error or not filtered
if (!$matches) {
return $text;
}
// Regex to find media extensions in an <a> tag.
$re = '~<a\s[^>]*href="([^"]*(?:' . $this->embedmarkers . ')[^"]*)"[^>]*>([^>]*)</a>~is';
$newtext = '';
$validtag = '';
$sizeofmatches = count($matches);
// We iterate through the given string to find valid <a> tags
// and build them so that the callback function can check it for
// embedded content. Then we rebuild the string.
foreach ($matches as $idx => $tag) {
if (preg_match('|</a>|', $tag) && !empty($validtag)) {
$validtag .= $tag;
// Given we now have a valid <a> tag to process it's time for
// ReDoS protection. Stop processing if a word is too large.
if (strlen($validtag) < 4096) {
$processed = preg_replace_callback($re, array($this, 'callback'), $validtag);
}
// Rebuilding the string with our new processed text.
$newtext .= !empty($processed) ? $processed : $validtag;
// Wipe it so we can catch any more instances to filter.
$validtag = '';
$processed = '';
} else if (preg_match('/<a\s[^>]*/', $tag) && $sizeofmatches > 1) {
// Looking for a starting <a> tag.
$validtag = $tag;
} else {
// If we have a validtag add to that to process later,
// else add straight onto our newtext string.
if (!empty($validtag)) {
$validtag .= $tag;
} else {
$newtext .= $tag;
}
}
}
// Return the same string except processed by the above.
return $newtext;
}
+37 -2
View File
@@ -51,6 +51,15 @@ class filter_mediaplugin_testcase extends advanced_testcase {
$filterplugin = new filter_mediaplugin(null, array());
$longurl = '<a href="http://moodle/.mp4">my test file</a>';
$longhref = '';
do {
$longhref .= 'a';
} while(strlen($longhref) + strlen($longurl) < 4095);
$longurl = '<a href="http://moodle/' . $longhref . '.mp4">my test file</a>';
$validtexts = array (
'<a href="http://moodle.org/testfile/test.mp3">test mp3</a>',
'<a href="http://moodle.org/testfile/test.ogg">test ogg</a>',
@@ -76,7 +85,9 @@ class filter_mediaplugin_testcase extends advanced_testcase {
href="http://moodle.org/testfile/test.avi">test mp3
</a>',
'<a href="http://www.youtube.com/watch?v=JghQgA2HMX8?d=200x200" >youtube\'s</a>'
'<a href="http://www.youtube.com/watch?v=JghQgA2HMX8?d=200x200" >youtube\'s</a>',
// Test a long URL under 4096 characters.
$longurl
);
//test for valid link
@@ -86,6 +97,18 @@ class filter_mediaplugin_testcase extends advanced_testcase {
$this->assertNotEquals($text, $filter, $msg);
}
$insertpoint = strrpos($longurl, 'http://');
$longurl = substr_replace($longurl, 'http://pushover4096chars', $insertpoint, 0);
$originalurl = '<p>Some text.</p><pre style="color: rgb(0, 0, 0); line-height: normal;">' .
'<a href="https://www.youtube.com/watch?v=uUhWl9Lm3OM">Valid link</a></pre><pre style="color: rgb(0, 0, 0); line-height: normal;">';
$paddedurl = str_pad($originalurl, 6000, 'z');
$validpaddedurl = '<p>Some text.</p><pre style="color: rgb(0, 0, 0); line-height: normal;"><span class="mediaplugin mediaplugin_youtube">
<iframe title="Valid link" width="400" height="300"
src="https://www.youtube.com/embed/uUhWl9Lm3OM?rel=0&wmode=transparent" frameborder="0" allowfullscreen="1"></iframe>
</span></pre><pre style="color: rgb(0, 0, 0); line-height: normal;">';
$validpaddedurl = str_pad($validpaddedurl, 6000 + (strlen($validpaddedurl) - strlen($originalurl)), 'z');
$invalidtexts = array(
'<a class="_blanktarget">href="http://moodle.org/testfile/test.mp3"</a>',
'<a>test test</a>',
@@ -101,7 +124,9 @@ class filter_mediaplugin_testcase extends advanced_testcase {
'<href="http://moodle.org/testfile/test.avi">test</a>',
'<abbr href="http://moodle.org/testfile/test.mp3">test mp3</abbr>',
'<ahref="http://moodle.org/testfile/test.mp3">test mp3</a>',
'<aclass="content" href="http://moodle.org/testfile/test.mp3">test mp3</a>'
'<aclass="content" href="http://moodle.org/testfile/test.mp3">test mp3</a>',
// Test a long URL over 4096 characters.
$longurl
);
//test for invalid link
@@ -110,5 +135,15 @@ class filter_mediaplugin_testcase extends advanced_testcase {
$filter = $filterplugin->filter($text);
$this->assertEquals($text, $filter, $msg);
}
// Valid mediaurl followed by a longurl.
$precededlongurl = '<a href="http://moodle.org/testfile/test.mp3">test.mp3</a>'. $longurl;
$filter = $filterplugin->filter($precededlongurl);
$this->assertEquals(1, substr_count($filter, 'M.util.add_audio_player'));
$this->assertContains($longurl, $filter);
// Testing for cases where: to be filtered content has 6+ text afterwards.
$filter = $filterplugin->filter($paddedurl);
$this->assertEquals($validpaddedurl, $filter, $msg);
}
}
Regular → Executable
View File
+1 -1
View File
@@ -249,7 +249,7 @@ function grade_report_overview_settings_definition(&$mform) {
0 => get_string('hide'),
1 => get_string('show'));
if (empty($CFG->grade_overviewreport_showrank)) {
if (empty($CFG->grade_report_overview_showrank)) {
$options[-1] = get_string('defaultprev', 'grades', $options[0]);
} else {
$options[-1] = get_string('defaultprev', 'grades', $options[1]);
+2 -1
View File
@@ -26,7 +26,8 @@ defined('MOODLE_INTERNAL') || die;
if ($ADMIN->fulltree) {
$settings->add(new admin_setting_configcheckbox('grade_report_overview_showrank', get_string('showrank', 'grades'), get_string('showrank_help', 'grades'), 0, PARAM_INT));
$settings->add(new admin_setting_configcheckbox('grade_report_overview_showrank', get_string('showrank', 'grades'),
get_string('showrank_help', 'grades'), 0));
$settings->add(new admin_setting_configselect('grade_report_overview_showtotalsifcontainhidden', get_string('hidetotalifhiddenitems', 'grades'),
get_string('hidetotalifhiddenitems_help', 'grades'), GRADE_REPORT_HIDE_TOTAL_IF_CONTAINS_HIDDEN,
+1
View File
@@ -30,5 +30,6 @@
defined('MOODLE_INTERNAL') || die();
$string['clitypevalue'] = 'δώσε μία τιμή';
$string['environmentrequireinstall'] = 'απαιτείται να εγκατασταθεί/ ενεργοποιηθεί';
$string['environmentrequireversion'] = 'απαιτείται η έκδοση {$a->needed} ενώ εσείς έχετε την {$a->current}';
+36
View File
@@ -0,0 +1,36 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Automatically generated strings for Moodle installer
*
* Do not edit this file manually! It contains just a subset of strings
* needed during the very first steps of installation. This file was
* generated automatically by export-installer.php (which is part of AMOS
* {@link http://docs.moodle.org/dev/Languages/AMOS}) using the
* list of strings defined in /install/stringnames.txt.
*
* @package installer
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
$string['language'] = 'Lingvo';
$string['next'] = 'Poste';
$string['previous'] = 'Antaŭa';
$string['reload'] = 'Reŝarĝi';
+2 -1
View File
@@ -44,7 +44,8 @@ $string['dmlexceptiononinstall'] = '<p>Se ha producido un error de base de datos
$string['downloadedfilecheckfailed'] = 'Ha fallado la comprobación del archivo descargado';
$string['invalidmd5'] = 'La variable de verificación MD5 es incorrecta no es valida - trate nuevamente';
$string['missingrequiredfield'] = 'Falta algún campo necesario';
$string['remotedownloaderror'] = 'Falló la descarga del componente a su servidor. Se recomienda verificar los ajustes del proxy, extensión PHP cURL.<br /><br />Debe descargar el<a href="{$a->url}">{$a->url}</a> archivo manualmente, copiarlo en "{$a->dest}" en su servidor y descomprimirlo allí.';
$string['remotedownloaderror'] = '<p>Falló la descarga del componente a su servidor. Se recomienda verificar los ajustes del proxy, extensión PHP cURL.</p>
<p>Debe descargar el <a href="{$a->url}">{$a->url}</a> archivo manualmente, copiarlo en "{$a->dest}" en su servidor y descomprimirlo allí.</p>';
$string['wrongdestpath'] = 'Ruta de destino errónea.';
$string['wrongsourcebase'] = 'Base de fuente de URL errónea.';
$string['wrongzipfilename'] = 'Nombre de archivo ZIP erróneo.';
+4 -4
View File
@@ -34,8 +34,8 @@ $string['admindirname'] = 'Directorio Admin';
$string['availablelangs'] = 'Lista 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, utilice admin/cli/upgrade.php si desea actualizar su sitio web.';
$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, utilice admin/cli/install_database.php para instalar Moodle en este sitio.';
$string['clialreadyinstalled'] = 'El archivo de configuración config.php ya existe. Por favor, utilice admin/cli/install_database.php para actualizar el Moodle en este sitio.';
$string['cliinstallheader'] = 'Programa de instalación Moodle de línea de comando {$a}';
$string['databasehost'] = 'Servidor de la base de datos';
$string['databasename'] = 'Nombre de la base de datos';
@@ -43,13 +43,13 @@ $string['databasetypehead'] = 'Seleccione el controlador de la base de datos';
$string['dataroot'] = 'Directorio de Datos';
$string['datarootpermission'] = 'Permiso directorios de datos';
$string['dbprefix'] = 'Prefijo de tablas';
$string['dirroot'] = 'Directorio Moodle';
$string['dirroot'] = 'Directorio de Moodle';
$string['environmenthead'] = 'Comprobando su entorno';
$string['environmentsub2'] = 'Cada versión de Moodle tiene algún requisito mínimo de la versión de PHP y un número obligatorio de extensiones de PHP.
Una comprobación del entorno completo se realiza antes de cada instalación y actualización. Por favor, póngase en contacto con el administrador del servidor si no sabes cómo instalar la nueva versión o habilitar las extensiones PHP.';
$string['errorsinenvironment'] = 'La comprobación del entorno fallo!';
$string['installation'] = 'Instalación';
$string['langdownloaderror'] = 'El idioma "{$a}" no pudo ser instalado. El proceso de instalación continuará en inglés.';
$string['langdownloaderror'] = 'El idioma "{$a}" no pudo ser descargado. El proceso de instalación continuará en Inglés.';
$string['memorylimithelp'] = '<p>El límite de memoria PHP en su servidor es actualmente {$a}.</p>
<p>Esto puede ocasionar que Moodle tenga problemas de memoria más adelante, especialmente si usted tiene activados muchos módulos y/o muchos usuarios.</p>
+34
View File
@@ -0,0 +1,34 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Automatically generated strings for Moodle installer
*
* Do not edit this file manually! It contains just a subset of strings
* needed during the very first steps of installation. This file was
* generated automatically by export-installer.php (which is part of AMOS
* {@link http://docs.moodle.org/dev/Languages/AMOS}) using the
* list of strings defined in /install/stringnames.txt.
*
* @package installer
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
$string['thisdirection'] = 'ltr';
$string['thislanguage'] = 'Ebon';
+8
View File
@@ -30,5 +30,13 @@
defined('MOODLE_INTERNAL') || die();
$string['clianswerno'] = 'n';
$string['cliansweryes'] = 'y';
$string['cliincorrectvalueerror'] = 'Грешка, погрешна вредност "{$a->value}"
за "{$a->option}"';
$string['cliincorrectvalueretry'] = 'Неточни вредност, ве молиме обидете се повторно';
$string['clitypevalue'] = 'впишете вредност';
$string['clitypevaluedefault'] = 'впишете вредност, притиснете Enter за да го користите стандардната вредност ({$a})';
$string['cliyesnoprompt'] = 'впишете y (значи да) или n (значи не)';
$string['environmentrequireinstall'] = 'потребно е да се инсталира/овозможи';
$string['environmentrequireversion'] = 'верзијата {$a->needed} е потребна, а вие извршувате {$a->current}';
+34
View File
@@ -0,0 +1,34 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Automatically generated strings for Moodle installer
*
* Do not edit this file manually! It contains just a subset of strings
* needed during the very first steps of installation. This file was
* generated automatically by export-installer.php (which is part of AMOS
* {@link http://docs.moodle.org/dev/Languages/AMOS}) using the
* list of strings defined in /install/stringnames.txt.
*
* @package installer
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
$string['thisdirection'] = 'ltr';
$string['thislanguage'] = 'پښتو';
+1 -1
View File
@@ -31,7 +31,7 @@
defined('MOODLE_INTERNAL') || die();
$string['admindirname'] = 'Pasta de administração';
$string['availablelangs'] = 'Pacotes de idiomas disponíveis';
$string['availablelangs'] = 'Pacotes linguísticos disponíveis';
$string['chooselanguagehead'] = 'Selecione um idioma';
$string['chooselanguagesub'] = 'Selecione o idioma a utilizar durante a instalação. Poderá depois selecionar um outro idioma para o site e para os utilizadores.';
$string['clialreadyconfigured'] = 'O ficheiro config.php já existe, use admin/cli/install_database.php para instalar o Moodle para este site.';
+3 -3
View File
@@ -58,13 +58,13 @@ $string['memorylimithelp'] = '<p>Сейчас ограничение памят
<p>Мы рекомендуем, если возможно, установить в PHP более высокое ограничение памяти, например 40M.
Это можно попробовать сделать следующими способами:</p>
<ol>
<li>Если есть возможность, перекомпилируете PHP с ключом <i>--enable-memory-limit</i>.
В этом случае Moodle сможет самостоятельна установить ограничение памяти.</li>
<li>Если есть возможность, перекомпилируйте PHP с ключом <i>--enable-memory-limit</i>.
В этом случае Moodle сможет самостоятельно установить ограничение памяти.</li>
<li>Если у Вас есть доступ к файлу php.ini, Вы можете изменить параметр <b>memory_limit</b>
на что-нибудь типа 40M. Если доступа у Вас нет, может быть у Вас есть возможность попросить администратора сделать это.</li>
<li>На некоторых серверах PHP можно создать в каталоге Moodle файл .htaccess содержащий следующую строку:
<blockquote><div>php_value memory_limit 40M</div></blockquote>
<p>Тем не менее, на некоторых серверах из-за этого могут перестать работать <b>все</b> страницы PHP (Вы увидите ошибки на страницах). В этом случае файл придется удалить файл .htaccess.</p></li>
<p>Тем не менее, на некоторых серверах из-за этого могут перестать работать <b>все</b> страницы PHP (Вы увидите ошибки на страницах). В этом случае Вам придется удалить файл .htaccess.</p></li>
</ol>';
$string['paths'] = 'Пути';
$string['pathserrcreatedataroot'] = 'Программа установки не может создать каталог данных ({$a->dataroot}).';
+8
View File
@@ -30,5 +30,13 @@
defined('MOODLE_INTERNAL') || die();
$string['cliincorrectvalueerror'] = 'பிழை இருக்கிறது. இந்த "{$a->option}"-க்கு இந்த "{$a->value}" தவறான மதிப்பு.';
$string['cliincorrectvalueretry'] = 'தவறான மதிப்பு. தயவு செய்து மீண்டும் முயற்சிக்கவும்';
$string['clitypevalue'] = 'மதிப்பை உள்ளீடு செய்யவும்';
$string['clitypevaluedefault'] = 'மதிப்பை உள்ளீடு செய்யவும், கொடா மதிப்பான ({$a})-ஐ பயன்படுத்த Enter-ஐ அழுத்தவும்';
$string['cliunknowoption'] = 'அங்கீகரிக்கப்படாத விருப்பங்கள்:
{$a}
தயவு செய்து --help தேர்வை பயன்படுத்தவும்.';
$string['cliyesnoprompt'] = 'தட்டச்சு செய்யவும். ஆம் என்றால் y (அல்லது) இல்லை என்றால் n';
$string['environmentrequireinstall'] = 'is required to be installed/enabled.';
$string['environmentrequireversion'] = 'version {$a->needed} is required and you are running {$a->current}';
+11 -7
View File
@@ -35,7 +35,7 @@ $string['availablelangs'] = 'Kullanılabilir dil paketleri';
$string['chooselanguagehead'] = 'Bir dil seçin';
$string['chooselanguagesub'] = 'Lütfen, SADECE kurulum için bir dil seçin. Site ve kullanıcı dillerini sonraki ekranda seçebilirsiniz.';
$string['clialreadyconfigured'] = 'config.php halihazırda mevcut, lütfen eğer bu siteyi yüklemek istiyorsanız şu dizini kullanın: admin/cli/install_database.php';
$string['clialreadyinstalled'] = 'Config.php zaten var. Sitenizi güncellemek istiyorsanız bu adresi kullanın: admin/cli/upgrade.php';
$string['clialreadyinstalled'] = 'Config.php zaten var. Sitenizi güncellemek istiyorsanız bu adresi kullanın: admin/cli/install_database.php';
$string['cliinstallheader'] = 'Moodle {$a} komut satırı kurulum programı';
$string['databasehost'] = 'Veritabanı sunucusu';
$string['databasename'] = 'Veritabanı adı';
@@ -78,12 +78,16 @@ $string['pathshead'] = 'Yolları doğrulayın';
$string['pathsrodataroot'] = 'Veri yolu yazılabilir değil.';
$string['pathsroparentdataroot'] = 'Ana klasör ({$a->parent}) yazılabilir değil. Veri Klasörü ({$a->dataroot}) kurulum tarafından oluşturulamıyor.';
$string['pathssubadmindir'] = 'Pek az web sunucusu /admin adresini kontrol paneline yada benzeri birşeye erişmek için kullanır. Ne yazık ki bu Moodle admin sayfalarının standart konumuyla bir karışıklık yaratır. Bu durumu düzeltmek için kurulumunuzdaki admin dizinini yeniden isimlendirip buraya yeni ismi yazınız. Örneğin: <em>moodleadmin</em>. Bu Moodle\'daki admin bağlantısını düzeltecektir.';
$string['pathssubdataroot'] = 'Moodle\'ın yüklenen dosyaları kayıt etmesi için bir yere ihtiyacınız var. Bu dizin/klasör web sunucusunun kullanıcı hesabı tarafından okunabilir ve yazılabilir olmalıdır. Bu okuma, yazma izinlerini klasöre vermelisiniz. Fakat bu klasör aynı zamanda web üzerinden direk erişilebilir olmamalıdır. Yükleyici eğer klasör yok ise oluşturmayı deneyecektir.';
$string['pathssubdirroot'] = 'Moodle kurulumu için tam klasör yolu. Sadece sembolik linkleri kullanmaya gereksinim duyuyorsanız değiştirin.';
$string['pathssubwwwroot'] = 'Moodle\'a erişlecek tam web adresi. Moodle\'ın birden çok adres kullanması mümkün değildir.
Eğer siteniz birden fazla adrese sahip ise bu adres harici diğerlerinin yönlendirme ayarlarını yapılandırın.
Eğer siteniz Intranet ve İnternet üzerinden erişilebilirse burada genel bir adres kullanın ve DNS\'iniz ayarlayın. Bu şekilde Intranet kullanıcları da genel adresi kullanabilirler.
Eğer adres doğru değilse lütfen kurulumu tekrar başlatmak için tarayıcınızdaki URL\'i değiştirin.';
$string['pathssubdataroot'] = '<p>Moodle\'ın yüklenen dosyaları kayıt etmesi için bir yere ihtiyacınız var. </p>
<p>Bu dizin/klasör web sunucusunun kullanıcı hesabı tarafından (genellikle \' \'www-data\', \'nobody\', ya da \'apache\') okunabilir ve yazılabilir olmalıdır. </p>
<p>Bu okuma, yazma izinlerini klasöre vermelisiniz. </p>
<p>Fakat bu klasör aynı zamanda web üzerinden direk erişilebilir olmamalıdır. </p>
<p>Yükleyici eğer klasör yok ise oluşturmayı deneyecektir.</p>';
$string['pathssubdirroot'] = '<p>Moodle kurulumu için tam klasör yolu.</p >';
$string['pathssubwwwroot'] = '<p>Moodle\'a erişilecek tam web adresi. Moodle\'ın birden çok adres kullanması mümkün değildir. </p>
<p>Eğer siteniz birden fazla adrese sahip ise bu adres harici diğerlerinin yönlendirme ayarlarını yapılandırın.</p>
<p>Eğer siteniz Intranet ve İnternet üzerinden erişilebilirse burada genel bir adres kullanın ve DNS\'iniz ayarlayın. Bu şekilde Intranet kullanıcıları da genel adresi kullanabilirler.</p>
<p>IEğer adres doğru değilse lütfen kurulumu tekrar başlatmak için tarayıcınızdaki URL\'i değiştirin.</p>';
$string['pathsunsecuredataroot'] = 'Veri yolu güvenli değil';
$string['pathswrongadmindir'] = 'Yönetici klasörü yok';
$string['phpextension'] = '{$a} PHP eklentisi';
+40
View File
@@ -210,6 +210,13 @@ class core_message_external extends external_api {
* @since 2.5
*/
public static function create_contacts($userids) {
global $CFG;
// Check if messaging is enabled.
if (!$CFG->messaging) {
throw new moodle_exception('disabled', 'message');
}
$params = array('userids' => $userids);
$params = self::validate_parameters(self::create_contacts_parameters(), $params);
@@ -262,6 +269,13 @@ class core_message_external extends external_api {
* @since 2.5
*/
public static function delete_contacts($userids) {
global $CFG;
// Check if messaging is enabled.
if (!$CFG->messaging) {
throw new moodle_exception('disabled', 'message');
}
$params = array('userids' => $userids);
$params = self::validate_parameters(self::delete_contacts_parameters(), $params);
@@ -307,6 +321,13 @@ class core_message_external extends external_api {
* @since 2.5
*/
public static function block_contacts($userids) {
global $CFG;
// Check if messaging is enabled.
if (!$CFG->messaging) {
throw new moodle_exception('disabled', 'message');
}
$params = array('userids' => $userids);
$params = self::validate_parameters(self::block_contacts_parameters(), $params);
@@ -359,6 +380,13 @@ class core_message_external extends external_api {
* @since 2.5
*/
public static function unblock_contacts($userids) {
global $CFG;
// Check if messaging is enabled.
if (!$CFG->messaging) {
throw new moodle_exception('disabled', 'message');
}
$params = array('userids' => $userids);
$params = self::validate_parameters(self::unblock_contacts_parameters(), $params);
@@ -398,6 +426,12 @@ class core_message_external extends external_api {
*/
public static function get_contacts() {
global $CFG;
// Check if messaging is enabled.
if (!$CFG->messaging) {
throw new moodle_exception('disabled', 'message');
}
require_once($CFG->dirroot . '/user/lib.php');
list($online, $offline, $strangers) = message_get_contacts();
@@ -498,6 +532,12 @@ class core_message_external extends external_api {
*/
public static function search_contacts($searchtext, $onlymycourses = false) {
global $CFG, $USER;
// Check if messaging is enabled.
if (!$CFG->messaging) {
throw new moodle_exception('disabled', 'message');
}
require_once($CFG->libdir . '/enrollib.php');
$params = array('searchtext' => $searchtext, 'onlymycourses' => $onlymycourses);
+1
View File
@@ -33,6 +33,7 @@
<tr>
<td colspan="2">
<div class="buttons">
<input type="hidden" name="sesskey" value="<?php echo sesskey(); ?>" />
<input type="hidden" name="id" value="<?php p($cm->id) ?>" />
<input type="hidden" name="action" value="<?php p($action) ?>" />
<input type="hidden" name="confirm" value="1" />
+4
View File
@@ -95,6 +95,7 @@ if ( $hook >0 ) {
if ( $action == "edit" ) {
if ( $confirm ) {
require_sesskey();
$action = "";
$cat = new stdClass();
$cat->id = $hook;
@@ -118,6 +119,7 @@ if ( $hook >0 ) {
} elseif ( $action == "delete" ) {
if ( $confirm ) {
require_sesskey();
$DB->delete_records("glossary_entries_categories", array("categoryid"=>$hook));
$DB->delete_records("glossary_categories", array("id"=>$hook));
@@ -146,6 +148,7 @@ if ( $hook >0 ) {
<td align="$rightalignment" style="width:50%">
<form id="form" method="post" action="editcategories.php">
<div>
<input type="hidden" name="sesskey" value="<?php echo sesskey(); ?>" />
<input type="hidden" name="id" value="<?php p($cm->id) ?>" />
<input type="hidden" name="action" value="delete" />
<input type="hidden" name="confirm" value="1" />
@@ -169,6 +172,7 @@ if ( $hook >0 ) {
} elseif ( $action == "add" ) {
if ( $confirm ) {
require_sesskey();
$dupcategory = $DB->get_records_sql("SELECT * FROM {glossary_categories} WHERE ".$DB->sql_like('name','?', false)." AND glossaryid=?", array($name, $glossary->id));
if ( $dupcategory ) {
redirect("editcategories.php?id=$cm->id&amp;action=add&amp;name=$name", get_string("duplicatecategory", "glossary"), 2);
+15 -5
View File
@@ -24,11 +24,13 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @author Chris Scribner
*/
define('AJAX_SCRIPT', true);
require_once(dirname(__FILE__) . "/../../config.php");
require_once($CFG->dirroot . '/mod/lti/locallib.php');
$courseid = required_param('course', PARAM_INT);
$context = context_course::instance($courseid);
require_login($courseid, false);
@@ -41,15 +43,18 @@ switch ($action) {
$toolurl = required_param('toolurl', PARAM_RAW);
$toolid = optional_param('toolid', 0, PARAM_INT);
if(empty($toolid) && !empty($toolurl)){
require_capability('moodle/course:manageactivities', $context);
require_capability('mod/lti:addinstance', $context);
if (empty($toolid) && !empty($toolurl)) {
$tool = lti_get_tool_by_url_match($toolurl, $courseid);
if(!empty($tool)){
$toolid = $tool->id;
$response->toolid = $tool->id;
$response->toolname = htmlspecialchars($tool->name);
$response->tooldomain = htmlspecialchars($tool->tooldomain);
$response->toolname = s($tool->name);
$response->tooldomain = s($tool->tooldomain);
}
} else {
$response->toolid = $toolid;
@@ -66,14 +71,19 @@ switch ($action) {
';
$privacyconfigs = $DB->get_records_sql($query, array('typeid' => $toolid));
foreach($privacyconfigs as $config){
$success = count($privacyconfigs) > 0;
foreach ($privacyconfigs as $config) {
$configname = $config->name;
$response->$configname = $config->value;
}
if (!$success) {
$response->error = s(get_string('tool_config_not_found', 'mod_lti'));
}
}
break;
}
echo $OUTPUT->header();
echo json_encode($response);
die;
-11
View File
@@ -1082,17 +1082,6 @@ class qtype_calculated extends question_type {
$ans = new qtype_numerical_answer(0, $ansvalue, 0, '', 0, $answer->tolerance);
$ans->tolerancetype = $answer->tolerancetype;
list($answer->min, $answer->max) = $ans->get_tolerance_interval($answer);
$formattedmin = qtype_calculated_calculate_answer(
$answer->min, $data, $answer->tolerance,
$answer->tolerancetype, $answer->correctanswerlength,
$answer->correctanswerformat, $unit);
$answer->min = $formattedmin->answer;
$formattedmax = qtype_calculated_calculate_answer(
$answer->max, $data, $answer->tolerance,
$answer->tolerancetype, $answer->correctanswerlength,
$answer->correctanswerformat, $unit);
$answer->max = $formattedmax->answer;
}
if ($answer->min === '') {
// This should mean that something is wrong.
+2 -2
View File
@@ -29,11 +29,11 @@
defined('MOODLE_INTERNAL') || die();
$version = 2013111806.00; // 20131118 = branching date YYYYMMDD - do not modify!
$version = 2013111807.00; // 20131118 = branching date YYYYMMDD - do not modify!
// RR = release increments - 00 in DEV branches.
// .XX = incremental changes.
$release = '2.6.6 (Build: 20141110)'; // Human-friendly version name
$release = '2.6.7 (Build: 20150112)'; // Human-friendly version name
$branch = '26'; // This version's branch.
$maturity = MATURITY_STABLE; // This version's maturity level.