Merge branch 'master' of github.com:chamilo/chamilo-lms

pull/4017/head
Julio 4 years ago
commit edc8c48efa
  1. 54
      assets/css/app.scss
  2. 54
      assets/css/scorm.scss
  3. 6
      assets/locales/ar.json
  4. 6
      assets/locales/ast_ES.json
  5. 6
      assets/locales/bg.json
  6. 6
      assets/locales/bn_BD.json
  7. 6
      assets/locales/bo_CN.json
  8. 6
      assets/locales/bs_BA.json
  9. 6
      assets/locales/ca_ES.json
  10. 6
      assets/locales/cs_CZ.json
  11. 6
      assets/locales/da.json
  12. 8
      assets/locales/de.json
  13. 6
      assets/locales/el.json
  14. 6
      assets/locales/en.json
  15. 6
      assets/locales/eo.json
  16. 6
      assets/locales/es.json
  17. 6
      assets/locales/eu_ES.json
  18. 6
      assets/locales/fa_AF.json
  19. 6
      assets/locales/fa_IR.json
  20. 6
      assets/locales/fi_FI.json
  21. 6
      assets/locales/fo_FO.json
  22. 8
      assets/locales/fr_FR.json
  23. 6
      assets/locales/fur.json
  24. 6
      assets/locales/gl.json
  25. 6
      assets/locales/he_IL.json
  26. 6
      assets/locales/hi.json
  27. 6
      assets/locales/hr_HR.json
  28. 6
      assets/locales/hu_HU.json
  29. 6
      assets/locales/id_ID.json
  30. 6
      assets/locales/it.json
  31. 6
      assets/locales/ja.json
  32. 6
      assets/locales/ka_GE.json
  33. 6
      assets/locales/ko_KR.json
  34. 6
      assets/locales/lt_LT.json
  35. 6
      assets/locales/lv_LV.json
  36. 6
      assets/locales/mk_MK.json
  37. 6
      assets/locales/ms_MY.json
  38. 6
      assets/locales/nl.json
  39. 6
      assets/locales/nn_NO.json
  40. 6
      assets/locales/oc.json
  41. 6
      assets/locales/pl_PL.json
  42. 6
      assets/locales/ps.json
  43. 6
      assets/locales/pt_PT.json
  44. 6
      assets/locales/quz_PE.json
  45. 6
      assets/locales/ro_RO.json
  46. 6
      assets/locales/ru_RU.json
  47. 6
      assets/locales/sk_SK.json
  48. 6
      assets/locales/sl_SI.json
  49. 6
      assets/locales/so_SO.json
  50. 6
      assets/locales/sr_RS.json
  51. 6
      assets/locales/sv_SE.json
  52. 6
      assets/locales/sw_KE.json
  53. 6
      assets/locales/th.json
  54. 6
      assets/locales/tl_PH.json
  55. 6
      assets/locales/tr.json
  56. 6
      assets/locales/uk_UA.json
  57. 6
      assets/locales/vi_VN.json
  58. 6
      assets/locales/xh_ZA.json
  59. 6
      assets/locales/yo_NG.json
  60. 6
      assets/locales/zh_CN.json
  61. 6
      assets/locales/zh_TW.json
  62. 437
      public/main/auth/inscription.php
  63. 35
      public/main/inc/lib/usermanager.lib.php
  64. 2
      public/main/lp/lp_list.php
  65. 6
      src/CoreBundle/Resources/views/LearnPath/view.html.twig
  66. 6
      src/CoreBundle/Resources/views/Mailer/Legacy/content_registration_platform.html.twig
  67. 8
      src/CoreBundle/Resources/views/Mailer/Legacy/content_registration_platform_to_admin.html.twig
  68. 1
      tests/behat/features/toolForum.feature
  69. 16
      translations/messages.de.po
  70. 15
      translations/messages.fr.po
  71. 0
      var/cache/.gitkeep
  72. 2
      webpack.config.js

@ -233,60 +233,6 @@
@apply border-ch-text rounded-sm p-1;
}
// Learning paths menu brought in to use primary/secondary colors
.scorm_highlight .item {
background: url("../../public/img/scorm/scorm_highlight.png") no-repeat 10px center !important;
@apply bg-ch-secondary;
}
.scorm_highlight.scorm_completed .item {
background: url("../../public/img/scorm/scorm_current.png") no-repeat 10px center !important;
@apply bg-ch-secondary;
}
.scorm_highlight.scorm_failed .item {
background: url("../../public/img/scorm/scorm_failed.png") no-repeat 10px center !important;
@apply bg-ch-secondary;
}
.scorm_item_normal.scorm_highlight {
@apply bg-ch-secondary;
}
.scorm_item_normal.scorm_highlight.scorm_not_attempted {
background: url(../../public/img/icons/svg/check-not-attempted.svg) right center no-repeat;
@apply bg-ch-secondary;
}
.scorm_item_normal.scorm_highlight.scorm_completed {
background: url(../../public/img/icons/svg/check-highlight.svg) right center no-repeat;
@apply bg-ch-secondary;
}
.scorm_item_normal.scorm_highlight a {
color: #FFFFFF;
}
#learning_path_toc .root_item.lp_item_type_document.scorm_highlight{
background-color: #f1f4f9;
}
#learning_path_toc .child_item.lp_item_type_document.scorm_highlight{
background-color: #f1f4f9;
}
#learning_path_right_zone .lp-view-tabs .tab-content {
bottom: 0;
left: 0;
position: absolute;
top: 60px;
right: 0;
border: 1px solid #dddddd;
border-top: none;
}
.scorm_item_normal a.items-list {
color: #666666;
display: inline-block;
width: 100%;
}
.scorm_completed .item a{
@apply text-gray-500;
}
.scorm_completed .item a.scorm_highlighted{
@apply text-gray-50;
}
@import "scss/index.scss";
}

@ -696,6 +696,60 @@ body {
padding: 10px 0 10px 10px;
}
// Using preset styles from SCSS
.scorm_highlight .item {
background: url("../../public/img/scorm/scorm_highlight.png") no-repeat 10px center !important;
@apply bg-ch-secondary;
}
.scorm_highlight.scorm_completed .item {
background: url("../../public/img/scorm/scorm_current.png") no-repeat 10px center !important;
@apply bg-ch-secondary;
}
.scorm_highlight.scorm_failed .item {
background: url("../../public/img/scorm/scorm_failed.png") no-repeat 10px center !important;
@apply bg-ch-secondary;
}
.scorm_item_normal.scorm_highlight {
@apply bg-ch-secondary;
}
.scorm_item_normal.scorm_highlight.scorm_not_attempted {
background: url(../../public/img/icons/svg/check-not-attempted.svg) right center no-repeat;
@apply bg-ch-secondary;
}
.scorm_item_normal.scorm_highlight.scorm_completed {
background: url(../../public/img/icons/svg/check-highlight.svg) right center no-repeat;
@apply bg-ch-secondary;
}
.scorm_item_normal.scorm_highlight a {
color: #FFFFFF;
}
#learning_path_toc .root_item.lp_item_type_document.scorm_highlight{
background-color: #f1f4f9;
}
#learning_path_toc .child_item.lp_item_type_document.scorm_highlight{
background-color: #f1f4f9;
}
#learning_path_right_zone .lp-view-tabs .tab-content {
bottom: 0;
left: 0;
position: absolute;
top: 60px;
right: 0;
}
.scorm_item_normal a.items-list {
color: #666666;
display: inline-block;
width: 100%;
}
.scorm_completed .item a{
@apply text-gray-500;
}
.scorm_completed .item a.scorm_highlighted{
@apply text-gray-50;
}
/* END LP VIEW COLLAPSE */
/* Small devices (tablets, 768px and up) */
@media (min-width: 768px) {

@ -126,5 +126,9 @@
"Reporting": "\u0627\u0644\u062a\u0642\u0631\u064a\u0631",
"Learning paths": " \u0645\u0633\u0627\u0631 \u062a\u0639\u0644\u064a\u0645\u064a",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "\u062a\u0639\u062f\u064a\u0644 \u0627\u0644\u062d\u0633\u0627\u0628",
"Update profile": "Update profile",
"Firstname": "Firstname",
"Lastname": "Lastname"
}

