diff --git a/main/attendance/attendance_controller.php b/main/attendance/attendance_controller.php
index 6d4d026fb3..f256ab7f4f 100755
--- a/main/attendance/attendance_controller.php
+++ b/main/attendance/attendance_controller.php
@@ -303,7 +303,7 @@ class AttendanceController
$isDrhOfCourse = CourseManager::isUserSubscribedInCourseAsDrh(
api_get_user_id(),
api_get_course_info()
- );
+ ) || api_is_drh();
if ($edit == true) {
if (api_is_allowed_to_edit(null, true) || $isDrhOfCourse) {
diff --git a/main/attendance/attendance_sheet.php b/main/attendance/attendance_sheet.php
index 7c6fdb4907..d0fe07f7de 100755
--- a/main/attendance/attendance_sheet.php
+++ b/main/attendance/attendance_sheet.php
@@ -16,7 +16,7 @@ api_protect_course_script(true);
$isDrhOfCourse = CourseManager::isUserSubscribedInCourseAsDrh(
api_get_user_id(),
api_get_course_info()
-);
+) || api_is_drh();
if (api_is_allowed_to_edit(null, true) ||
api_is_coach(api_get_session_id(), api_get_course_int_id()) ||
diff --git a/main/gradebook/index.php b/main/gradebook/index.php
index 04feeeb673..58a8b91914 100755
--- a/main/gradebook/index.php
+++ b/main/gradebook/index.php
@@ -786,7 +786,6 @@ if (isset($first_time) && $first_time == 1 && api_is_allowed_to_edit(null, true)
}
if (api_is_allowed_to_edit(null, true)) {
-
if (((empty($selectCat)) || (isset($_GET['cidReq']) && $_GET['cidReq'] !== '')) ||
(isset($_GET['isStudentView']) && $_GET['isStudentView'] == 'false')
) {
diff --git a/main/inc/ajax/agenda.ajax.php b/main/inc/ajax/agenda.ajax.php
index 390623f605..fdd6164037 100755
--- a/main/inc/ajax/agenda.ajax.php
+++ b/main/inc/ajax/agenda.ajax.php
@@ -19,6 +19,8 @@ if ($type == 'course') {
}
$agenda = new Agenda($type);
+// get filtered type
+$type = $agenda->getType();
switch ($action) {
case 'add_event':
@@ -26,15 +28,17 @@ switch ($action) {
break;
}
$add_as_announcement = isset($_REQUEST['add_as_annonuncement']) ? $_REQUEST['add_as_annonuncement'] : null;
- $comment = isset($_REQUEST['comment']) ? $_REQUEST['comment'] : null;
+ $title = isset($_REQUEST['title']) ? Security::remove_XSS($_REQUEST['title']) : null;
+ $content = isset($_REQUEST['content']) ? Security::remove_XSS($_REQUEST['content']) : null;
+ $comment = isset($_REQUEST['comment']) ? Security::remove_XSS($_REQUEST['comment']) : null;
$userToSend = isset($_REQUEST['users_to_send']) ? $_REQUEST['users_to_send'] : [];
echo $agenda->addEvent(
$_REQUEST['start'],
$_REQUEST['end'],
$_REQUEST['all_day'],
- $_REQUEST['title'],
- $_REQUEST['content'],
+ $title,
+ $content,
$userToSend,
$add_as_announcement,
null, //$parentEventId = null,
@@ -54,8 +58,8 @@ switch ($action) {
$_REQUEST['start'],
$_REQUEST['end'],
$_REQUEST['all_day'],
- $_REQUEST['title'],
- $_REQUEST['content']
+ $title,
+ $content
);
break;
case 'delete_event':
diff --git a/main/inc/lib/agenda.lib.php b/main/inc/lib/agenda.lib.php
index 13ac374840..ce383db97a 100644
--- a/main/inc/lib/agenda.lib.php
+++ b/main/inc/lib/agenda.lib.php
@@ -160,6 +160,18 @@ class Agenda
}
}
+ /**
+ * Returns the type previously set (and filtered) through setType
+ * If setType() was not called, then type defaults to "personal" as
+ * set in the class definition.
+ */
+ public function getType()
+ {
+ if (isset($this->type)) {
+ return $this->type;
+ }
+ }
+
/**
* @param int $id
*/
diff --git a/main/inc/lib/attendance.lib.php b/main/inc/lib/attendance.lib.php
index aaa437c451..719e9d8143 100755
--- a/main/inc/lib/attendance.lib.php
+++ b/main/inc/lib/attendance.lib.php
@@ -154,8 +154,9 @@ class Attendance
while ($attendance = Database::fetch_row($res)) {
$student_param = '';
- if (api_is_drh() && $_GET['student_id']) {
- $student_param = '&student_id='.intval($_GET['student_id']);
+ $studentRequestId = isset($_GET['student_id']) ? (int) $_GET['student_id'] : 0;
+ if (api_is_drh() && !empty($studentRequestId)) {
+ $student_param = '&student_id='.$studentRequestId;
}
$session_star = '';
@@ -166,8 +167,7 @@ class Attendance
$isDrhOfCourse = CourseManager::isUserSubscribedInCourseAsDrh(
api_get_user_id(),
api_get_course_info()
- );
-
+ ) || api_is_drh();
if (api_is_allowed_to_edit(null, true) || $isDrhOfCourse) {
// Link to edit
$attendance[1] = ''.$attendance[1].''.$session_star;
diff --git a/main/inc/lib/lp_item.lib.php b/main/inc/lib/lp_item.lib.php
index d02ac2cf4f..90be7df51c 100755
--- a/main/inc/lib/lp_item.lib.php
+++ b/main/inc/lib/lp_item.lib.php
@@ -43,10 +43,10 @@ class LpItem
{
if ($in_c_id > 0 && $in_id > 0) {
$item_view_table = Database::get_course_table(TABLE_LP_ITEM);
- $sql = "SELECT * FROM $item_view_table
- WHERE
- c_id=".intval($in_c_id)." AND
- id=".intval($in_id);
+ $sql = "SELECT * FROM $item_view_table
+ WHERE
+ c_id=".intval($in_c_id)." AND
+ iid=".intval($in_id);
$res = Database::query($sql);
$data = Database::fetch_array($res);
@@ -84,27 +84,27 @@ class LpItem
{
$table = Database::get_course_table(TABLE_LP_ITEM);
if ($this->c_id > 0 && $this->id > 0) {
- $sql = "UPDATE $table SET
- lp_id = '".intval($this->lp_id)."' ,
- item_type = '".Database::escape_string($this->item_type)."' ,
- ref = '".Database::escape_string($this->ref)."' ,
- title = '".Database::escape_string($this->title)."' ,
- description = '".Database::escape_string($this->description)."' ,
- path = '".Database::escape_string($this->path)."' ,
- min_score = '".Database::escape_string($this->min_score)."' ,
- max_score = '".Database::escape_string($this->max_score)."' ,
- mastery_score = '".Database::escape_string($this->mastery_score)."' ,
- parent_item_id = '".Database::escape_string($this->parent_item_id)."' ,
- previous_item_id = '".Database::escape_string($this->previous_item_id)."' ,
- next_item_id = '".Database::escape_string($this->next_item_id)."' ,
- display_order = '".Database::escape_string($this->display_order)."' ,
- prerequisite = '".Database::escape_string($this->prerequisite)."' ,
- parameters = '".Database::escape_string($this->parameters)."' ,
- launch_data = '".Database::escape_string($this->launch_data)."' ,
- max_time_allowed = '".Database::escape_string($this->max_time_allowed)."' ,
- terms = '".Database::escape_string($this->terms)."' ,
- search_did = '".Database::escape_string($this->search_did)."' ,
- audio = '".Database::escape_string($this->audio)."'
+ $sql = "UPDATE $table SET
+ lp_id = '".intval($this->lp_id)."' ,
+ item_type = '".Database::escape_string($this->item_type)."' ,
+ ref = '".Database::escape_string($this->ref)."' ,
+ title = '".Database::escape_string($this->title)."' ,
+ description = '".Database::escape_string($this->description)."' ,
+ path = '".Database::escape_string($this->path)."' ,
+ min_score = '".Database::escape_string($this->min_score)."' ,
+ max_score = '".Database::escape_string($this->max_score)."' ,
+ mastery_score = '".Database::escape_string($this->mastery_score)."' ,
+ parent_item_id = '".Database::escape_string($this->parent_item_id)."' ,
+ previous_item_id = '".Database::escape_string($this->previous_item_id)."' ,
+ next_item_id = '".Database::escape_string($this->next_item_id)."' ,
+ display_order = '".Database::escape_string($this->display_order)."' ,
+ prerequisite = '".Database::escape_string($this->prerequisite)."' ,
+ parameters = '".Database::escape_string($this->parameters)."' ,
+ launch_data = '".Database::escape_string($this->launch_data)."' ,
+ max_time_allowed = '".Database::escape_string($this->max_time_allowed)."' ,
+ terms = '".Database::escape_string($this->terms)."' ,
+ search_did = '".Database::escape_string($this->search_did)."' ,
+ audio = '".Database::escape_string($this->audio)."'
WHERE c_id=".$this->c_id." AND id=".$this->id;
Database::query($sql);
}
diff --git a/main/inc/lib/template.lib.php b/main/inc/lib/template.lib.php
index d2a87662b7..df822a4c77 100755
--- a/main/inc/lib/template.lib.php
+++ b/main/inc/lib/template.lib.php
@@ -1916,7 +1916,9 @@ class Template
/**
* Get platform meta image tag (check meta_image_path setting, then use the logo).
+ *
* @param string $imageAlt The alt attribute for the image
+ *
* @return string The meta image HTML tag, or empty
*/
private function getMetaPortalImagePath($imageAlt = '')
diff --git a/main/inc/lib/tracking.lib.php b/main/inc/lib/tracking.lib.php
index f0a788489a..dcac72ab05 100755
--- a/main/inc/lib/tracking.lib.php
+++ b/main/inc/lib/tracking.lib.php
@@ -7448,8 +7448,9 @@ class TrackingCourseLog
$direction,
$includeInvitedUsers = false
) {
- global $user_ids, $course_code, $export_csv, $csv_content, $session_id;
+ global $user_ids, $course_code, $export_csv, $session_id;
+ $csv_content = [];
$course_code = Database::escape_string($course_code);
$tbl_user = Database::get_main_table(TABLE_MAIN_USER);
$tbl_url_rel_user = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER);
@@ -7696,6 +7697,10 @@ class TrackingCourseLog
$users[] = array_values($user_row);
}
+ if ($export_csv) {
+ Session::write('csv_content', $csv_content);
+ }
+
Session::erase('additional_user_profile_info');
Session::erase('extra_field_info');
diff --git a/main/lang/brazilian/trad4all.inc.php b/main/lang/brazilian/trad4all.inc.php
index ca79d679d2..845f5ae3c3 100644
--- a/main/lang/brazilian/trad4all.inc.php
+++ b/main/lang/brazilian/trad4all.inc.php
@@ -79,7 +79,7 @@ $HyperbolicArctangentArctanh = "Arco tangente hiperbólica: \t\t arctanh (x)";
$SessionDurationTitle = "Duração da sessão";
$ArctangentArctan = "Arctangent:\t\t\tarctan(x)";
$HyperbolicTangentTanh = "Tangente hiperbólica:\t\ttanh(x)";
-$TangentTan = "Tangent:\t\t\ TTAN (x)";
+$TangentTan = "Tangent:\t\t\tTAN (x)";
$CoachAndStudent = "Treinador e aluno";
$Serie = "Series";
$HyperbolicArccosineArccosh = "Arccosine hiperbólica:\t\tarccosh(x)";
@@ -90,13 +90,13 @@ $TeacherTimeReport = "Professores relatório de tempo";
$HyperbolicArcsineArcsinh = "arcsine hiperbólica:\t\tarcsinh(x)";
$YourLanguageNotThereContactUs = "Não é possível encontrar o seu idioma na lista? Contacte-nos em info@chamilo.org contribuir como um tradutor.";
$ArcsineArcsin = "arcsine:\t\t\tarcsin(x)";
-$HyperbolicSineSinh = "Seno hiperbólico:\t\ sinh(x)";
+$HyperbolicSineSinh = "Seno hiperbólico:\t\tsinh(x)";
$SineSin = "Sine:\t\t\t\tsin(x)";
$PiNumberPi = "Número Pi:\t\t\tpi";
$ENumberE = "Número E:\t\t\te";
$LogarithmLog = "Logaritmo:\t\t\tlog(x)";
$NaturalLogarithmLn = "Logaritmo natural:\t\tln(x)";
-$AbsoluteValueAbs = "Valor absoluto:\t\t\abas(x)";
+$AbsoluteValueAbs = "Valor absoluto:\t\t\tabas(x)";
$SquareRootSqrt = "Raiz quadrada:\t\t\tsqrt(x)";
$ExponentiationCircumflex = "Exponenciação:\t\t\t^";
$DivisionSlash = "Divisão:\t\t\t/";
@@ -2348,7 +2348,7 @@ $GroupDescription = "Descrição do grupo";
$GroupMembers = "Membros do grupo";
$EditGroup = "Editar este grupo";
$GroupSettingsModified = "Configurações do grupo modificado";
-$GroupTooMuchMembers = "Número proposta excede max que você permitiu que (você pode modificá-lo abaixo) \ t \ t \ t \ composição tgroup não foi modificado.";
+$GroupTooMuchMembers = "Número proposta excede max que você permitiu que (você pode modificá-lo abaixo) \t\t\t\t composição tgroup não foi modificado.";
$GroupTutor = "Tutor Grupo";
$GroupNoTutor = "(nenhum)";
$GroupNone = "(nenhum)";
@@ -5934,7 +5934,7 @@ $ContactInformationHasBeenSent = "As informações de contato foram enviadas";
$EditExtraFieldOptions = "Editar opções de campos extra";
$ExerciseDescriptionLabel = "Descrição";
$UserInactivedSinceX = "Usuário inativo desde %s";
-$ContactInformationDescription = "Prezado usuário, \ n Você está prestes a começar a usar um dos melhores de fonte aberta plataforma e-learning no mercado. Como muitos outros projetos de código aberto, este projecto é apoiado -se por uma grande comunidade de estudantes, professores, desenvolvedores e criadores de conteúdo que gostariam de promover melhor o projeto. \n \nAo saber um pouco mais sobre você, um dos nossos usuários mais importantes, quem vai gerir este chamilo de e-learning, que será capaz de deixar as pessoas sabem que o nosso software é usado e que você saiba quando nós organizamos eventos que possam ser relevantes para você. \ n \ nAo enchimento Desta forma, você aceita que a associação Chamilo ou seus membros possam enviar informações por e-mail sobre eventos importantes ou atualizações do software Chamilo ou comunidade. Isto irá ajudar a comunidade a crescer como uma entidade organizada, onde o fluxo de informações, com um respeito permanente de seu tempo e sua privacidade. \ n \ nPor favor nota que você é não é necessário b> para preencher este formulário. Se você quiser permanecer anônimo, vamos perder a oportunidade de oferecer-lhe todos os privilégios de ser um administrador do portal registrado, mas nós vamos respeitar sua decisão. Basta deixar esta forma vazia e clique em \"Avançar\"
.";
+$ContactInformationDescription = "Prezado usuário, \n Você está prestes a começar a usar um dos melhores de fonte aberta plataforma e-learning no mercado. Como muitos outros projetos de código aberto, este projecto é apoiado -se por uma grande comunidade de estudantes, professores, desenvolvedores e criadores de conteúdo que gostariam de promover melhor o projeto. \n \nAo saber um pouco mais sobre você, um dos nossos usuários mais importantes, quem vai gerir este chamilo de e-learning, que será capaz de deixar as pessoas sabem que o nosso software é usado e que você saiba quando nós organizamos eventos que possam ser relevantes para você. \n \nAo enchimento Desta forma, você aceita que a associação Chamilo ou seus membros possam enviar informações por e-mail sobre eventos importantes ou atualizações do software Chamilo ou comunidade. Isto irá ajudar a comunidade a crescer como uma entidade organizada, onde o fluxo de informações, com um respeito permanente de seu tempo e sua privacidade. \n \nPor favor nota que você é não é necessário para preencher este formulário. Se você quiser permanecer anônimo, vamos perder a oportunidade de oferecer-lhe todos os privilégios de ser um administrador do portal registrado, mas nós vamos respeitar sua decisão. Basta deixar esta forma vazia e clique em \"Avançar\"
.";
$CompanyActivity = "atividade da sua empresa";
$PleaseAllowUsALittleTimeToSubscribeYouToOneOfOurCourses = "Por favor, permita-nos um pouco de tempo para se inscrever você para um dos nossos cursos Se você acha que esqueci de você, entre em contato com os administradores do portal normalmente você pode encontrar os detalhes de contato no rodapé desta página...";
$ManageSessionFields = "Gerenciar campos de sessão";
@@ -6124,7 +6124,7 @@ $OnlyAccessFromYourGroup = "Só acessível a partir de seu grupo";
$CreateAssignmentPage = "Isto irá criar uma página wiki especial em que o professor pode descrever a tarefa e que serão ligadas automaticamente para as páginas wiki onde os alunos realizam a tarefa. Tanto o professor e páginas dos alunos são criados automaticamente. Nestas tarefas , os alunos só podem editar e ver DELE páginas, mas isso pode ser mudado facilmente se você precisar.";
$UserFolders = "Pastas de usuários";
$UserFolder = "Pasta do usuário";
-$HelpUsersFolder = "informação visível para o professor SOMENTE:.\NA pasta usuários contém uma pasta para cada usuário que acessou-o através da ferramenta de documentos, ou quando qualquer arquivo foi enviado no curso através do editor on-line Se nem circunstâncias ocorreu, em seguida, nenhuma pasta do usuário terá sido criado. No caso de grupos, os arquivos que são enviados através do editor será adicionado na pasta de cada grupo, que só é acessível por estudantes deste grupo.\n
\nOs usuários pasta e cada uma das pastas incluídas ficarão ocultas por padrão no para todos os alunos, mas cada aluno pode ver o conteúdo do seu/sua diretório através do editor online. No entanto, se um estudante conhece o endereço de um arquivo ou pasta de um outro estudante, ele pode ser capaz de acessá-lo.\n
\nSe a pasta de um estudante é visível, outros alunos podem ver o que ele contém. Neste caso, o aluno que possui a pasta pode também (a partir da ferramenta documentos e somente em sua pasta/ela): criar e editar documentos web, converter um documento em um modelo para uso pessoal, criar e editar desenhos em SVG e PNG formatos, arquivos de áudio em formato WAV gravação, faça arquivos de áudio em MP3 a partir de um texto, faça snapshops a partir de uma webcam, enviar documentos, criar pastas, mover pastas e arquivos, excluir pastas e arquivos, e faça o download de backup de sua pasta/ela.\n
\nAlém disso, a ferramenta documentos está sincronizado com o gerente do editor on-line de arquivos, pelo que as alterações nos documentos acionado em qualquer um deles afetará ambos.\n
\nComo tal, a pasta de usuário é não só um lugar para depositar os arquivos, torna-se um gerente completo dos documentos estudantes usam durante o curso. Além disso, lembre-se que qualquer usuário pode copiar um arquivo que é visível a partir de qualquer pasta na ferramenta de documentos (ou não, ele é o proprietário) para seu/sua carteira ou documentos pessoais área de rede social, que estará disponível para ele / ela para uso em outros cursos.";
+$HelpUsersFolder = "informação visível para o professor SOMENTE:.\nA pasta usuários contém uma pasta para cada usuário que acessou-o através da ferramenta de documentos, ou quando qualquer arquivo foi enviado no curso através do editor on-line Se nem circunstâncias ocorreu, em seguida, nenhuma pasta do usuário terá sido criado. No caso de grupos, os arquivos que são enviados através do editor será adicionado na pasta de cada grupo, que só é acessível por estudantes deste grupo.\n
\nOs usuários pasta e cada uma das pastas incluídas ficarão ocultas por padrão no para todos os alunos, mas cada aluno pode ver o conteúdo do seu/sua diretório através do editor online. No entanto, se um estudante conhece o endereço de um arquivo ou pasta de um outro estudante, ele pode ser capaz de acessá-lo.\n
\nSe a pasta de um estudante é visível, outros alunos podem ver o que ele contém. Neste caso, o aluno que possui a pasta pode também (a partir da ferramenta documentos e somente em sua pasta/ela): criar e editar documentos web, converter um documento em um modelo para uso pessoal, criar e editar desenhos em SVG e PNG formatos, arquivos de áudio em formato WAV gravação, faça arquivos de áudio em MP3 a partir de um texto, faça snapshops a partir de uma webcam, enviar documentos, criar pastas, mover pastas e arquivos, excluir pastas e arquivos, e faça o download de backup de sua pasta/ela.\n
\nAlém disso, a ferramenta documentos está sincronizado com o gerente do editor on-line de arquivos, pelo que as alterações nos documentos acionado em qualquer um deles afetará ambos.\n
\nComo tal, a pasta de usuário é não só um lugar para depositar os arquivos, torna-se um gerente completo dos documentos estudantes usam durante o curso. Além disso, lembre-se que qualquer usuário pode copiar um arquivo que é visível a partir de qualquer pasta na ferramenta de documentos (ou não, ele é o proprietário) para seu/sua carteira ou documentos pessoais área de rede social, que estará disponível para ele/ela para uso em outros cursos.";
$HelpFolderChat = "INFORMAÇÕES VISÍVEL SOMENTE PARA O PROFESSOR: pasta\n Está contém todas as sessões que foram abertas no chat. Embora as sessões de chat pode muitas vezes ser trivial, outros pode ser realmente interessante e digno de ser incorporada como um documento de trabalho adicional. Para fazer isso sem alterar a visibilidade desta pasta, tornar o arquivo visível e vinculá-lo a partir de onde você considerem adequadas. Não é recomendado fazer esta pasta visível a todos.";
$HelpFolderCertificates = "Informação visível para o professor SOMENTE:.. Pasta\nEste contém os vários modelos de certificados que foram criados para a ferramenta de classificação não é recomendável fazer esta pasta visível a todos";
$DestinationDirectory = "Pasta de destino";
diff --git a/main/lang/galician/trad4all.inc.php b/main/lang/galician/trad4all.inc.php
index f0ef5ef06d..3c240ee427 100644
--- a/main/lang/galician/trad4all.inc.php
+++ b/main/lang/galician/trad4all.inc.php
@@ -7003,10 +7003,24 @@ $GradebookEnableLockingTitle = "Activar bloqueo de Avaliacións para os profesor
$GradebookEnableLockingComment = "Unha vez activada, esta opción permitirá aos profesores bloquear calquera avaliación dentro do seu curso. Isto prohibirá ao profesor calquera modificación posterior dos resultados dos seus alumnos nos recursos usados para esta avaliación: exames, leccións, tarefas, etc. O único rol autorizado a desbloquear unha avaliación é o administrador. O profesor estará informado desta posibilidade ao intentar desbloquear a avaliación. Tanto o bloqueo como o desbloqueo estarán gardados no rexistro de actividades importantes do sistema.";
$LdapDescriptionComment = "
Autentificación LDAP : Ver I. embaixo para configurar LDAP Ver II. embaixo para activar a autentificación LDAP
Actualizar atributos de usuario, con datos LDAP, despois de autentificación CAS (ver CAS configuration ) : Ver I. embaixo para configurar LDAP Para autentificación con manexo de usuarios CAS, a activación de LDAP non é requerida.
cadea do dominio base (ex : 'base_dn' => 'DC=cblue,DC=be')
nome distinguido do admin (ex : 'admin_dn' =>'CN=admin,dc=cblue,dc=be')
contrasinal de aministrador (ex : 'admin_password' => '123456')
host ldap (ex : 'host' => array('1.2.3.4', '2.3.4.5', '3.4.5.6'))
filtro (ex : 'filter' => '')
porto (ex : 'port' => 389)
versión do protocolo (2 ou 3) (ex : 'protocol_version' => 3)
user_search (ex : 'user_search' => 'sAMAccountName=%username%')
codificación (ex : 'encoding' => 'UTF-8')
update_userinfo (ex : 'update_userinfo' => true)
-> Para actualizar as correspondencias entre usuario e atributos LDAP, editar o array $extldap_user_correspondance Os valores do array son <chamilo_field> => >ldap_field> A estrutura do array está explciada no arquivo main/auth/external_login/ldap.conf.php
II. Activar autenticación LDAP
Editar arquivo main/inc/conf/configuration.php
-> Descomentar as liñas $extAuthSource["extldap"]["login"] =$_configuration['root_sys'].$_configuration['code_append']."auth/external_login/login.ldap.php"; $extAuthSource["extldap"]["newUser"] =$_configuration['root_sys'].$_configuration['code_append']."auth/external_login/newUser.ldap.php";
N.B. : Os usuarios LDAP empregan os mesmos campos ca os usuarios da plataforma para facer login. N.B. : A activación LDAP engade un menú Autentificación externa [LDAP] nas páxinas de usuario "engadir ou modificar".";
$ShibbolethMainActivateTitle = "Autenticación Shibboleth";
-$ShibbolethMainActivateComment = "En primeiro lugar, ten que configurar Shibboleth para o seu servidor web. Para configuralo en Chamilo: editar o arquivo main/auth/shibboleth/config/aai.class.php Modificar valores de \$result co nome dos atributos de Shibboleth \$result->unique_id = 'mail'; \$result->firstname = 'cn'; \$result->lastname = 'uid'; \$result->email = 'mail'; \$result->language = '-'; \$result->gender = '-'; \$result->address = '-'; \$result->staff_category = '-'; \$result->home_organization_type = '-'; \$result->home_organization = '-'; \$result->affiliation = '-'; \$result->persistent_id = '-'; ... Ir a Plug-in para engadir o botón 'Shibboleth Login' no seu campus de Chamilo.";
+$ShibbolethMainActivateComment = "En primeiro lugar, ten que configurar Shibboleth para o seu servidor web. Para configuralo en Chamilo: editar o arquivo main/auth/shibboleth/config/aai.class.php Modificar valores de $result co nome dos atributos de Shibboleth
+
+
$result->unique_id = 'mail';
+
$result->firstname = 'cn';
+
$result->lastname = 'uid';
+
$result->email = 'mail';
+
$result->language = '-';
+
$result->gender = '-';
+
$result->address = '-';
+
$result->staff_category = '-';
$result->home_organization_type = '-';
$result->home_organization = '-';
+
$result->affiliation = '-';
+
$result->persistent_id = '-';
+
+...
+Ir a Plug-in para engadir o botón 'Shibboleth Login' no seu campus de Chamilo.";
$LdapDescriptionTitle = "Autenticación LDAP";
$FacebookMainActivateTitle = "Autenticación Facebook";
-$FacebookMainActivateComment = "En primeiro lugar, tense que crear unha aplicación de Facebook (ver https://developers.facebook.com/apps) cunha conta de Facebook. Nos parámetros de aplicacións de Facebook, o valor de dirección URL do sitio debe tener \"unha acción = fbconnect\" un parámetro GET (http://mychamilo.com/?action=fbconnect, por ejemplo). Entón, editar o arquivo main/auth/external_login/facebook.conf.php e ingresar en \"appId\" e \"secret\" os valores de \$facebook_config. Ir a Plug-in para engadir un botón configurable \"Facebook Login\" para o campus de Chamilo.";
+$FacebookMainActivateComment = "En primeiro lugar, tense que crear unha aplicación de Facebook (ver https://developers.facebook.com/apps) cunha conta de Facebook. Nos parámetros de aplicacións de Facebook, o valor de dirección URL do sitio debe tener \"unha acción = fbconnect\" un parámetro GET (http://mychamilo.com/?action=fbconnect, por ejemplo). Entón, editar o arquivo main/auth/external_login/facebook.conf.php e ingresar en \"appId\" e \"secret\" os valores de $facebook_config. Ir a Plug-in para engadir un botón configurable \"Facebook Login\" para o campus de Chamilo.";
$AnnouncementForGroup = "Anuncio para un grupo";
$AllGroups = "Todos os grupos";
$LanguagePriority1Title = "Prioridade do idioma 1";
diff --git a/main/lang/polish/trad4all.inc.php b/main/lang/polish/trad4all.inc.php
index 1a96b9bb7a..e4851e113b 100644
--- a/main/lang/polish/trad4all.inc.php
+++ b/main/lang/polish/trad4all.inc.php
@@ -3458,7 +3458,7 @@ $Preserved = "Chroniony";
$ConfirmUnsubscribe = "Potwierdź usunięcie użytkownika";
$See = "Idź do";
$LastVisits = "Moje ostatnie logowania";
-$IfYouWantToAddManyUsers = "Jeśli chcesz dodać listę użytkowników do szkolenia \t\t\, skontaktuj się z administratorem.";
+$IfYouWantToAddManyUsers = "Jeśli chcesz dodać listę użytkowników do szkolenia, skontaktuj się z administratorem.";
$PassTooEasy = "to hasło jest zbyt proste. Zobacz przykład poniżej";
$AddedToCourse = "jest już zarejestrowany w kursie";
$UserAlreadyRegistered = "Użytkownik o tej nazwie jest już zarejestrowany w tym kursie.";
diff --git a/main/lang/tagalog/trad4all.inc.php b/main/lang/tagalog/trad4all.inc.php
index 8fdd4297a0..c12c53edaa 100644
--- a/main/lang/tagalog/trad4all.inc.php
+++ b/main/lang/tagalog/trad4all.inc.php
@@ -1340,7 +1340,7 @@ $ExamPassX = "Pasado sa minimum na %s";
$ExamFail = "Bagsak";
$ExamTracking = "Pagsusubaybay sa pagsusulit";
$EnableCourseValidation = "Balidasyon ng mga kurso";
-$EnableCourseValidationComment = "Kapag ang tampok na \Balidasyon ng kurso\" ay pinagana, ang isang guro ay hindi maaaring makapaglikha ng isang kurso nang nag-iisa. Siya ay dapat magsulat ng isang kahilingan sa kurso. Ang tagapangasiwa ng platform ay niriripaso ang kahilingan at aaprubahan ito o tatanggihan. Ang tampok na ito ay umaasa sa 'automated e-mail messaing'; i-set ang Chamilo upang mag-access sa isang server ng email at gumamit ng isang nakatalagang e-mail account.";
+$EnableCourseValidationComment = "Kapag ang tampok na 'Balidasyon ng kurso' ay pinagana, ang isang guro ay hindi maaaring makapaglikha ng isang kurso nang nag-iisa. Siya ay dapat magsulat ng isang kahilingan sa kurso. Ang tagapangasiwa ng platform ay niriripaso ang kahilingan at aaprubahan ito o tatanggihan. Ang tampok na ito ay umaasa sa 'automated e-mail messaing'; i-set ang Chamilo upang mag-access sa isang server ng email at gumamit ng isang nakatalagang e-mail account.";
$CourseValidationTermsAndConditionsLink = "Balidasyon ng kurso - isang link sa mga takda at mga kondisyon";
$CourseValidationTermsAndConditionsLinkComment = "Ito ang URL sa \"Mga Takda at Mga Kondisyon\" na dokumento na balido sa pagagawa ng kahilingan sa kurso. Kung ang address ay naitakda rito, ang gumagamit ay dapat basahin at sumang-ayon sa mga takda at mga kondisyon bago ipadala ang isang kahilingan sa kurso. Kung iyong pagganahin ang module ng \"Mga Takda at Mga Kondisyon\" at kung nais mong gamitin ang URL nito, hayaang walang laman ang setting na ito.";
$EnabledSVGTitle = "Lumikha at mag-edit ng mga SVG file";
diff --git a/main/lp/learnpath.class.php b/main/lp/learnpath.class.php
index 2bd320c80d..3a03bf6f7b 100755
--- a/main/lp/learnpath.class.php
+++ b/main/lp/learnpath.class.php
@@ -10332,13 +10332,13 @@ class learnpath
$selectedMinScore = [];
$selectedMaxScore = [];
$masteryScore = [];
-
while ($row = Database::fetch_array($result)) {
- if ($row['id'] == $item_id) {
+ if ($row['iid'] == $item_id) {
$selectedMinScore[$row['prerequisite']] = $row['prerequisite_min_score'];
$selectedMaxScore[$row['prerequisite']] = $row['prerequisite_max_score'];
- $masteryScore[$row['prerequisite']] = $row['mastery_score'];
}
+ $masteryScore[$row['iid']] = $row['mastery_score'];
+
$arrLP[] = [
'id' => $row['iid'],
'item_type' => $row['item_type'],
diff --git a/main/survey/reporting.php b/main/survey/reporting.php
index 8ce4b1fac0..b9eea6ca35 100755
--- a/main/survey/reporting.php
+++ b/main/survey/reporting.php
@@ -62,21 +62,13 @@ if (!empty($exportReport) && !empty($format)) {
switch ($format) {
case 'xls':
$filename = 'survey_results_'.$survey_id.'.xlsx';
- $data = SurveyUtil::export_complete_report_xls(
- $survey_data,
- $filename,
- $userId
- );
+ $data = SurveyUtil::export_complete_report_xls($survey_data, $filename, $userId);
exit;
break;
case 'csv':
default:
- $data = SurveyUtil::export_complete_report(
- $survey_data,
- $userId
- );
+ $data = SurveyUtil::export_complete_report($survey_data, $userId);
$filename = 'survey_results_'.$survey_id.'.csv';
-
header('Content-type: application/octet-stream');
header('Content-Type: application/force-download');
diff --git a/main/survey/surveyUtil.class.php b/main/survey/surveyUtil.class.php
index 7f340a2d88..4536cf02e7 100755
--- a/main/survey/surveyUtil.class.php
+++ b/main/survey/surveyUtil.class.php
@@ -225,7 +225,7 @@ class SurveyUtil
*/
public static function handle_reporting_actions($survey_data, $people_filled)
{
- $action = isset($_GET['action']) ? $_GET['action'] : null;
+ $action = isset($_GET['action']) ? $_GET['action'] : '';
// Getting the number of question
$temp_questions_data = SurveyManager::get_questions($_GET['survey_id']);
@@ -243,20 +243,22 @@ class SurveyUtil
// Counting the number of questions that are relevant for the reporting
$survey_data['number_of_questions'] = count($questions_data);
- if ($action == 'questionreport') {
- self::display_question_report($survey_data);
- }
- if ($action == 'userreport') {
- self::display_user_report($people_filled, $survey_data);
- }
- if ($action == 'comparativereport') {
- self::display_comparative_report();
- }
- if ($action == 'completereport') {
- self::display_complete_report($survey_data);
- }
- if ($action == 'deleteuserreport') {
- self::delete_user_report($_GET['survey_id'], $_GET['user']);
+ switch ($action) {
+ case 'questionreport':
+ self::display_question_report($survey_data);
+ break;
+ case 'userreport':
+ self::display_user_report($people_filled, $survey_data);
+ break;
+ case 'comparativereport':
+ self::display_comparative_report();
+ break;
+ case 'completereport':
+ self::display_complete_report($survey_data);
+ break;
+ case 'deleteuserreport':
+ self::delete_user_report($_GET['survey_id'], $_GET['user']);
+ break;
}
}
@@ -373,7 +375,7 @@ class SurveyUtil
echo '