@ -126,5 +126,9 @@
"Reporting": "Informes",
"Learning paths": "Itinerarios d'aprendizaxe",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "Editar informaci\u00f3n",
"Update profile": "Update profile",
"Firstname": "Firstname",
"Lastname": "Lastname"
}

@ -126,5 +126,9 @@
"Reporting": "\u0421\u043f\u0440\u0430\u0432\u043a\u0438",
"Learning paths": "\u041f\u044a\u0442\u0435\u043a\u0438 \u0437\u0430 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0430\u043d\u0435",
"Update profile": "Update profile",
"Firstname": "Firstname",
"Lastname": "Lastname"
}

@ -126,5 +126,9 @@
"Reporting": "",
"Learning paths": "",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "",
"Update profile": "Update profile",
"Firstname": "Firstname",
"Lastname": "Lastname"
}

@ -126,5 +126,9 @@
"Reporting": "",
"Learning paths": "",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "",
"Update profile": "Update profile",
"Firstname": "Firstname",
"Lastname": "Lastname"
}

@ -126,5 +126,9 @@
"Reporting": "",
"Learning paths": "",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "",
"Update profile": "Update profile",
"Firstname": "Firstname",
"Lastname": "Lastname"
}

@ -126,5 +126,9 @@
"Reporting": "Informes",
"Learning paths": "Itinerari formatiu",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "Editar informaci\u00f3",
"Update profile": "Update profile",
"Firstname": "Firstname",
"Lastname": "Lastname"
}

@ -126,5 +126,9 @@
"Reporting": "",
"Learning paths": "",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "",
"Update profile": "Update profile",
"Firstname": "Firstname",
"Lastname": "Lastname"
}

@ -126,5 +126,9 @@
"Reporting": "Rapportering",
"Learning paths": "L\u00e6ringssti",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "",
"Update profile": "Update profile",
"Firstname": "Firstname",
"Lastname": "Lastname"
}

@ -104,7 +104,7 @@
"Updated at": "Aktualsiert von",
"File": "Datei",
"From": "Von",
"Send date": "Send date",
"Send date": "Sendedatum",
"Sender": "Sender",
"To": "An",
"Cc": "Cc",
@ -126,5 +126,9 @@
"Reporting": "Auswertung",
"Learning paths": "Lernpfad",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "Profil bearbeiten",
"Update profile": "Profil aktualisieren",
"Firstname": "Vorname",
"Lastname": "Nachname"
}

@ -126,5 +126,9 @@
"Reporting": "\u0391\u03bd\u03b1\u03c6\u03bf\u03c1\u03ad\u03c2",
"Learning paths": "\u0395\u03ba\u03c0\u03b1\u03b9\u03b4\u03b5\u03c5\u03c4\u03b9\u03ba\u03ae \u0394\u03b9\u03b1\u03b4\u03c1\u03bf\u03bc\u03ae",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "\u0395\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1 \u03c0\u03c1\u03bf\u03c6\u03af\u03bb",
"Update profile": "Update profile",
"Firstname": "Firstname",
"Lastname": "Lastname"
}

@ -126,5 +126,9 @@
"Reporting": "Reporting",
"Learning paths": "Learning paths",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "Edit profile",
"Update profile": "Update profile",
"Firstname": "Firstname",
"Lastname": "Lastname"
}

@ -126,5 +126,9 @@
"Reporting": "",
"Learning paths": "Lernopado",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "",
"Update profile": "Update profile",
"Firstname": "Firstname",
"Lastname": "Lastname"
}

@ -126,5 +126,9 @@
"Reporting": "Informes",
"Learning paths": "Lecciones",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "Editar informaci\u00f3n",
"Update profile": "Update profile",
"Firstname": "Firstname",
"Lastname": "Lastname"
}

@ -126,5 +126,9 @@
"Reporting": "Txostenak",
"Learning paths": "Ikaskuntza ibilbideak",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "Editatu informazioa",
"Update profile": "Update profile",
"Firstname": "Firstname",
"Lastname": "Lastname"
}

@ -126,5 +126,9 @@
"Reporting": "",
"Learning paths": "",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "",
"Update profile": "Update profile",
"Firstname": "Firstname",
"Lastname": "Lastname"
}

@ -126,5 +126,9 @@
"Reporting": "\u06af\u0632\u0627\u0631\u0634 \u06af\u06cc\u0631\u06cc",
"Learning paths": "\u0645\u0633\u06cc\u0631 \u0622\u0645\u0648\u0632\u0634\u06cc",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "\u0648\u06cc\u0631\u0627\u06cc\u0634 \u0645\u0634\u062e\u0635\u0627\u062a",
"Update profile": "Update profile",
"Firstname": "Firstname",
"Lastname": "Lastname"
}

@ -126,5 +126,9 @@
"Reporting": "Raportointi",
"Learning paths": "Learning Path",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "Muokkaa profiilia",
"Update profile": "Update profile",
"Firstname": "Firstname",
"Lastname": "Lastname"
}

@ -126,5 +126,9 @@
"Reporting": "",
"Learning paths": "",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "",
"Update profile": "Update profile",
"Firstname": "Firstname",
"Lastname": "Lastname"
}

@ -104,7 +104,7 @@
"Updated at": "Mis \u00e0 jour \u00e0",
"File": "Fichier",
"From": "De",
"Send date": "Send date",
"Send date": "Date d'envoi",
"Sender": "Sender",
"To": "\u00c0",
"Cc": "Cc",
@ -126,5 +126,9 @@
"Reporting": "Suivi",
"Learning paths": "Parcours d'apprentissage",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "\u00c9diter le profil",
"Update profile": "Mettre \u00e0 jour le profil",
"Firstname": "Pr\u00e9nom",
"Lastname": "Nom"
}

@ -126,5 +126,9 @@
"Reporting": "Reporting",
"Learning paths": "Learning paths",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "Edit profile",
"Update profile": "Update profile",
"Firstname": "Firstname",
"Lastname": "Lastname"
}

@ -126,5 +126,9 @@
"Reporting": "Reporting",
"Learning paths": "Learning paths",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "Edit profile",
"Update profile": "Update profile",
"Firstname": "Firstname",
"Lastname": "Lastname"
}

@ -126,5 +126,9 @@
"Reporting": "",
"Learning paths": "",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "",
"Update profile": "Update profile",
"Firstname": "Firstname",
"Lastname": "Lastname"
}

@ -126,5 +126,9 @@
"Reporting": "",
"Learning paths": "",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "",
"Update profile": "Update profile",
"Firstname": "Firstname",
"Lastname": "Lastname"
}

@ -126,5 +126,9 @@
"Reporting": "Izvje\u0161tavanje",
"Learning paths": "Put u\u010denja",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "Uredi informacije",
"Update profile": "Update profile",
"Firstname": "Firstname",
"Lastname": "Lastname"
}

@ -126,5 +126,9 @@
"Reporting": "Jelent\u00e9s",
"Learning paths": "Tanul\u00e1si programok",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "",
"Update profile": "Update profile",
"Firstname": "Firstname",
"Lastname": "Lastname"
}

@ -126,5 +126,9 @@
"Reporting": "",
"Learning paths": "Learning path",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "",
"Update profile": "Update profile",
"Firstname": "Firstname",
"Lastname": "Lastname"
}

@ -126,5 +126,9 @@
"Reporting": "Registro",
"Learning paths": "Moduli didattici",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "Modifica le informazioni",
"Update profile": "Update profile",
"Firstname": "Firstname",
"Lastname": "Lastname"
}

@ -126,5 +126,9 @@
"Reporting": "\u30ec\u30dd\u30fc\u30c8\u4f5c\u6210",
"Learning paths": "\u5b66\u7fd2\u30d1\u30b9",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "",
"Update profile": "Update profile",
"Firstname": "Firstname",
"Lastname": "Lastname"
}

@ -126,5 +126,9 @@
"Reporting": "",
"Learning paths": "",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "",
"Update profile": "Update profile",
"Firstname": "Firstname",
"Lastname": "Lastname"
}

@ -126,5 +126,9 @@
"Reporting": "",
"Learning paths": "Learning path",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "",
"Update profile": "Update profile",
"Firstname": "Firstname",
"Lastname": "Lastname"
}

@ -126,5 +126,9 @@
"Reporting": "Reporting",
"Learning paths": "Teorin\u0117 kurso med\u017eiaga",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "",
"Update profile": "Update profile",
"Firstname": "Firstname",
"Lastname": "Lastname"
}

@ -126,5 +126,9 @@
"Reporting": "Atskaites",
"Learning paths": "M\u0101c\u012bbu gaita",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "Redi\u0123\u0113t profilu",
"Update profile": "Update profile",
"Firstname": "Firstname",
"Lastname": "Lastname"
}

@ -126,5 +126,9 @@
"Reporting": "\u0418\u0437\u0432\u0435\u0448\u0442\u0430\u0438",
"Learning paths": "\u041f\u0430\u0442\u0435\u043a\u0430 \u043d\u0430 \u0443\u0447\u0435\u045a\u0435\u0442\u043e",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "",
"Update profile": "Update profile",
"Firstname": "Firstname",
"Lastname": "Lastname"
}

@ -126,5 +126,9 @@
"Reporting": "",
"Learning paths": "Learning Path",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "",
"Update profile": "Update profile",
"Firstname": "Firstname",
"Lastname": "Lastname"
}

@ -126,5 +126,9 @@
"Reporting": "Rapportering",
"Learning paths": "Leerpad",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "Wijzig profiel",
"Update profile": "Update profile",
"Firstname": "Firstname",
"Lastname": "Lastname"
}

@ -126,5 +126,9 @@
"Reporting": "Rapportering",
"Learning paths": "L\u00e6ringssti",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "",
"Update profile": "Update profile",
"Firstname": "Firstname",
"Lastname": "Lastname"
}

@ -126,5 +126,9 @@
"Reporting": "Reporting",
"Learning paths": "Learning paths",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "Edit profile",
"Update profile": "Update profile",
"Firstname": "Firstname",
"Lastname": "Lastname"
}

@ -126,5 +126,9 @@
"Reporting": "Raporty",
"Learning paths": "\u015acie\u017cka nauczania",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "Edytuj profil",
"Update profile": "Update profile",
"Firstname": "Firstname",
"Lastname": "Lastname"
}

@ -126,5 +126,9 @@
"Reporting": "",
"Learning paths": "",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "",
"Update profile": "Update profile",
"Firstname": "Firstname",
"Lastname": "Lastname"
}

@ -126,5 +126,9 @@
"Reporting": "Relat\u00f3rio",
"Learning paths": "Cursos",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "Editar perfil",
"Update profile": "Update profile",
"Firstname": "Firstname",
"Lastname": "Lastname"
}

@ -126,5 +126,9 @@
"Reporting": "Reporting",
"Learning paths": "Learning paths",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "Edit profile",
"Update profile": "Update profile",
"Firstname": "Firstname",
"Lastname": "Lastname"
}

@ -126,5 +126,9 @@
"Reporting": "Reportaj",
"Learning paths": "Cale",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "Editati informatii",
"Update profile": "Update profile",
"Firstname": "Firstname",
"Lastname": "Lastname"
}

@ -126,5 +126,9 @@
"Reporting": "\u041e\u0442\u0447\u0435\u0442",
"Learning paths": "\u0423\u0447\u0435\u0431\u043d\u044b\u0439 \u043f\u043b\u0430\u043d",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "",
"Update profile": "Update profile",
"Firstname": "Firstname",
"Lastname": "Lastname"
}

@ -126,5 +126,9 @@
"Reporting": "Hl\u00e1senie",
"Learning paths": "U\u010debn\u00e1 osnova",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "Editova\u0165 profil",
"Update profile": "Update profile",
"Firstname": "Firstname",
"Lastname": "Lastname"
}

@ -126,5 +126,9 @@
"Reporting": "Poro\u010dila",
"Learning paths": "U\u010dna pot",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "Uredi informacije",
"Update profile": "Update profile",
"Firstname": "Firstname",
"Lastname": "Lastname"
}

@ -126,5 +126,9 @@
"Reporting": "",
"Learning paths": "",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "",
"Update profile": "Update profile",
"Firstname": "Firstname",
"Lastname": "Lastname"
}

@ -126,5 +126,9 @@
"Reporting": "Izve\u0161taji",
"Learning paths": "Putanja u\u010denja",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "Izmeni profil",
"Update profile": "Update profile",
"Firstname": "Firstname",
"Lastname": "Lastname"
}

@ -126,5 +126,9 @@
"Reporting": "Rapportering",
"Learning paths": "Inl\u00e4rningsv\u00e4gar",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "Redigera Profil",
"Update profile": "Update profile",
"Firstname": "Firstname",
"Lastname": "Lastname"
}

@ -126,5 +126,9 @@
"Reporting": "",
"Learning paths": "",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "",
"Update profile": "Update profile",
"Firstname": "Firstname",
"Lastname": "Lastname"
}

@ -126,5 +126,9 @@
"Reporting": "",
"Learning paths": "\u0e41\u0e1c\u0e19\u0e01\u0e32\u0e23\u0e40\u0e23\u0e35\u0e22\u0e19",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "",
"Update profile": "Update profile",
"Firstname": "Firstname",
"Lastname": "Lastname"
}

@ -126,5 +126,9 @@
"Reporting": "Pag-uulat",
"Learning paths": "Mga learning path",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "",
"Update profile": "Update profile",
"Firstname": "Firstname",
"Lastname": "Lastname"
}

@ -126,5 +126,9 @@
"Reporting": "",
"Learning paths": "Kurs yolu",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "",
"Update profile": "Update profile",
"Firstname": "Firstname",
"Lastname": "Lastname"
}

@ -126,5 +126,9 @@
"Reporting": "",
"Learning paths": "",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "",
"Update profile": "Update profile",
"Firstname": "Firstname",
"Lastname": "Lastname"
}

@ -126,5 +126,9 @@
"Reporting": "",
"Learning paths": "Qu\u00e1 tr\u00ecnh h\u1ecdc t\u1eadp",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "",
"Update profile": "Update profile",
"Firstname": "Firstname",
"Lastname": "Lastname"
}

@ -126,5 +126,9 @@
"Reporting": "",
"Learning paths": "",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "",
"Update profile": "Update profile",
"Firstname": "Firstname",
"Lastname": "Lastname"
}

@ -126,5 +126,9 @@
"Reporting": "",
"Learning paths": "",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "",
"Update profile": "Update profile",
"Firstname": "Firstname",
"Lastname": "Lastname"
}

@ -126,5 +126,9 @@
"Reporting": "\u62a5\u544a",
"Learning paths": "\u5b66\u4e60\u8def\u5f84",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "",
"Update profile": "Update profile",
"Firstname": "Firstname",
"Lastname": "Lastname"
}

@ -126,5 +126,9 @@
"Reporting": "\u5831\u544a",
"Learning paths": "\u5b78\u7fd2\u8def\u7dda",
"Diagnostic Form": "Diagnostic Form",
"Diagnosis Management": "Diagnosis Management"
"Diagnosis Management": "Diagnosis Management",
"Edit profile": "",
"Update profile": "Update profile",
"Firstname": "Firstname",
"Lastname": "Lastname"
}

@ -2,9 +2,10 @@
/* For licensing terms, see /license.txt */
use Chamilo\CoreBundle\Entity\User;
use Chamilo\CoreBundle\Framework\Container;
use ChamiloSession as Session;
require_once __DIR__.'/../inc/global.inc.php';
/**
* This script displays a form for registering new users.
*/
@ -13,7 +14,7 @@ use ChamiloSession as Session;
if (!empty($_POST['language'])) {
$_GET['language'] = $_POST['language'];
}
require_once __DIR__.'/../inc/global.inc.php';
$hideHeaders = isset($_GET['hide_headers']);
$allowedFields = [
@ -111,16 +112,7 @@ if ($isNotAllowedHere) {
api_not_allowed(true, get_lang('Sorry, you are trying to access the registration page for this portal, but registration is currently disabled. Please contact the administrator (see contact information in the footer). If you already have an account on this site.'));
}
if (!empty($_SESSION['user_language_choice'])) {
$user_selected_language = $_SESSION['user_language_choice'];
} elseif (!empty($_SESSION['_user']['language'])) {
$user_selected_language = $_SESSION['_user']['language'];
} else {
$user_selected_language = api_get_setting('platformLanguage');
}
$extraConditions = api_get_configuration_value('show_conditions_to_user');
if ($extraConditions && isset($extraConditions['conditions'])) {
// Create user extra fields for the conditions
$userExtraField = new ExtraField('user');
@ -133,10 +125,10 @@ if ($extraConditions && isset($extraConditions['conditions'])) {
'variable' => $condition['variable'],
'display_text' => $condition['display_text'],
'default_value' => '',
'visible_to_self' => true,
'visible_to_others' => false,
'changeable' => true,
'filter' => false,
'visible_to_self' => 0,
'visible_to_others' => 0,
'changeable' => 0,
'filter' => 0,
];
$userExtraField->save($params);
}
@ -144,12 +136,13 @@ if ($extraConditions && isset($extraConditions['conditions'])) {
}
$form = new FormValidator('registration');
$user_already_registered_show_terms = false;
$userAlreadyRegisteredShowTerms = false;
$termRegistered = Session::read('term_and_condition');
if ('true' === api_get_setting('allow_terms_conditions')) {
$user_already_registered_show_terms = isset($_SESSION['term_and_condition']['user_id']);
$userAlreadyRegisteredShowTerms = isset($termRegistered['user_id']);
// Ofaj change
if (true === api_is_anonymous()) {
$user_already_registered_show_terms = false;
$userAlreadyRegisteredShowTerms = false;
}
}
@ -176,7 +169,7 @@ if (!empty($course_code_redirect)) {
Session::write('exercise_redirect', $exercise_redirect);
}
if (false === $user_already_registered_show_terms &&
if (false === $userAlreadyRegisteredShowTerms &&
'false' !== api_get_setting('allow_registration')
) {
// EMAIL
@ -268,11 +261,18 @@ if (false === $user_already_registered_show_terms &&
$form->addRule('username', get_lang('This login is already in use'), 'username_available');
}
$passDiv = '<div id="password_progress"></div><div id="password-verdict"></div><div id="password-errors"></div>';
$checkPass = api_get_setting('allow_strength_pass_checker');
if ('true' === $checkPass) {
$checkPass = '';
}
// PASSWORD
$form->addElement(
'password',
'pass1',
get_lang('Pass'),
[get_lang('Pass'), $passDiv],
['id' => 'pass1', 'size' => 20, 'autocomplete' => 'off']
);
@ -289,6 +289,15 @@ if (false === $user_already_registered_show_terms &&
$form->addRule(['pass1', 'pass2'], get_lang('You have typed two different passwords'), 'compare');
$form->addPasswordRule('pass1');
if ($checkPass) {
$form->addRule(
'pass1',
get_lang('PassTooEasy').': '.api_generate_password(),
'callback',
'api_check_password'
);
}
// PHONE
if (in_array('phone', $allowedFields)) {
$form->addElement(
@ -297,7 +306,7 @@ if (false === $user_already_registered_show_terms &&
get_lang('Phone'),
['size' => 20]
);
if ('true' == api_get_setting('registration', 'phone')) {
if ('true' === api_get_setting('registration', 'phone')) {
$form->addRule(
'phone',
get_lang('Required field'),
@ -308,10 +317,12 @@ if (false === $user_already_registered_show_terms &&
// Language
if (in_array('language', $allowedFields)) {
if ('true' == api_get_setting('registration', 'language')) {
if ('true' === api_get_setting('registration', 'language')) {
$form->addSelectLanguage(
'language',
get_lang('Language')
get_lang('Language'),
[],
['id' => 'language']
);
}
}
@ -332,9 +343,32 @@ if (false === $user_already_registered_show_terms &&
}
}
// STUDENT/TEACHER
if ('false' != api_get_setting('allow_registration_as_teacher')) {
if (in_array('status', $allowedFields)) {
$form->addElement(
'radio',
'status',
get_lang('Profile'),
get_lang('RegStudent'),
STUDENT
);
$form->addElement(
'radio',
'status',
null,
get_lang('RegAdmin'),
COURSEMANAGER
);
}
}
$captcha = api_get_setting('allow_captcha');
$allowCaptcha = 'true' === $captcha;
// EXTENDED FIELDS
if ('true' == api_get_setting('extended_profile') &&
'true' == api_get_setting('extendedprofile_registration', 'mycomptetences')
if ('true' === api_get_setting('extended_profile') &&
'true' === api_get_setting('extendedprofile_registration', 'mycomptetences')
) {
$form->addHtmlEditor(
'competences',
@ -345,8 +379,8 @@ if (false === $user_already_registered_show_terms &&
);
}
if ('true' == api_get_setting('extended_profile') &&
'true' == api_get_setting('extendedprofile_registration', 'mydiplomas')
if ('true' === api_get_setting('extended_profile') &&
'true' === api_get_setting('extendedprofile_registration', 'mydiplomas')
) {
$form->addHtmlEditor(
'diplomas',
@ -357,8 +391,8 @@ if (false === $user_already_registered_show_terms &&
);
}
if ('true' == api_get_setting('extended_profile') &&
'true' == api_get_setting('extendedprofile_registration', 'myteach')
if ('true' === api_get_setting('extended_profile') &&
'true' === api_get_setting('extendedprofile_registration', 'myteach')
) {
$form->addHtmlEditor(
'teach',
@ -369,8 +403,8 @@ if (false === $user_already_registered_show_terms &&
);
}
if ('true' == api_get_setting('extended_profile') &&
'true' == api_get_setting('extendedprofile_registration', 'mypersonalopenarea')
if ('true' === api_get_setting('extended_profile') &&
'true' === api_get_setting('extendedprofile_registration', 'mypersonalopenarea')
) {
$form->addHtmlEditor(
'openarea',
@ -424,7 +458,6 @@ if (false === $user_already_registered_show_terms &&
$extraFieldList = $allowedFields['extra_fields'];
}
$requiredFields = api_get_configuration_value('required_extra_fields_in_inscription');
if (!empty($requiredFields) && $requiredFields['options']) {
$requiredFields = $requiredFields['options'];
}
@ -529,8 +562,14 @@ $form->applyFilter('__ALL__', 'Security::remove_XSS');
$form->setDefaults($defaults);
$content = null;
$tool_name = get_lang('Registration');
$user['language'] = 'french';
$userInfo = api_get_user_info();
if (!empty($userInfo)) {
$langInfo = api_get_language_from_iso($userInfo['language']);
$user['language'] = $langInfo->getEnglishName();
}
$toolName = get_lang('Registration');
// Load terms & conditions from the current lang
if ('true' === api_get_setting('allow_terms_conditions')) {
$get = array_keys($_GET);
@ -538,19 +577,20 @@ if ('true' === api_get_setting('allow_terms_conditions')) {
if (isset($get[0]) && 'legal' == $get[0]) {
$language = api_get_language_isocode();
$language = api_get_language_id($language);
$term_preview = LegalManager::get_last_condition($language);
if (!$term_preview) {
$termPreview = LegalManager::get_last_condition($language);
if (!$termPreview) {
//look for the default language
$language = api_get_setting('platformLanguage');
$language = api_get_language_id($language);
$term_preview = LegalManager::get_last_condition($language);
$termPreview = LegalManager::get_last_condition($language);
}
Display::display_header(get_lang('Terms and Conditions'));
if (!empty($term_preview['content'])) {
echo $term_preview['content'];
if (!empty($termPreview['content'])) {
echo $termPreview['content'];
$termExtraFields = new ExtraFieldValue('terms_and_condition');
$values = $termExtraFields->getAllValuesByItem($term_preview['id']);
$values = $termExtraFields->getAllValuesByItem($termPreview['id']);
foreach ($values as $value) {
echo '<h3>'.$value['display_text'].'</h3><br />'.$value['value'].'<br />';
}
@ -563,10 +603,8 @@ if ('true' === api_get_setting('allow_terms_conditions')) {
}
}
$tool_name = get_lang('Registration');
if ('true' === api_get_setting('allow_terms_conditions') && $user_already_registered_show_terms) {
$tool_name = get_lang('Terms and Conditions');
if ('true' === api_get_setting('allow_terms_conditions') && $userAlreadyRegisteredShowTerms) {
$toolName = get_lang('Terms and Conditions');
}
// Forbidden to self-register
@ -583,78 +621,148 @@ if ('approval' === api_get_setting('allow_registration')) {
$content .= Display::return_message(get_lang('Your account has to be approved'));
}
//if openid was not found
if (!empty($_GET['openid_msg']) && 'idnotfound' == $_GET['openid_msg']) {
$content .= Display::return_message(get_lang('OpenIDCouldNotBeFoundPleaseRegister'));
}
$blockButton = false;
$termActivated = false;
$showTerms = false;
// Terms and conditions
if ('true' === api_get_setting('allow_terms_conditions') && $user_already_registered_show_terms) {
if ('true' === api_get_setting('allow_terms_conditions')) {
if (!api_is_platform_admin()) {
if ('true' === api_get_setting('show_terms_if_profile_completed')) {
$userInfo = api_get_user_info();
if ('true' === api_get_setting('ticket.show_terms_if_profile_completed')) {
$userInfo = api_get_user_info(api_get_user_id());
if ($userInfo && ANONYMOUS != $userInfo['status']) {
$extraFieldValue = new ExtraFieldValue('user');
$value = $extraFieldValue->get_values_by_handler_and_field_variable(
api_get_user_id(),
'termactivated'
);
if (isset($value['value'])) {
$termActivated = !empty($value['value']) && 1 === (int) $value['value'];
}
if (false === $termActivated) {
$blockButton = true;
Display::addFlash(
Display::return_message(
get_lang('Term activated is needed description'),
'warning',
false
)
);
}
if (false === $blockButton) {
if (1 !== (int) $userInfo['profile_completed']) {
api_not_allowed(true);
$blockButton = true;
Display::addFlash(
Display::return_message(
get_lang('Term your profile is not completed'),
'warning',
false
)
);
}
}
}
}
}
// Get user language ignoring the platform language
// Ofaj
if (!api_is_anonymous()) {
$language = api_get_language_isocode();
$language = api_get_language_id($language);
$term_preview = LegalManager::get_last_condition($language);
if (!$term_preview) {
$termPreview = LegalManager::get_last_condition($language);
if (!$termPreview) {
//we load from the platform
$language = api_get_setting('platformLanguage');
$language = api_get_language_id($language);
$term_preview = LegalManager::get_last_condition($language);
$termPreview = LegalManager::get_last_condition($language);
//if is false we load from english
if (!$term_preview) {
if (!$termPreview) {
$language = api_get_language_id('english'); //this must work
$term_preview = LegalManager::get_last_condition($language);
$termPreview = LegalManager::get_last_condition($language);
}
}
// ofaj
if (false !== $termActivated) {
// Version and language
$form->addHidden('legal_accept_type', $term_preview['version'].':'.$term_preview['language_id']);
$form->addHidden('legal_info', $term_preview['id'].':'.$term_preview['language_id']);
$form->addElement(
'hidden',
'legal_accept_type',
$termPreview['version'].':'.$termPreview['language_id']
);
$form->addElement(
'hidden',
'legal_info',
$termPreview['id'].':'.$termPreview['language_id']
);
if (1 == $termPreview['type']) {
$form->addElement(
'checkbox',
'legal_accept',
null,
get_lang('IHaveReadAndAgree').'&nbsp;<a href="inscription.php?legal" target="_blank">'.
get_lang('TermsAndConditions').'</a>'
);
$form->addRule(
'legal_accept',
get_lang('ThisFieldIsRequired'),
'required'
);
} else {
$preview = LegalManager::show_last_condition($termPreview);
$form->addElement('label', null, $preview);
// Show if only HTML type
if ('2' == $term_preview['type']) {
$termExtraFields = new ExtraFieldValue('terms_and_condition');
$values = $termExtraFields->getAllValuesByItem($term_preview['id']);
$values = $termExtraFields->getAllValuesByItem($termPreview['id']);
foreach ($values as $value) {
//if ($value['variable'] === 'category') {
$form->addLabel($value['display_text'], $value['value']);
//}
}
}
}
}
}
if (1 == $term_preview['type']) {
$form->addElement(
'checkbox',
'legal_accept',
if (false === $userAlreadyRegisteredShowTerms) {
$form->addCheckBox(
'extra_platformuseconditions',
null,
get_lang('I have read and agree to the').'&nbsp;<a href="inscription.php?legal" target="_blank">'.get_lang(
'Terms and Conditions'
).'</a>'
get_lang('PlatformUseConditions')
);
$form->addRule(
'extra_platformuseconditions',
get_lang('ThisFieldIsRequired'),
'required'
);
$form->addRule('legal_accept', get_lang('We need you to accept our treatment of your data in order to provide you with this service. If you want to register an account, please accept the terms and click Submit. If you don\'t accept, no personal data will be treated by us about you.'), 'required');
} else {
$preview = LegalManager::show_last_condition($term_preview);
$form->addElement('label', null, $preview);
}
$showTerms = true;
}
$allowDoubleValidation = api_get_configuration_value('allow_double_validation_in_registration');
if ($blockButton) {
if (false !== $termActivated) {
$form->addButton(
'submit',
get_lang('RegisterUserOk'),
'check',
'primary',
null,
null,
['disabled' => 'disabled'],
false
);
}
} else {
$allow = api_get_configuration_value('allow_double_validation_in_registration');
$formContainsSendButton = false;
if ($allowDoubleValidation && false == $showTerms) {
if (false === $allow && $termActivated) {
$htmlHeadXtra[] = '<script>
$(function() {
$(document).ready(function() {
$("#pre_validation").click(function() {
$(this).hide();
$("#final_button").show();
@ -677,26 +785,10 @@ if ($allowDoubleValidation && false == $showTerms) {
);
$form->addButton('submit', get_lang('Register'), '', 'primary');
$form->addHtml('</div>');
$formContainsSendButton = true;
} else {
// In normal cases (without double validation), we check if the
// registration is allowed in any way or if the user is already registered
// but needs to confirm terms. If not, send not allowed message
if (
'approval' === api_get_setting('allow_registration') ||
'true' === api_get_setting('allow_registration') ||
'confirmation' === api_get_setting('allow_registration') ||
$user_already_registered_show_terms ||
$showTerms
) {
$form->addButtonNext(get_lang('Register'));
$formContainsSendButton = true;
} else {
$form->addButtonNext(get_lang('Register User'));
}
}
// Blocks page because there's any action to do.
if (!$formContainsSendButton) {
api_not_allowed(true);
$showTerms = true;
}
$course_code_redirect = Session::read('course_redirect');
@ -728,7 +820,7 @@ if ($extraConditions && $extraFieldsLoaded) {
}
}
$text_after_registration = '';
$textAfterRegistration = '';
if ($form->validate()) {
$values = $form->getSubmitValues(1);
// Make *sure* the login isn't too long
@ -748,12 +840,12 @@ if ($form->validate()) {
$values['username'] = $values['email'];
}
if ($user_already_registered_show_terms &&
if ($userAlreadyRegisteredShowTerms &&
'true' === api_get_setting('allow_terms_conditions')
) {
$user_id = $_SESSION['term_and_condition']['user_id'];
$is_admin = UserManager::is_admin($user_id);
Session::write('is_platformAdmin', $is_admin);
$userId = $termRegistered['user_id'];
$isAdmin = UserManager::is_admin($userId);
Session::write('is_platformAdmin', $isAdmin);
} else {
// Moved here to include extra fields when creating a user. Formerly placed after user creation
// Register extra fields
@ -762,14 +854,6 @@ if ($form->validate()) {
if ('extra_' == substr($key, 0, 6)) {
//an extra field
$extras[substr($key, 6)] = $value;
} elseif (false !== strpos($key, 'remove_extra_')) {
/*$extra_value = Security::filter_filename(urldecode(key($value)));
// To remove from user_field_value and folder
UserManager::update_extra_field_value(
$user_id,
substr($key, 13),
$extra_value
);*/
}
}
@ -790,7 +874,7 @@ if ($form->validate()) {
}
// Creates a new user
$user_id = UserManager::create_user(
$userId = UserManager::create_user(
$values['firstname'],
$values['lastname'],
(int) $status,
@ -807,17 +891,17 @@ if ($form->validate()) {
0,
$extras,
null,
false,
true,
false,
$values['address'],
false,
true,
$form,
$creatorId
);
// Update the extra fields
$count_extra_field = count($extras);
if ($count_extra_field > 0 && is_int($user_id)) {
$countExtraField = count($extras);
if ($countExtraField > 0 && is_int($userId)) {
foreach ($extras as $key => $value) {
// For array $value -> if exists key 'tmp_name' then must not be empty
// This avoid delete from user field value table when doesn't upload a file
@ -831,15 +915,15 @@ if ($form->validate()) {
if (array_key_exists('name', $value)) {
$value['name'] = Security::filter_filename($value['name']);
}
UserManager::update_extra_field_value($user_id, $key, $value);
UserManager::update_extra_field_value($userId, $key, $value);
}
} else {
UserManager::update_extra_field_value($user_id, $key, $value);
UserManager::update_extra_field_value($userId, $key, $value);
}
}
}
if ($user_id) {
if ($userId) {
// Storing the extended profile
$store_extended = false;
$sql = "UPDATE ".Database::get_main_table(TABLE_MAIN_USER)." SET ";
@ -874,7 +958,7 @@ if ($form->validate()) {
if ($store_extended) {
$sql .= implode(',', $sql_set);
$sql .= " WHERE user_id = ".intval($user_id)."";
$sql .= " WHERE user_id = ".intval($userId)."";
Database::query($sql);
}
@ -884,7 +968,7 @@ if ($form->validate()) {
if (!empty($sessionInfo)) {
SessionManager::subscribeUsersToSession(
$sessionToRedirect,
[$user_id],
[$userId],
SESSION_VISIBLE_READ_ONLY,
false
);
@ -904,7 +988,7 @@ if ($form->validate()) {
)
) {
CourseManager::subscribeUser(
$user_id,
$userId,
$course_info['real_id']
);
}
@ -915,39 +999,39 @@ if ($form->validate()) {
sent a mail to the platform admin and exit the page.*/
if ('approval' === api_get_setting('allow_registration')) {
// 1. Send mail to all platform admin
$chamiloUser = api_get_user_entity($user_id);
$chamiloUser = api_get_user_entity($userId);
MessageManager::sendNotificationOfNewRegisteredUserApproval($chamiloUser);
// 2. set account inactive
UserManager::disable($user_id);
UserManager::disable($userId);
// 3. exit the page
unset($user_id);
unset($userId);
Display::display_header($tool_name);
echo Display::page_header($tool_name);
Display::display_header($toolName);
echo Display::page_header($toolName);
echo $content;
Display::display_footer();
exit;
} elseif ('confirmation' === api_get_setting('allow_registration')) {
// 1. Send mail to the user
$thisUser = api_get_user_entity($user_id);
$thisUser = api_get_user_entity($userId);
UserManager::sendUserConfirmationMail($thisUser);
// 2. set account inactive
UserManager::disable($user_id);
UserManager::disable($userId);
// 3. exit the page
unset($user_id);
unset($userId);
Display::addFlash(
Display::return_message(
get_lang('YouNeedConfirmYourAccountViae-mailToAccessThePlatform'),
get_lang('You need confirm your accountViae - mail to access the platform'),
'warning'
)
);
Display::display_header($tool_name);
Display::display_header($toolName);
//echo $content;
Display::display_footer();
exit;
@ -964,7 +1048,7 @@ if ($form->validate()) {
$time = time();
$conditionToSave = (int) $cond_array[0].':'.(int) $cond_array[1].':'.$time;
UserManager::update_extra_field_value(
$user_id,
$userId,
'legal_accept',
$conditionToSave
);
@ -972,14 +1056,15 @@ if ($form->validate()) {
Event::addEvent(
LOG_TERM_CONDITION_ACCEPTED,
LOG_USER_OBJECT,
api_get_user_info($user_id),
api_get_user_info($userId),
api_get_utc_datetime()
);
$bossList = UserManager::getStudentBossList($user_id);
$bossList = UserManager::getStudentBossList($userId);
if (!empty($bossList)) {
$bossList = array_column($bossList, 'boss_id');
$currentUserInfo = api_get_user_info($user_id);
$currentUserInfo = api_get_user_info($userId);
$followUpPath = api_get_path(WEB_CODE_PATH).'admin/user_information.php?user_id='.$currentUserInfo['id'];
foreach ($bossList as $bossId) {
$subjectEmail = sprintf(
get_lang('User %s signed the agreement.'),
@ -995,23 +1080,23 @@ if ($form->validate()) {
$bossId,
$subjectEmail,
$contentEmail,
$user_id
$userId
);
}
}
}
}
$values = api_get_user_info($user_id);
$values = api_get_user_info($userId);
}
/* SESSION REGISTERING */
/* @todo move this in a function */
$_user['firstName'] = stripslashes($values['firstname']);
$_user['lastName'] = stripslashes($values['lastname']);
$_user['mail'] = $values['email'];
$_user['language'] = $values['language'];
$_user['user_id'] = $user_id;
Session::write('_user', $_user);
$user['firstName'] = stripslashes($values['firstname']);
$user['lastName'] = stripslashes($values['lastname']);
$user['mail'] = $values['email'];
$user['language'] = $values['language'];
$user['user_id'] = $userId;
Session::write('_user', $user);
$is_allowedCreateCourse = isset($values['status']) && 1 == $values['status'];
$usersCanCreateCourse = api_is_allowed_to_create_course();
@ -1025,13 +1110,13 @@ if ($form->validate()) {
$user_last_login_datetime = 0; // used as a unix timestamp it will correspond to : 1 1 1970
Session::write('user_last_login_datetime', $user_last_login_datetime);
$recipient_name = api_get_person_name($values['firstname'], $values['lastname']);
$text_after_registration =
$textAfterRegistration =
'<p>'.
get_lang('Dear').' '.
stripslashes(Security::remove_XSS($recipient_name)).',<br /><br />'.
get_lang('Your personal settings have been registered').".</p>";
$form_data = [
$formData = [
'button' => Display::button(
'next',
get_lang('Next'),
@ -1042,44 +1127,44 @@ if ($form->validate()) {
'go_button' => '',
];
if ('true' === api_get_setting('allow_terms_conditions') && $user_already_registered_show_terms) {
if ('true' === api_get_setting('allow_terms_conditions') && $userAlreadyRegisteredShowTerms) {
if ('login' === api_get_setting('load_term_conditions_section')) {
$form_data['action'] = api_get_path(WEB_PATH).'user_portal.php';
$formData['action'] = api_get_path(WEB_PATH).'user_portal.php';
} else {
$courseInfo = api_get_course_info();
if (!empty($courseInfo)) {
$form_data['action'] = $courseInfo['course_public_url'].'?id_session='.api_get_session_id();
$formData['action'] = $courseInfo['course_public_url'].'?id_session='.api_get_session_id();
$cidReset = true;
Session::erase('_course');
Session::erase('_cid');
} else {
$form_data['action'] = api_get_path(WEB_PATH).'user_portal.php';
$formData['action'] = api_get_path(WEB_PATH).'user_portal.php';
}
}
} else {
if (!empty($values['email'])) {
$text_after_registration .= '<p>'.get_lang('An e-mail has been sent to remind you of your login and password').'.</p>';
$textAfterRegistration .= '<p>'.get_lang('An e-mail has been sent to remind you of your login and password').'.</p>';
}
if ($is_allowedCreateCourse) {
if ($usersCanCreateCourse) {
$form_data['message'] = '<p>'.get_lang('You can now create your course').'</p>';
$formData['message'] = '<p>'.get_lang('You can now create your course').'</p>';
}
$form_data['action'] = api_get_path(WEB_CODE_PATH).'create_course/add_course.php';
$formData['action'] = api_get_path(WEB_CODE_PATH).'create_course/add_course.php';
if ('true' === api_get_setting('course_validation')) {
$form_data['button'] = Display::button(
$formData['button'] = Display::button(
'next',
get_lang('Create a course request'),
['class' => 'btn btn-primary btn-large']
);
} else {
$form_data['button'] = Display::button(
$formData['button'] = Display::button(
'next',
get_lang('Create a course'),
['class' => 'btn btn-primary btn-large']
);
$form_data['go_button'] = '&nbsp;&nbsp;<a href="'.api_get_path(WEB_PATH).'index.php'.'">'.
$formData['go_button'] = '&nbsp;&nbsp;<a href="'.api_get_path(WEB_PATH).'index.php'.'">'.
Display::span(
get_lang('Next'),
['class' => 'btn btn-primary btn-large']
@ -1087,12 +1172,12 @@ if ($form->validate()) {
}
} else {
if ('true' == api_get_setting('allow_students_to_browse_courses')) {
$form_data['action'] = 'courses.php?action=subscribe';
$form_data['message'] = '<p>'.get_lang('You can now select, in the list, the course you want access to').".</p>";
$formData['action'] = 'courses.php?action=subscribe';
$formData['message'] = '<p>'.get_lang('You can now select, in the list, the course you want access to').".</p>";
} else {
$form_data['action'] = api_get_path(WEB_PATH).'user_portal.php';
$formData['action'] = api_get_path(WEB_PATH).'user_portal.php';
}
$form_data['button'] = Display::button(
$formData['button'] = Display::button(
'next',
get_lang('Next'),
['class' => 'btn btn-primary btn-large']
@ -1111,27 +1196,27 @@ if ($form->validate()) {
$redirectBuyCourse = Session::read('buy_course_redirect');
if (!empty($redirectBuyCourse)) {
$form_data['action'] = api_get_path(WEB_PATH).$redirectBuyCourse;
$formData['action'] = api_get_path(WEB_PATH).$redirectBuyCourse;
Session::erase('buy_course_redirect');
}
$form_data = CourseManager::redirectToCourse($form_data);
$form_register = new FormValidator('form_register', 'post', $form_data['action']);
if (!empty($form_data['message'])) {
$form_register->addElement('html', $form_data['message'].'<br /><br />');
$formData = CourseManager::redirectToCourse($formData);
$formRegister = new FormValidator('form_register', 'post', $formData['action']);
if (!empty($formData['message'])) {
$formRegister->addElement('html', $formData['message'].'<br /><br />');
}
if ($usersCanCreateCourse) {
$form_register->addElement('html', $form_data['button']);
$formRegister->addElement('html', $formData['button']);
} else {
if (!empty($redirectBuyCourse)) {
$form_register->addButtonNext(get_lang('Next'));
$formRegister->addButtonNext(get_lang('Next'));
} else {
$form_register->addElement('html', $form_data['go_button']);
$formRegister->addElement('html', $formData['go_button']);
}
}
$text_after_registration .= $form_register->returnForm();
$textAfterRegistration .= $formRegister->returnForm();
// Just in case
Session::erase('course_redirect');
@ -1139,11 +1224,11 @@ if ($form->validate()) {
Session::erase('session_redirect');
Session::erase('only_one_course_session_redirect');
$tpl = new Template($tool_name);
$tpl->assign('inscription_header', Display::page_header($tool_name));
$tpl = new Template($toolName);
$tpl->assign('inscription_header', Display::page_header($toolName));
$tpl->assign('inscription_content', $content);
$tpl->assign('form', '');
$tpl->assign('text_after_registration', $text_after_registration);
$tpl->assign('text_after_registration', $textAfterRegistration);
$tpl->assign('hide_header', $hideHeaders);
$inscription = $tpl->get_template('auth/inscription.tpl');
$tpl->display($inscription);
@ -1171,16 +1256,16 @@ if ($form->validate()) {
CourseManager::redirectToCourse([]);
}
$tpl = new Template($tool_name);
$tpl->assign('inscription_header', Display::page_header($tool_name));
$tpl = new Template($toolName);
$inscriptionHeader = '';
if (false !== $termActivated) {
$inscriptionHeader = Display::page_header($toolName);
}
$tpl->assign('inscription_header', $inscriptionHeader);
$tpl->assign('inscription_content', $content);
$tpl->assign('form', $form->returnForm());
$tpl->assign('hide_header', $hideHeaders);
$tpl->assign('text_after_registration', $text_after_registration);
//$page = Container::getPage('inscription');
//$tpl->assign('page', $page);
$tpl->assign('text_after_registration', $textAfterRegistration);
$inscription = $tpl->get_template('auth/inscription.tpl');
$tpl->display($inscription);
}

@ -90,17 +90,17 @@ class UserManager
* @param string $email
* @param string $loginName
* @param string $password
* @param string $official_code Any official code (optional)
* @param string $officialCode Any official code (optional)
* @param string $language User language (optional)
* @param string $phone Phone number (optional)
* @param string $picture_uri Picture URI (optional)
* @param string $pictureUri Picture URI (optional)
* @param string $authSource Authentication source (defaults to 'platform', dependind on constant)
* @param string $expirationDate Account expiration date (optional, defaults to null)
* @param int $active Whether the account is enabled or disabled by default
* @param int $hr_dept_id The department of HR in which the user is registered (defaults to 0)
* @param int $hrDeptId The department of HR in which the user is registered (defaults to 0)
* @param array $extra Extra fields (labels must be prefixed by "extra_")
* @param string $encrypt_method Used if password is given encrypted. Set to an empty string by default
* @param bool $send_mail
* @param string $encryptMethod Used if password is given encrypted. Set to an empty string by default
* @param bool $sendMail
* @param bool $isAdmin
* @param string $address
* @param bool $sendEmailToAllAdmins
@ -122,17 +122,17 @@ class UserManager
$email,
$loginName,
$password,
$official_code = '',
$officialCode = '',
$language = '',
$phone = '',
$picture_uri = '',
$pictureUri = '',
$authSource = null,
$expirationDate = null,
$active = 1,
$hr_dept_id = 0,
$hrDeptId = 0,
$extra = [],
$encrypt_method = '',
$send_mail = false,
$encryptMethod = '',
$sendMail = false,
$isAdmin = false,
$address = '',
$sendEmailToAllAdmins = false,
@ -273,14 +273,14 @@ class UserManager
->setStatus($status)
->setPlainPassword($password)
->setEmail($email)
->setOfficialCode($official_code)
->setOfficialCode($officialCode)
->setCreatorId($creatorId)
->setAuthSource($authSource)
->setPhone($phone)
->setAddress($address)
->setLocale($language)
->setRegistrationDate($now)
->setHrDeptId($hr_dept_id)
->setHrDeptId($hrDeptId)
->setActive($active)
->setEnabled($active)
->setTimezone(api_get_timezone())
@ -368,7 +368,7 @@ class UserManager
RedirectionPlugin::insert($userId, $redirectToURLAfterLogin);
}
if (!empty($email) && $send_mail) {
if (!empty($email) && $sendMail) {
$recipient_name = api_get_person_name(
$firstName,
$lastName,
@ -403,8 +403,16 @@ class UserManager
'original_password' => stripslashes($original_password),
'mailWebPath' => $url,
'new_user' => $user,
'search_link' => $url,
];
// ofaj
if ('true' === api_get_setting('session.allow_search_diagnostic')) {
$urlSearch = api_get_path(WEB_CODE_PATH).'search/search.php';
$linkSearch = Display::url($urlSearch, $urlSearch);
$params['search_link'] = $linkSearch;
}
$emailBody = $tpl->render(
'@ChamiloCore/Mailer/Legacy/content_registration_platform.html.twig',
$params
@ -536,6 +544,7 @@ class UserManager
'user_added' => $user,
'link' => Display::url($url, $url),
'form' => $formData,
'user_language' => $user->getLocale(),
];
$emailBody = $tpl->render(
'@ChamiloCore/Mailer/Legacy/content_registration_platform_to_admin.html.twig',

@ -153,7 +153,7 @@ $hideScormPdfLink = api_get_setting('hide_scorm_pdf_link');
$options = learnpath::getIconSelect();
$cidReq = api_get_cidreq();
$defaultLpIcon = Display::getMdiIcon('map-market-path', 'ch-tool-icon', '', 22, get_lang('Learning path name'));
$defaultLpIcon = Display::getMdiIcon('map-marker-path', 'ch-tool-icon', '', 22, get_lang('Learning path name'));
$defaultDisableLpIcon = Display::getMdiIcon('map-marker-path', 'ch-tool-icon-disabled', '', 22, get_lang('Learning path name'));

@ -164,7 +164,7 @@
{% endfor %}
</div>
</div>
<ul id="navTabs" class="nav nav-tabs tabs-right" role="tablist">
<!--ul id="navTabs" class="nav nav-tabs tabs-right" role="tablist">
<li role="presentation" class="active">
<a href="#lp-view-content" title="{{ 'Lesson'|trans }}"
aria-controls="lp-view-content" role="tab" data-toggle="tab">
@ -179,7 +179,7 @@
<span class="sr-only">{{ 'Forum'|trans }}</span>
</a>
</li>
</ul>
</ul-->
</div>
{% include '@ChamiloCore/LearnPath/menubar.html.twig' %}
@ -244,7 +244,7 @@
$('.menu-button').css('color', '#000');
}
});
if (/iPhone|iPod|iPad|Safari/.test(navigator.userAgent)) {
if (/iPhone|iPod|iPad/.test(navigator.userAgent)) {
// Fix an issue where you cannot scroll below first screen in
// learning paths on Apple devices
document.getElementById('wrapper-iframe').setAttribute(

@ -1,9 +1,11 @@
{% autoescape false %}
<p>{{ 'Dear'|trans }} {{ complete_name }},</p>
<p>{{ 'Welcome to this platform'|trans }}</p>
<p>{{ 'You are registered to'|trans }} {{ 'platform.site_name' | api_get_setting }} {{ 'with the following settings:'|trans }}</p>
<p>{{ 'Username'|trans }} : {{ login_name }}<br>
{{ 'Pass'|trans }} : {{ original_password }}</p>
<p>{{ 'Thanks for registering to %s.'|trans|format('platform.site_name' | api_get_setting) }}</p>
<p>{{ 'Address'|trans }} {{ 'platform.site_name' | api_get_setting }} {{ 'is'|trans }} : {{ mailWebPath }}</p>
<p>{{ 'For more details visit %s'|trans|format(search_link) }}</p>
<p>{{ 'In case of trouble, contact us.'|trans }}</p>
{% include '@ChamiloCore/Mailer/Legacy/_admin_signature_footer.html.twig' %}
{% endautoescape %}

@ -1,5 +1,6 @@
<p>{{ 'UserXWithLangXRegisteredTheSite'| trans | format(user_added.completeName, user_added.language) }} </p>
<p>{{ 'HisProfileIs'| trans }} </p>
{% autoescape false %}
<p>{{ 'User %s with language %s registered to the site'|trans|format(complete_name, user_language) }} </p>
<p>{{ 'His profile is'|trans }} </p>
<div class="row">
<div class="col-xs-12 col-md-12">
<div class="form-horizontal">
@ -8,6 +9,7 @@
</div>
</div>
<p>{{ 'YouCanAssignATutorInThisLinkX'|trans | format(link)}} </p>
<p>{{ 'You can assign a tutor in this link %s'|trans|format(link)}} </p>
{% include '@ChamiloCore/Mailer/Legacy/_admin_signature_footer.html.twig' %}
{% endautoescape %}

@ -20,6 +20,7 @@ Feature: Forum tool
| forum_title | Forum Test |
And I fill in editor field "forum_comment" with "This is the first forum for test"
And I press "SubmitForum"
And wait very long for the page to be loaded
Then I should see "The forum has been added"
Scenario: Create a forum thread

@ -24079,3 +24079,19 @@ msgstr "Eingeloggt bleiben"
msgid "Register oneself"
msgstr "Registrieren"
msgid "Send date"
msgstr "Sendedatum"
msgid "Edit profile"
msgstr "Profil bearbeiten"
msgid "Update profile"
msgstr "Profil aktualisieren"
msgid "Firstname"
msgstr "Vorname"
msgid "Lastname"
msgstr "Nachname"

@ -24100,3 +24100,18 @@ msgstr "Ajoutez une introduction de cours pour vos apprenants."
msgid "See as student"
msgstr "Voir comme apprenant"
msgid "Send date"
msgstr "Date d'envoi"
msgid "Edit profile"
msgstr "Éditer le profil"
msgid "Update profile"
msgstr "Mettre à jour le profil"
msgid "Firstname"
msgstr "Prénom"
msgid "Lastname"
msgstr "Nom"

@ -37,7 +37,7 @@ Encore
.addStyleEntry('css/markdown', './assets/css/markdown.css')
.addStyleEntry('css/print', './assets/css/print.css')
.addStyleEntry('css/responsive', './assets/css/responsive.css')
.addStyleEntry('css/scorm', './assets/css/scorm.css')
.addStyleEntry('css/scorm', './assets/css/scorm.scss')
.enableSingleRuntimeChunk()
.enableIntegrityHashes()

Loading…
Cancel
Save