ソースを参照

Merge branch '1.10.x' into bootstrap

aragonc 10 年 前
コミット
4651041223
100 ファイル変更1521 行追加791 行削除
  1. 20 14
      .travis.yml
  2. 6 2
      composer.json
  3. 634 53
      composer.lock
  4. 69 0
      documentation/changelog.html
  5. 4 4
      main/admin/index.php
  6. 1 2
      main/admin/user_edit.php
  7. 1 1
      main/admin/user_list.php
  8. 1 1
      main/attendance/index.php
  9. 2 2
      main/css/base.css
  10. 1 12
      main/css/chamilo/default.css
  11. 450 403
      main/exercice/hotspot_admin.inc.php
  12. 107 94
      main/exercice/matching.class.php
  13. BIN
      main/img/icons/128/survey_reporting_overall.png
  14. BIN
      main/img/icons/16/survey_reporting_overall.png
  15. BIN
      main/img/icons/22/survey_reporting_overall.png
  16. BIN
      main/img/icons/32/survey_reporting_overall.png
  17. BIN
      main/img/icons/48/survey_reporting_overall.png
  18. BIN
      main/img/icons/64/survey_reporting_overall.png
  19. 1 1
      main/inc/introductionSection.inc.php
  20. 1 1
      main/inc/lib/custom_pages.class.php
  21. 93 46
      main/inc/lib/internationalization.lib.php
  22. 1 1
      main/inc/lib/pear/HTML/QuickForm/button.php
  23. 3 3
      main/inc/lib/userportal.lib.php
  24. 3 0
      main/install/configuration.dist.php
  25. 49 49
      main/install/install_db.inc.php
  26. 36 15
      main/install/install_files.inc.php
  27. 0 2
      main/lang/arabic/admin.inc.php
  28. 1 0
      main/lang/arabic/trad4all.inc.php
  29. 0 2
      main/lang/asturian/admin.inc.php
  30. 0 1
      main/lang/asturian/gradebook.inc.php
  31. 1 0
      main/lang/asturian/trad4all.inc.php
  32. 0 2
      main/lang/asturian/userInfo.inc.php
  33. 0 2
      main/lang/basque/admin.inc.php
  34. 0 1
      main/lang/basque/gradebook.inc.php
  35. 1 0
      main/lang/basque/trad4all.inc.php
  36. 0 2
      main/lang/basque/userInfo.inc.php
  37. 0 2
      main/lang/brazilian/admin.inc.php
  38. 0 1
      main/lang/brazilian/gradebook.inc.php
  39. 1 0
      main/lang/brazilian/trad4all.inc.php
  40. 0 2
      main/lang/brazilian/userInfo.inc.php
  41. 0 2
      main/lang/bulgarian/admin.inc.php
  42. 0 1
      main/lang/bulgarian/gradebook.inc.php
  43. 1 0
      main/lang/bulgarian/trad4all.inc.php
  44. 0 1
      main/lang/bulgarian/userInfo.inc.php
  45. 0 2
      main/lang/catalan/admin.inc.php
  46. 0 1
      main/lang/catalan/gradebook.inc.php
  47. 1 0
      main/lang/catalan/trad4all.inc.php
  48. 0 2
      main/lang/catalan/userInfo.inc.php
  49. 0 2
      main/lang/croatian/admin.inc.php
  50. 0 1
      main/lang/croatian/gradebook.inc.php
  51. 1 0
      main/lang/croatian/trad4all.inc.php
  52. 0 2
      main/lang/czech/admin.inc.php
  53. 1 0
      main/lang/czech/trad4all.inc.php
  54. 0 2
      main/lang/danish/admin.inc.php
  55. 1 0
      main/lang/danish/trad4all.inc.php
  56. 0 2
      main/lang/dutch/admin.inc.php
  57. 0 1
      main/lang/dutch/gradebook.inc.php
  58. 1 0
      main/lang/dutch/trad4all.inc.php
  59. 0 2
      main/lang/dutch/userInfo.inc.php
  60. 0 2
      main/lang/english/admin.inc.php
  61. 0 1
      main/lang/english/gradebook.inc.php
  62. 8 1
      main/lang/english/trad4all.inc.php
  63. 0 2
      main/lang/english/userInfo.inc.php
  64. 0 2
      main/lang/esperanto/admin.inc.php
  65. 1 0
      main/lang/esperanto/trad4all.inc.php
  66. 0 2
      main/lang/french/admin.inc.php
  67. 0 1
      main/lang/french/gradebook.inc.php
  68. 1 1
      main/lang/french/registration.inc.php
  69. 9 0
      main/lang/french/trad4all.inc.php
  70. 0 2
      main/lang/french/userInfo.inc.php
  71. 0 2
      main/lang/galician/admin.inc.php
  72. 0 1
      main/lang/galician/gradebook.inc.php
  73. 1 0
      main/lang/galician/trad4all.inc.php
  74. 0 2
      main/lang/galician/userInfo.inc.php
  75. 0 2
      main/lang/german/admin.inc.php
  76. 0 1
      main/lang/german/gradebook.inc.php
  77. 1 0
      main/lang/german/trad4all.inc.php
  78. 0 2
      main/lang/german/userInfo.inc.php
  79. 0 2
      main/lang/greek/admin.inc.php
  80. 0 1
      main/lang/greek/gradebook.inc.php
  81. 1 0
      main/lang/greek/trad4all.inc.php
  82. 0 2
      main/lang/greek/userInfo.inc.php
  83. 0 2
      main/lang/hungarian/admin.inc.php
  84. 0 1
      main/lang/hungarian/gradebook.inc.php
  85. 1 0
      main/lang/hungarian/trad4all.inc.php
  86. 0 2
      main/lang/indonesian/admin.inc.php
  87. 1 0
      main/lang/indonesian/trad4all.inc.php
  88. 0 2
      main/lang/italian/admin.inc.php
  89. 0 1
      main/lang/italian/gradebook.inc.php
  90. 1 0
      main/lang/italian/trad4all.inc.php
  91. 0 2
      main/lang/italian/userInfo.inc.php
  92. 0 1
      main/lang/korean/admin.inc.php
  93. 0 2
      main/lang/latvian/admin.inc.php
  94. 0 1
      main/lang/latvian/gradebook.inc.php
  95. 1 0
      main/lang/latvian/trad4all.inc.php
  96. 0 2
      main/lang/latvian/userInfo.inc.php
  97. 0 2
      main/lang/lithuanian/admin.inc.php
  98. 1 0
      main/lang/lithuanian/trad4all.inc.php
  99. 0 2
      main/lang/macedonian/admin.inc.php
  100. 1 0
      main/lang/macedonian/trad4all.inc.php

+ 20 - 14
.travis.yml

@@ -27,19 +27,25 @@ before_script:
   - sudo sed -e "s?%TRAVIS_BUILD_DIR%?$(pwd)?g" --in-place /etc/apache2/sites-available/default
   - sudo service apache2 restart
   # install Chash, a database, and then install Chamilo
-  - git clone https://github.com/chamilo/chash
-  - cd chash
-  - composer install
-  - composer update
-  - php5 -d phar.readonly=0 createPhar.php
-  - chmod +x chash.phar
-  - sudo mv chash.phar /usr/local/bin/chash
-  - cd ..
-  - mysql -e 'create database chamilo'
-  - mysql -u root -e 'grant all privileges on chamilo.* to chamilo@localhost identified by "chamilo"'
-  - mysql -u root -e 'flush privileges'
+  #- git clone https://github.com/chamilo/chash
+  #- cd chash
+  #- composer install
+  #- composer update
+  #- php5 -d phar.readonly=0 createPhar.php
+  #- chmod +x chash.phar
+  #- sudo mv chash.phar /usr/local/bin/chash
+  #- cd ..
+  - git clone -b nophpversioncheck --single-branch https://github.com/ywarnier/chamilo-cli-install.git
+  - cp chamilo-cli-install/chamilo-cli-installer.php main/install/
+  - mysql -u root -e 'create database chamilo'
   # install Chamilo with Chash - see reference https://github.com/sonnym/travis-ci-drupal-module-example/blob/master/.travis.yml
-  - sudo chash chash:chamilo_install --no-interaction --sitename="Chamilo" --site_url="http://localhost/" --institution="Chamilo" --institution_url="https://chamilo.org" --encrypt_method="sha1" --firstname="John" --lastname="Doe" --language="english" --driver="pdo_mysql" --host="localhost" --port="3306" --dbname="chamilo" --dbuser="chamilo" --dbpassword="chamilo" --permissions_for_new_directories="0777" --permissions_for_new_files="0666" --username="admin" --password="admin" --email="admin@example.com" --phone="555-5555" 1.10.x $(pwd)
+  - sudo chmod -R 0777 archive courses home main/upload/ main/default_course_document/images main/inc/conf searchdb main/lang main/css
+  - cd main/install/
+  - sudo php5 chamilo-cli-installer.php -l admin -p admin -U travis -u 'http://localhost/' -X travis -L english -z 'admin@example.com' -f 'John' -g 'Doe' -b '555-5555' -c 'Test campus' -y 'Chamilo' -x 'https://chamilo.org'
+  - cd ../..
+  #- sudo chash chash:chamilo_install --no-interaction --sitename="Chamilo" --site_url="http://localhost/" --institution="Chamilo" --institution_url="https://chamilo.org" --encrypt_method="sha1" --firstname="John" --lastname="Doe" --language="english" --dbname="chamilo" --dbuser="root" --permissions_for_new_directories="0777" --permissions_for_new_files="0666" --username="admin" --password="admin" --email="admin@example.com" --phone="555-5555" 1.10.0 /home/travis/build/chamilo/chamilo-lms
 
-
-script: phpunit -c tests/phpunit
+script:
+  # - phpunit -c tests/phpunit
+  # pwd shows /home/travis/build/chamilo/chamilo-lms
+  - cd tests && ../vendor/behat/behat/bin/behat -v

+ 6 - 2
composer.json

@@ -66,8 +66,12 @@
         "bower-asset/jqueryui-timepicker-addon": "1.5.*"
     },
     "require-dev": {
-        "behat/behat": "2.4.*@stable",
-        "behat/mink-extension": "*@stable"
+        "behat/behat": "2.5.*@stable",
+        "behat/mink": "1.4.*@stable",
+        "behat/mink-extension": "*",
+        "behat/mink-goutte-driver": "*",
+        "behat/mink-selenium2-driver": "*"
+
     },
     "extra": {
         "branch-alias": {

+ 634 - 53
composer.lock

@@ -4,7 +4,7 @@
         "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
         "This file is @generated automatically"
     ],
-    "hash": "9412d5125c2c1b803ab2ae7a9e587a4b",
+    "hash": "c1bdbb1ceca6a8e673906d73c5a9bad5",
     "packages": [
         {
             "name": "aferrandini/phpqrcode",
@@ -3370,17 +3370,17 @@
         },
         {
             "name": "symfony/finder",
-            "version": "v2.3.26",
+            "version": "v2.6.5",
             "target-dir": "Symfony/Component/Finder",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/Finder.git",
-                "reference": "97f661a53e4f5f5739f84531ff273ba2121a3831"
+                "reference": "bebc7479c566fa4f14b9bcef9e32e719eabec74e"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/Finder/zipball/97f661a53e4f5f5739f84531ff273ba2121a3831",
-                "reference": "97f661a53e4f5f5739f84531ff273ba2121a3831",
+                "url": "https://api.github.com/repos/symfony/Finder/zipball/bebc7479c566fa4f14b9bcef9e32e719eabec74e",
+                "reference": "bebc7479c566fa4f14b9bcef9e32e719eabec74e",
                 "shasum": ""
             },
             "require": {
@@ -3392,7 +3392,7 @@
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "2.3-dev"
+                    "dev-master": "2.6-dev"
                 }
             },
             "autoload": {
@@ -3416,7 +3416,7 @@
             ],
             "description": "Symfony Finder Component",
             "homepage": "http://symfony.com",
-            "time": "2015-03-07 19:12:23"
+            "time": "2015-03-12 10:28:44"
         },
         {
             "name": "symfony/form",
@@ -5047,20 +5047,20 @@
     "packages-dev": [
         {
             "name": "behat/behat",
-            "version": "v2.4.6",
+            "version": "v2.5.4",
             "source": {
                 "type": "git",
                 "url": "https://github.com/Behat/Behat.git",
-                "reference": "f1d2964667cf4b21bb6c2c1564f26829a6954155"
+                "reference": "ba257dd19d47b6e196c4e43995a2d2db4dd95991"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/Behat/Behat/zipball/f1d2964667cf4b21bb6c2c1564f26829a6954155",
-                "reference": "f1d2964667cf4b21bb6c2c1564f26829a6954155",
+                "url": "https://api.github.com/repos/Behat/Behat/zipball/ba257dd19d47b6e196c4e43995a2d2db4dd95991",
+                "reference": "ba257dd19d47b6e196c4e43995a2d2db4dd95991",
                 "shasum": ""
             },
             "require": {
-                "behat/gherkin": "~2.2.9",
+                "behat/gherkin": "~2.3.0",
                 "php": ">=5.3.1",
                 "symfony/config": "~2.0",
                 "symfony/console": "~2.0",
@@ -5082,11 +5082,6 @@
                 "bin/behat"
             ],
             "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-develop": "2.4-dev"
-                }
-            },
             "autoload": {
                 "psr-0": {
                     "Behat\\Behat": "src/"
@@ -5110,30 +5105,30 @@
                 "Behat",
                 "Symfony2"
             ],
-            "time": "2013-06-06 10:46:48"
+            "time": "2015-01-23 22:18:15"
         },
         {
             "name": "behat/gherkin",
-            "version": "v2.2.9",
+            "version": "v2.3.5",
             "source": {
                 "type": "git",
                 "url": "https://github.com/Behat/Gherkin.git",
-                "reference": "cca2c477921ca38578d6e9759ea5e450f29c2d8f"
+                "reference": "2b33963da5525400573560c173ab5c9c057e1852"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/Behat/Gherkin/zipball/cca2c477921ca38578d6e9759ea5e450f29c2d8f",
-                "reference": "cca2c477921ca38578d6e9759ea5e450f29c2d8f",
+                "url": "https://api.github.com/repos/Behat/Gherkin/zipball/2b33963da5525400573560c173ab5c9c057e1852",
+                "reference": "2b33963da5525400573560c173ab5c9c057e1852",
                 "shasum": ""
             },
             "require": {
                 "php": ">=5.3.1",
-                "symfony/finder": ">=2.0,<2.4-dev"
+                "symfony/finder": "~2.0"
             },
             "require-dev": {
-                "symfony/config": ">=2.0,<2.4-dev",
-                "symfony/translation": ">=2.0,<2.4-dev",
-                "symfony/yaml": ">=2.0,<2.4-dev"
+                "symfony/config": "~2.0",
+                "symfony/translation": "~2.0",
+                "symfony/yaml": "~2.0"
             },
             "suggest": {
                 "symfony/config": "If you want to use Config component to manage resources",
@@ -5171,25 +5166,25 @@
                 "Symfony2",
                 "parser"
             ],
-            "time": "2013-03-02 10:38:40"
+            "time": "2013-10-15 11:22:17"
         },
         {
             "name": "behat/mink",
-            "version": "v1.5.0",
+            "version": "v1.4.3",
             "source": {
                 "type": "git",
                 "url": "https://github.com/minkphp/Mink.git",
-                "reference": "0769e6d9726c140a54dbf827a438c0f9912749fe"
+                "reference": "0817070a6e2ec9f475fad9bfb81a962c462eb934"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/minkphp/Mink/zipball/0769e6d9726c140a54dbf827a438c0f9912749fe",
-                "reference": "0769e6d9726c140a54dbf827a438c0f9912749fe",
+                "url": "https://api.github.com/repos/minkphp/Mink/zipball/0817070a6e2ec9f475fad9bfb81a962c462eb934",
+                "reference": "0817070a6e2ec9f475fad9bfb81a962c462eb934",
                 "shasum": ""
             },
             "require": {
                 "php": ">=5.3.1",
-                "symfony/css-selector": "~2.0"
+                "symfony/css-selector": ">=2.0,<2.4-dev"
             },
             "suggest": {
                 "behat/mink-browserkit-driver": "extremely fast headless driver for Symfony\\Kernel-based apps (Sf2, Silex)",
@@ -5200,7 +5195,7 @@
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-develop": "1.5.x-dev"
+                    "dev-develop": "1.4.x-dev"
                 }
             },
             "autoload": {
@@ -5226,36 +5221,87 @@
                 "testing",
                 "web"
             ],
-            "time": "2013-04-13 23:39:27"
+            "time": "2013-03-02 15:53:18"
+        },
+        {
+            "name": "behat/mink-browserkit-driver",
+            "version": "v1.0.5",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/minkphp/MinkBrowserKitDriver.git",
+                "reference": "f2771b5fc4dbc233859addf37a7d150852f78418"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/minkphp/MinkBrowserKitDriver/zipball/f2771b5fc4dbc233859addf37a7d150852f78418",
+                "reference": "f2771b5fc4dbc233859addf37a7d150852f78418",
+                "shasum": ""
+            },
+            "require": {
+                "behat/mink": "~1.4.3",
+                "php": ">=5.3.1",
+                "symfony/browser-kit": "~2.0",
+                "symfony/dom-crawler": "~2.0"
+            },
+            "require-dev": {
+                "silex/silex": "@dev"
+            },
+            "type": "mink-driver",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.0.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-0": {
+                    "Behat\\Mink\\Driver": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Konstantin Kudryashov",
+                    "email": "ever.zet@gmail.com",
+                    "homepage": "http://everzet.com"
+                }
+            ],
+            "description": "Symfony2 BrowserKit driver for Mink framework",
+            "homepage": "http://mink.behat.org/",
+            "keywords": [
+                "Mink",
+                "Symfony2",
+                "browser",
+                "testing"
+            ],
+            "time": "2013-04-13 12:17:15"
         },
         {
             "name": "behat/mink-extension",
-            "version": "v1.1.4",
+            "version": "v1.3.1",
             "source": {
                 "type": "git",
                 "url": "https://github.com/Behat/MinkExtension.git",
-                "reference": "b4522f19fe96d423883f2e3650615e19d3a48c05"
+                "reference": "0642b680b613fdd6cb774debacf65a0d0d1f08e8"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/Behat/MinkExtension/zipball/b4522f19fe96d423883f2e3650615e19d3a48c05",
-                "reference": "b4522f19fe96d423883f2e3650615e19d3a48c05",
+                "url": "https://api.github.com/repos/Behat/MinkExtension/zipball/0642b680b613fdd6cb774debacf65a0d0d1f08e8",
+                "reference": "0642b680b613fdd6cb774debacf65a0d0d1f08e8",
                 "shasum": ""
             },
             "require": {
-                "behat/behat": "~2.4.5",
+                "behat/behat": "~2.5.0",
                 "behat/mink": ">=1.4.3,<1.6-dev",
-                "php": ">=5.3.2"
+                "php": ">=5.3.2",
+                "symfony/config": "~2.2"
             },
             "require-dev": {
                 "behat/mink-goutte-driver": "~1.0"
             },
             "type": "behat-extension",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.1.x-dev"
-                }
-            },
             "autoload": {
                 "psr-0": {
                     "Behat\\MinkExtension": "src/"
@@ -5280,21 +5326,502 @@
                 "test",
                 "web"
             ],
-            "time": "2013-06-04 12:18:22"
+            "time": "2014-04-27 11:55:27"
         },
         {
-            "name": "symfony/css-selector",
+            "name": "behat/mink-goutte-driver",
+            "version": "v1.0.9",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/minkphp/MinkGoutteDriver.git",
+                "reference": "fa1b073b48761464feb0b05e6825da44b20118d8"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/minkphp/MinkGoutteDriver/zipball/fa1b073b48761464feb0b05e6825da44b20118d8",
+                "reference": "fa1b073b48761464feb0b05e6825da44b20118d8",
+                "shasum": ""
+            },
+            "require": {
+                "behat/mink-browserkit-driver": ">=1.0.5,<1.2.0",
+                "fabpot/goutte": "~1.0.1",
+                "php": ">=5.3.1"
+            },
+            "type": "mink-driver",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.0.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-0": {
+                    "Behat\\Mink\\Driver": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Konstantin Kudryashov",
+                    "email": "ever.zet@gmail.com",
+                    "homepage": "http://everzet.com"
+                }
+            ],
+            "description": "Goutte driver for Mink framework",
+            "homepage": "http://mink.behat.org/",
+            "keywords": [
+                "browser",
+                "goutte",
+                "headless",
+                "testing"
+            ],
+            "time": "2013-07-03 18:43:54"
+        },
+        {
+            "name": "behat/mink-selenium2-driver",
+            "version": "v1.0.6",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/minkphp/MinkSelenium2Driver.git",
+                "reference": "689f58cc82adc678696942f389d35196fa2453f8"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/minkphp/MinkSelenium2Driver/zipball/689f58cc82adc678696942f389d35196fa2453f8",
+                "reference": "689f58cc82adc678696942f389d35196fa2453f8",
+                "shasum": ""
+            },
+            "require": {
+                "behat/mink": "~1.4.3",
+                "instaclick/php-webdriver": "~1.0.12",
+                "php": ">=5.3.1"
+            },
+            "type": "mink-driver",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.0.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-0": {
+                    "Behat\\Mink\\Driver": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Konstantin Kudryashov",
+                    "email": "ever.zet@gmail.com",
+                    "homepage": "http://everzet.com"
+                },
+                {
+                    "name": "Pete Otaqui",
+                    "email": "pete@otaqui.com",
+                    "homepage": "https://github.com/pete-otaqui"
+                }
+            ],
+            "description": "Selenium2 (WebDriver) driver for Mink framework",
+            "homepage": "http://mink.behat.org/",
+            "keywords": [
+                "ajax",
+                "browser",
+                "javascript",
+                "selenium",
+                "testing",
+                "webdriver"
+            ],
+            "time": "2013-04-13 12:56:28"
+        },
+        {
+            "name": "fabpot/goutte",
+            "version": "v1.0.7",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/FriendsOfPHP/Goutte.git",
+                "reference": "794b196e76bdd37b5155cdecbad311f0a3b07625"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/FriendsOfPHP/Goutte/zipball/794b196e76bdd37b5155cdecbad311f0a3b07625",
+                "reference": "794b196e76bdd37b5155cdecbad311f0a3b07625",
+                "shasum": ""
+            },
+            "require": {
+                "ext-curl": "*",
+                "guzzle/http": "~3.1",
+                "php": ">=5.3.0",
+                "symfony/browser-kit": "~2.1",
+                "symfony/css-selector": "~2.1",
+                "symfony/dom-crawler": "~2.1",
+                "symfony/finder": "~2.1",
+                "symfony/process": "~2.1"
+            },
+            "require-dev": {
+                "guzzle/plugin-history": "~3.1",
+                "guzzle/plugin-mock": "~3.1"
+            },
+            "type": "application",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.0-dev"
+                }
+            },
+            "autoload": {
+                "psr-0": {
+                    "Goutte": "."
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Fabien Potencier",
+                    "email": "fabien@symfony.com"
+                }
+            ],
+            "description": "A simple PHP Web Scraper",
+            "homepage": "https://github.com/fabpot/Goutte",
+            "keywords": [
+                "scraper"
+            ],
+            "time": "2014-10-09 15:52:51"
+        },
+        {
+            "name": "guzzle/common",
+            "version": "v3.9.2",
+            "target-dir": "Guzzle/Common",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/Guzzle3/common.git",
+                "reference": "2e36af7cf2ce3ea1f2d7c2831843b883a8e7b7dc"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/Guzzle3/common/zipball/2e36af7cf2ce3ea1f2d7c2831843b883a8e7b7dc",
+                "reference": "2e36af7cf2ce3ea1f2d7c2831843b883a8e7b7dc",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.2",
+                "symfony/event-dispatcher": ">=2.1"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "3.7-dev"
+                }
+            },
+            "autoload": {
+                "psr-0": {
+                    "Guzzle\\Common": ""
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "description": "Common libraries used by Guzzle",
+            "homepage": "http://guzzlephp.org/",
+            "keywords": [
+                "collection",
+                "common",
+                "event",
+                "exception"
+            ],
+            "abandoned": "guzzle/guzzle",
+            "time": "2014-08-11 04:32:36"
+        },
+        {
+            "name": "guzzle/http",
+            "version": "v3.9.2",
+            "target-dir": "Guzzle/Http",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/Guzzle3/http.git",
+                "reference": "1e8dd1e2ba9dc42332396f39fbfab950b2301dc5"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/Guzzle3/http/zipball/1e8dd1e2ba9dc42332396f39fbfab950b2301dc5",
+                "reference": "1e8dd1e2ba9dc42332396f39fbfab950b2301dc5",
+                "shasum": ""
+            },
+            "require": {
+                "guzzle/common": "self.version",
+                "guzzle/parser": "self.version",
+                "guzzle/stream": "self.version",
+                "php": ">=5.3.2"
+            },
+            "suggest": {
+                "ext-curl": "*"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "3.7-dev"
+                }
+            },
+            "autoload": {
+                "psr-0": {
+                    "Guzzle\\Http": ""
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Michael Dowling",
+                    "email": "mtdowling@gmail.com",
+                    "homepage": "https://github.com/mtdowling"
+                }
+            ],
+            "description": "HTTP libraries used by Guzzle",
+            "homepage": "http://guzzlephp.org/",
+            "keywords": [
+                "Guzzle",
+                "client",
+                "curl",
+                "http",
+                "http client"
+            ],
+            "abandoned": "guzzle/guzzle",
+            "time": "2014-08-11 04:32:36"
+        },
+        {
+            "name": "guzzle/parser",
+            "version": "v3.9.2",
+            "target-dir": "Guzzle/Parser",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/Guzzle3/parser.git",
+                "reference": "6874d171318a8e93eb6d224cf85e4678490b625c"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/Guzzle3/parser/zipball/6874d171318a8e93eb6d224cf85e4678490b625c",
+                "reference": "6874d171318a8e93eb6d224cf85e4678490b625c",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.2"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "3.7-dev"
+                }
+            },
+            "autoload": {
+                "psr-0": {
+                    "Guzzle\\Parser": ""
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "description": "Interchangeable parsers used by Guzzle",
+            "homepage": "http://guzzlephp.org/",
+            "keywords": [
+                "URI Template",
+                "cookie",
+                "http",
+                "message",
+                "url"
+            ],
+            "abandoned": "guzzle/guzzle",
+            "time": "2014-02-05 18:29:46"
+        },
+        {
+            "name": "guzzle/stream",
+            "version": "v3.9.2",
+            "target-dir": "Guzzle/Stream",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/Guzzle3/stream.git",
+                "reference": "60c7fed02e98d2c518dae8f97874c8f4622100f0"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/Guzzle3/stream/zipball/60c7fed02e98d2c518dae8f97874c8f4622100f0",
+                "reference": "60c7fed02e98d2c518dae8f97874c8f4622100f0",
+                "shasum": ""
+            },
+            "require": {
+                "guzzle/common": "self.version",
+                "php": ">=5.3.2"
+            },
+            "suggest": {
+                "guzzle/http": "To convert Guzzle request objects to PHP streams"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "3.7-dev"
+                }
+            },
+            "autoload": {
+                "psr-0": {
+                    "Guzzle\\Stream": ""
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Michael Dowling",
+                    "email": "mtdowling@gmail.com",
+                    "homepage": "https://github.com/mtdowling"
+                }
+            ],
+            "description": "Guzzle stream wrapper component",
+            "homepage": "http://guzzlephp.org/",
+            "keywords": [
+                "Guzzle",
+                "component",
+                "stream"
+            ],
+            "abandoned": "guzzle/guzzle",
+            "time": "2014-05-01 21:36:02"
+        },
+        {
+            "name": "instaclick/php-webdriver",
+            "version": "1.0.17",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/instaclick/php-webdriver.git",
+                "reference": "47a6019553a7a5b42d35493276ffc2c9252c53d5"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/instaclick/php-webdriver/zipball/47a6019553a7a5b42d35493276ffc2c9252c53d5",
+                "reference": "47a6019553a7a5b42d35493276ffc2c9252c53d5",
+                "shasum": ""
+            },
+            "require": {
+                "ext-curl": "*",
+                "php": ">=5.3.2"
+            },
+            "bin": [
+                "bin/webunit"
+            ],
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.0.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-0": {
+                    "WebDriver": "lib/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "Apache-2.0"
+            ],
+            "authors": [
+                {
+                    "name": "Justin Bishop",
+                    "email": "jubishop@gmail.com",
+                    "role": "Developer"
+                },
+                {
+                    "name": "Anthon Pang",
+                    "email": "apang@softwaredevelopment.ca",
+                    "role": "developer"
+                }
+            ],
+            "description": "PHP WebDriver for Selenium 2",
+            "homepage": "http://instaclick.com/",
+            "keywords": [
+                "browser",
+                "selenium",
+                "webdriver",
+                "webtest"
+            ],
+            "time": "2013-10-04 15:03:51"
+        },
+        {
+            "name": "symfony/browser-kit",
             "version": "v2.6.5",
+            "target-dir": "Symfony/Component/BrowserKit",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/BrowserKit.git",
+                "reference": "329bdc10bff1e365abb8a3388d60a65630daf705"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/BrowserKit/zipball/329bdc10bff1e365abb8a3388d60a65630daf705",
+                "reference": "329bdc10bff1e365abb8a3388d60a65630daf705",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.3",
+                "symfony/dom-crawler": "~2.0,>=2.0.5"
+            },
+            "require-dev": {
+                "symfony/css-selector": "~2.0,>=2.0.5",
+                "symfony/phpunit-bridge": "~2.7",
+                "symfony/process": "~2.0,>=2.0.5"
+            },
+            "suggest": {
+                "symfony/process": ""
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "2.6-dev"
+                }
+            },
+            "autoload": {
+                "psr-0": {
+                    "Symfony\\Component\\BrowserKit\\": ""
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Symfony Community",
+                    "homepage": "http://symfony.com/contributors"
+                },
+                {
+                    "name": "Fabien Potencier",
+                    "email": "fabien@symfony.com"
+                }
+            ],
+            "description": "Symfony BrowserKit Component",
+            "homepage": "http://symfony.com",
+            "time": "2015-03-13 13:21:46"
+        },
+        {
+            "name": "symfony/css-selector",
+            "version": "v2.3.26",
             "target-dir": "Symfony/Component/CssSelector",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/CssSelector.git",
-                "reference": "86cf0aa16065ffc4545374e9479dd7878bf1d90f"
+                "reference": "d11b64b8e4e96627dec3dabec936cdf410d48d78"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/CssSelector/zipball/86cf0aa16065ffc4545374e9479dd7878bf1d90f",
-                "reference": "86cf0aa16065ffc4545374e9479dd7878bf1d90f",
+                "url": "https://api.github.com/repos/symfony/CssSelector/zipball/d11b64b8e4e96627dec3dabec936cdf410d48d78",
+                "reference": "d11b64b8e4e96627dec3dabec936cdf410d48d78",
                 "shasum": ""
             },
             "require": {
@@ -5306,7 +5833,7 @@
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "2.6-dev"
+                    "dev-master": "2.3-dev"
                 }
             },
             "autoload": {
@@ -5334,14 +5861,68 @@
             ],
             "description": "Symfony CssSelector Component",
             "homepage": "http://symfony.com",
-            "time": "2015-02-24 11:52:21"
+            "time": "2015-02-24 10:24:26"
+        },
+        {
+            "name": "symfony/dom-crawler",
+            "version": "v2.6.5",
+            "target-dir": "Symfony/Component/DomCrawler",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/DomCrawler.git",
+                "reference": "896d1fb78832e8c4a4e4e8565ffdf668a53e518f"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/DomCrawler/zipball/896d1fb78832e8c4a4e4e8565ffdf668a53e518f",
+                "reference": "896d1fb78832e8c4a4e4e8565ffdf668a53e518f",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.3"
+            },
+            "require-dev": {
+                "symfony/css-selector": "~2.3",
+                "symfony/phpunit-bridge": "~2.7"
+            },
+            "suggest": {
+                "symfony/css-selector": ""
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "2.6-dev"
+                }
+            },
+            "autoload": {
+                "psr-0": {
+                    "Symfony\\Component\\DomCrawler\\": ""
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Symfony Community",
+                    "homepage": "http://symfony.com/contributors"
+                },
+                {
+                    "name": "Fabien Potencier",
+                    "email": "fabien@symfony.com"
+                }
+            ],
+            "description": "Symfony DomCrawler Component",
+            "homepage": "http://symfony.com",
+            "time": "2015-03-12 10:28:44"
         }
     ],
     "aliases": [],
     "minimum-stability": "stable",
     "stability-flags": {
         "behat/behat": 0,
-        "behat/mink-extension": 0
+        "behat/mink": 0
     },
     "prefer-stable": false,
     "prefer-lowest": false,

+ 69 - 0
documentation/changelog.html

@@ -58,6 +58,75 @@
 <h3>Removals</h3>
 
 
+<h1>Chamilo 1.9.10.2 - Sipán, 19th of March, 2015</h1>
+<h3>Release notes - summary</h3>
+  <p>Chamilo 1.9.10.2 is a patch (minor) version of the 1.9.x branch, with
+    bugfixes and a few new minor features, but more importantly fixes for
+    vulnerabilities discovered in 1.9.10 and previous versions (as such, you
+    can just overwrite previous files to upgrade from 1.9.8, 1.9.8.1 or
+    1.9.8.2 to 1.9.10.2).</p>
+  <p>See our <a href="https://support.chamilo.org/projects/chamilo-18/wiki/Security_issues">Security page</a> for more information.</p>
+  <h3>Release name</h3>
+  <p><a href="https://es.wikipedia.org/wiki/Sip%C3%A1n_%28Per%C3%BA%29">Sipán</a>
+  is a small city on the Peruvian Coast where the remains of the Lord of Sipán
+  (a ruler of the 3rd century AC) were discovered in 1987. It held many well-conserved
+  offerings. We believe this version of Chamilo, containing additional fixes on
+  top of an excellent 1.9.10 version, has its fair share of common points with Sipán.</p>
+<h3>Security fixes</h3>
+  <ul>
+    <li>(<a href="https://github.com/chamilo/chamilo-lms/commit/97fec370270eec1db137d93c2aa2c59f2d496a94">97fec370</a> - <a href="https://support.chamilo.org/issues/7564">#7564</a>) Fix multiple XSS &amp; CSRF vulnerabilities</li>
+    <li>(<a href="https://github.com/chamilo/chamilo-lms/commit/ba947ae6376f559440d70d3c539fdb14b19a76ae">ba947ae6</a> - <a href="https://support.chamilo.org/issues/7564">#7564</a>) Use htmlspecialchars when parsing a URL</li>
+    <li>(<a href="https://github.com/chamilo/chamilo-lms/commit/9da1112af7e39c9d8e7da7a57e95a907e6934e27">9da1112a</a> - <a href="https://support.chamilo.org/issues/7564">#7564</a>) Fix partially #7564</li>
+    <li>(<a href="https://github.com/chamilo/chamilo-lms/commit/0c65e9b1be5dc53a8f6836657ded7aeec31cf4b9">0c65e9b1</a>) Format code + adding Security::remove_xss</li>
+  </ul>
+<h3>Improvements (minor features) and debug</h3>
+  <ul>
+  <li>(<a href="https://github.com/chamilo/chamilo-lms/commit/96ab630c17388b75f1c76ce0d7cba82ae7c1c154">96ab630c</a> - <a href="https://task.beeznest.com/issues/9494">BT#9494</a>) Fix Exercise result if was added inside a LP</li>
+  <li>(<a href="https://github.com/chamilo/chamilo-lms/commit/b6b54d5bc2ed8638e623f306d71b23f54f59e4b7">b6b54d5b</a> - <a href="https://task.beeznest.com/issues/9255">BT#9255</a>) Fix bad condition that sets all documents to invisible</li>
+  <li>(<a href="https://github.com/chamilo/chamilo-lms/commit/76c83f1d1ba26b23839ccf572b6a921d37ca5986">76c83f1d</a> - <a href="https://task.beeznest.com/issues/9255">BT#9255</a>) Fix redirection after changing document visibility.</li>
+  <li>(<a href="https://github.com/chamilo/chamilo-lms/commit/f58039ea016438b77a5400aef5973c5121a1c983">f58039ea</a> - <a href="https://task.beeznest.com/issues/9571">BT#9571</a>) Fix URL links</li>
+  <li>(<a href="https://github.com/chamilo/chamilo-lms/commit/0fd3188cf207a78ebce50cee148d1caa19de0218">0fd3188c</a> - <a href="https://task.beeznest.com/issues/9559">BT#9559</a>) Fix LP export to PDF</li>
+  <li>(<a href="https://github.com/chamilo/chamilo-lms/commit/391fa4ff7666642c0f21fca42e9f662adea9082d">391fa4ff</a>) Fix reporting.</li>
+  <li>(<a href="https://github.com/chamilo/chamilo-lms/commit/b540f82f114f693f220dd84f67d7a1a971a4c74d">b540f82f</a> - <a href="https://task.beeznest.com/issues/9426">BT#9426</a>) Add "allow_delete_attendance" option</li>
+  <li>(<a href="https://github.com/chamilo/chamilo-lms/commit/c552d086f4c3d21260e407f9fc351d580b060eed">c552d086</a> - <a href="https://task.beeznest.com/issues/8986">BT#8986</a>) Adding session support in forum copy from course to course</li>
+  <li>(<a href="https://github.com/chamilo/chamilo-lms/commit/d0ed859b07282a2c30c18a4e29009541da0e158b">d0ed859b</a> - <a href="https://task.beeznest.com/issues/9436">BT#9436</a>) Improve script to move users from course to session with all resources</li>
+  <li>(<a href="https://github.com/chamilo/chamilo-lms/commit/c7b17060a77ea57961bfc168690b4d0312c60d39">c7b17060</a> - <a href="https://support.chamilo.org/issues/7577">#7577</a>) Fix query in buy_course plugin</li>
+  <li>(<a href="https://github.com/chamilo/chamilo-lms/commit/b2953724a42239a9494d4c0ee27888b72175a2c3">b2953724</a> - <a href="https://task.beeznest.com/issues/9420">BT#9420</a>) Blocking glossary in LP if not allowed</li>
+  <li>(<a href="https://github.com/chamilo/chamilo-lms/commit/e75de5ee93b19752de2a897154c3434e5c9d6456">e75de5ee</a> - <a href="https://task.beeznest.com/issues/9436">BT#9436</a>) Script to move users from course to session with all resources</li>
+  <li>(<a href="https://github.com/chamilo/chamilo-lms/commit/d74d70055ff0b935b70b6823b8e96a3ef2c154b1">d74d7005</a> - <a href="https://task.beeznest.com/issues/9420">BT#9420</a>) Fix setting show_glossary_in_extra_tools</li>
+  <li>(<a href="https://github.com/chamilo/chamilo-lms/commit/11b0e96555c08bf7b569dd3fb89aaecc8ee6682a">11b0e965</a> - <a href="https://task.beeznest.com/issues/9420">BT#9420</a>) Adding glossary possible options</li>
+  <li>(<a href="https://github.com/chamilo/chamilo-lms/commit/ba5b122cb5d26a63825b5b5ec4a2d3c67601555e">ba5b122c</a> - <a href="https://task.beeznest.com/issues/9494">BT#9494</a>) Show exercises included in learning paths in the Gradebook</li>
+  <li>(<a href="https://github.com/chamilo/chamilo-lms/commit/becb73323d5942100b4d709085935ae65409f5bc">becb7332</a>) Fix queries in work tool.</li>
+  <li>(<a href="https://github.com/chamilo/chamilo-lms/commit/0f4ac57793baa68b2d11792c8fdf06a1ac4246ed">0f4ac577</a> - <a href="https://task.beeznest.com/issues/9324">BT#9324</a>) Prevent session admins to see all users</li>
+  <li>(<a href="https://github.com/chamilo/chamilo-lms/commit/709f388cf0379ecccb0de0f928fe6494622f085c">709f388c</a> - <a href="https://task.beeznest.com/issues/9324">BT#9324</a>) Add default setting for configuration.php for users list view filter for session admins</li>
+  <li>(<a href="https://github.com/chamilo/chamilo-lms/commit/afbd8f39d8e728856aaba450a50c686f3d55fcdb">afbd8f39</a> - <a href="https://task.beeznest.com/issues/8986">BT#8986</a>) Fix session selection</li>
+  <li>(<a href="https://github.com/chamilo/chamilo-lms/commit/6061f6975af7b709fb273e3409259caa21d32d84">6061f697</a> - <a href="https://task.beeznest.com/issues/9324">BT#9324</a>) Show only session admin created users in user list and in session creation- refs BT#9324</li>
+  <li>(<a href="https://github.com/chamilo/chamilo-lms/commit/0c9ca6a9e98994cf21bfcda649272f333713e296">0c9ca6a9</a> - <a href="https://task.beeznest.com/issues/9323">BT#9323</a>) Add 'DISTINCT' to session list query to avoid returning repeated records</li>
+  <li>(<a href="https://github.com/chamilo/chamilo-lms/commit/8cbb3661156203fe7b9c5dfef1a819437ae28af3">8cbb3661</a> - <a href="https://support.chamilo.org/issues/7540">#7540</a>) Fix sub category creation</li>
+  <li>(<a href="https://github.com/chamilo/chamilo-lms/commit/132919c0172180888638209e711e35f81a422497">132919c0</a> - <a href="https://task.beeznest.com/issues/9422">BT#9422</a>) User in group can edit wiki page</li>
+  <li>(<a href="https://github.com/chamilo/chamilo-lms/commit/fb445f8be00a59cd2cd719eb8e3dc5bde9cd5094">fb445f8b</a> - <a href="https://task.beeznest.com/issues/9408">BT#9408</a>) Fix queries in the report by question in exercises</li>
+  <li>(<a href="https://github.com/chamilo/chamilo-lms/commit/19193942730dbd6d94ef895a726efdba94d12bb9">19193942</a>) Fixes certification validation. Takes the score not the percentage.</li>
+  <li>(<a href="https://github.com/chamilo/chamilo-lms/commit/2812d601059e31047a9fdabaaf6ec08e34a8e8cf">2812d601</a>) Fixing header order in gradebook</li>
+  <li>(<a href="https://github.com/chamilo/chamilo-lms/commit/d1756906054366a92c5516708dee8e417c9b6340">d1756906</a> - <a href="https://task.beeznest.com/issues/9293">BT#9293</a>) "*.phps" files are renamed to php when downloading a zip</li>
+  <li>(<a href="https://github.com/chamilo/chamilo-lms/commit/ab6f1b2990d6faa278a9706eed5f043aad302ddc">ab6f1b29</a> - <a href="https://task.beeznest.com/issues/9287">BT#9287</a>) Fixes users order in gradebook</li>
+  <li>(<a href="https://github.com/chamilo/chamilo-lms/commit/8da0d49ff538277fb794ecc6f5d7bb1562350e66">8da0d49f</a> - <a href="https://task.beeznest.com/issues/9380">BT#9380</a>) Fixes fatal error in wiki in session</li>
+  <li>(<a href="https://github.com/chamilo/chamilo-lms/commit/47043767efc43b2402b0e4617cbffdea464e3424">47043767</a>) Adds nl.js file to fckeditor.</li>
+  <li>(<a href="https://github.com/chamilo/chamilo-lms/commit/d1f552d2c85ac9ab1d4c9df9319aa47374661ea7">d1f552d2</a>) Fixes error when deleting a group tutors should be also removed.</li>
+  <li>(<a href="https://github.com/chamilo/chamilo-lms/commit/cef6d391f8e0fa573b485d8ed3c25036cc0bc366">cef6d391</a> - <a href="https://task.beeznest.com/issues/9340">BT#9340</a>) Adds students/tutors export/import</li>
+  <li>(<a href="https://github.com/chamilo/chamilo-lms/commit/df11c14bab171a0ee3f21680e78f062593481d52">df11c14b</a> - <a href="https://task.beeznest.com/issues/9355">BT#9355</a>) Fixes $groupId value was overwritten</li>
+  <li>(<a href="https://github.com/chamilo/chamilo-lms/commit/50c9b18219cb87e9624d593e043cc10e18ee4c33">50c9b182</a> - <a href="https://task.beeznest.com/issues/9325">BT#9325</a>) New feature: Edit extra content in admin panels</li>
+  <li>(<a href="https://github.com/chamilo/chamilo-lms/commit/cebeba5c42cf5d0f548ee95678dc1a3b4ea810b8">cebeba5c</a> - <a href="https://task.beeznest.com/issues/9340">BT#9340</a>) Adds "users" field while exporting classes</li>
+  <li>(<a href="https://github.com/chamilo/chamilo-lms/commit/762c4b3f2c309809ed151c2edcfe25e6cb8ecf4a">762c4b3f</a> - <a href="https://task.beeznest.com/issues/8617">BT#8617</a>) Fixes show_description when updating sessions</li>
+  <li>(<a href="https://github.com/chamilo/chamilo-lms/commit/f14dfa42dca2d76ebcbbe6d4b92b7d69ef606b8a">f14dfa42</a> - <a href="https://task.beeznest.com/issues/8617">BT#8617</a>) Adds show_description parameter in import csv files</li>
+  <li>(<a href="https://github.com/chamilo/chamilo-lms/commit/e17cb4c01c3e91479ba32d4030bfd2db2d17bf89">e17cb4c0</a> - <a href="https://task.beeznest.com/issues/9329">BT#9329</a>) Checks only results with qualification</li>
+  <li>(<a href="https://github.com/chamilo/chamilo-lms/commit/b82a265c042b3bead1171401ce74c7121b95e6ce">b82a265c</a> - <a href="https://task.beeznest.com/issues/9328">BT#9328</a>) Adds importSubscribeStatic option</li>
+  <li>(<a href="https://github.com/chamilo/chamilo-lms/commit/4eaeae3376add647ec2f9dc26089975505ebced9">4eaeae33</a>) When cleaning user LP results delete also the interactions and objs</li>
+  <li>(<a href="https://github.com/chamilo/chamilo-lms/commit/3a7cf71e159c4c8106b33f17061eab2a46c2499f">3a7cf71e</a> - <a href="https://task.beeznest.com/issues/7802">BT#7802</a>) Adding event comments</li>
+  <li>(<a href="https://github.com/chamilo/chamilo-lms/commit/2fa39544aaaade7fcc87b6f47f74a068be3f3238">2fa39544</a> - <a href="https://support.chamilo.org/issues/7370">#7370</a>) Fix a few buy courses plugin issues</li>
+  <li>(<a href="https://github.com/chamilo/chamilo-lms/commit/2fd2c2b7a4284204138662bd432a7301c625579d">2fd2c2b7</a> - <a href="https://task.beeznest.com/issues/9022">BT#9022</a>) Add certificate path to the web service. Add 'add_gradebook_certificates_cron_task_enabled' configuration parameter</li>
+</ul>
+
+
 <h1>Chamilo 1.9.10 - Huánuco, 25th of January, 2015</h1>
 <h3>Release notes - summary</h3>
 <p>Chamilo 1.9.10 is a new minor version of the 1.9.x branch, with many bugfixes and a few interesting new features (as such, you can just overwrite previous files to upgrade from 1.9.8, 1.9.8.1 or 1.9.8.2 to 1.9.10).</p>

+ 4 - 4
main/admin/index.php

@@ -97,7 +97,7 @@ if (api_is_platform_admin()) {
             <form method="get" class="form-inline" action="user_list.php">
                 <div class="form-group">
                 <input class="form-control" type="text" name="keyword" value="">
-                <button class="btn btn-default" type="submit">'.get_lang('Search').'</button>
+                <button class="btn btn-default" type="submit"><i class="fa fa-search"></i> '.get_lang('Search').'</button>
                 </div>
             </form>';
     $blocks['users']['search_form'] = $search_form;
@@ -144,7 +144,7 @@ if (api_is_platform_admin()) {
     $search_form = ' <form method="get" class="form-inline" action="course_list.php">
                             <div class="form-group">
 							<input class="form-control" type="text" name="keyword" value="">
-							<button class="btn btn-default" type="submit">'.get_lang('Search').'</button>
+							<button class="btn btn-default" type="submit"><i class="fa fa-search"></i> '.get_lang('Search').'</button>
 							</div>
 	            		</form>';
     $blocks['courses']['search_form'] = $search_form;
@@ -196,7 +196,7 @@ if (api_is_platform_admin()) {
                             <div class="form-group">
 							<input class="form-control" type="text" name="search_field" value="" >
                             <input type="hidden" value="search_setting" name="category">
-							<button class="btn btn-default" type="submit">'.get_lang('Search').'</button>
+							<button class="btn btn-default" type="submit"><i class="fa fa-search"></i> '.get_lang('Search').'</button>
 							</div>
 	            		</form>';
 	$blocks['platform']['search_form'] = $search_form;
@@ -256,7 +256,7 @@ if (api_is_platform_admin()) {
 $search_form = ' <form method="GET" class="form-inline" action="session_list.php">
                     <div class="form-group">
                     <input class="form-control" type="text" name="keyword" value="">
-                    <button class="btn btn-default" type="submit">'.get_lang('Search').'</button>
+                    <button class="btn btn-default" type="submit"><i class="fa fa-search"></i> '.get_lang('Search').'</button>
                     </div>
                 </form>';
 $blocks['sessions']['search_form'] = $search_form;

+ 1 - 2
main/admin/user_edit.php

@@ -293,8 +293,7 @@ $(document).ready(function(){
 
 
 // Submit button
-$form->addElement('style_submit_button', 'submit', get_lang('ModifyInformation'), 'class="save"');
-
+$form->addButtonSave(get_lang('Save'));
 
 // Set default values
 $user_data['reset_password'] = 0;

+ 1 - 1
main/admin/user_list.php

@@ -782,7 +782,7 @@ if (!empty($action)) {
 
 // Create a search-box
 $form = new FormValidator('search_simple', 'get', '', '', array(), FormValidator::LAYOUT_INLINE);
-$form->addElement('text', 'keyword', get_lang('keyword'));
+$form->addElement('text', 'keyword', get_lang('keyword'), array('id' => 'user-search-keyword'));
 $form->addButtonSearch(get_lang('Search'));
 $form->addElement(
     'static',

+ 1 - 1
main/attendance/index.php

@@ -326,7 +326,7 @@ switch ($action) {
         $attendanceController->attendance_calendar($action, $attendance_id, $calendar_id);
         break;
     case 'calendar_logins':
-        if (api_is_allowed_to_edit(null, true)) {
+        if (api_is_allowed_to_edit(null, true) || api_is_drh()) {
             $attendanceController->getAttendanceBaseInLogin(false, true);
         }
         break;

+ 2 - 2
main/css/base.css

@@ -2680,7 +2680,7 @@ div.admin_section h4 {
 }
 
 .ribbon .rib-total {
-    width: 275px;
+    width: 275px !important;
 }
 
 .ribbon .rib-error, .ribbon .ribbon-total-error {
@@ -5676,4 +5676,4 @@ ul.holder li.bit-box a.closebutton{
     width: 100%;
     visibility: visible;
   }
-}
+}

+ 1 - 12
main/css/chamilo/default.css

@@ -6630,7 +6630,7 @@ button.close {
   filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff5f5f5', GradientType=0);
   -webkit-filter: none;
           filter: none;
-  border-bottom: 1px solid #e6e6e6;
+  border: 1px solid #d5d5d5;
 }
 .btn-default:hover {
   color: #555555;
@@ -6638,17 +6638,6 @@ button.close {
 .btn-default .caret {
   border-top-color: #555555;
 }
-.btn-default {
-  background-image: -webkit-linear-gradient(#ffffff, #ffffff 60%, #f5f5f5);
-  background-image: -o-linear-gradient(#ffffff, #ffffff 60%, #f5f5f5);
-  background-image: -webkit-gradient(linear, left top, left bottom, from(#ffffff), color-stop(60%, #ffffff), to(#f5f5f5));
-  background-image: linear-gradient(#ffffff, #ffffff 60%, #f5f5f5);
-  background-repeat: no-repeat;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff5f5f5', GradientType=0);
-  -webkit-filter: none;
-          filter: none;
-  border-bottom: 1px solid #e6e6e6;
-}
 .btn-primary {
   background-image: -webkit-linear-gradient(#54b4eb, #2fa4e7 60%, #1d9ce5);
   background-image: -o-linear-gradient(#54b4eb, #2fa4e7 60%, #1d9ce5);

+ 450 - 403
main/exercice/hotspot_admin.inc.php

@@ -7,7 +7,6 @@
  * @package chamilo.exercise
  * @author Toon Keppens
  */
-
 use \ChamiloSession as Session;
 
 $modifyAnswers = intval($_GET['hotspotadmin']);
@@ -54,6 +53,7 @@ if ($modifyIn) {
         // construction of the duplicated Answers
         $objAnswer = new Answer($questionId);
     }
+
     $color = unserialize($color);
     $reponse = unserialize($reponse);
     $comment = unserialize($comment);
@@ -68,7 +68,7 @@ $hotspot_admin_url = api_get_path(WEB_CODE_PATH) . 'exercice/admin.php?' . api_g
 
 // the answer form has been submitted
 $submitAnswers = isset($_POST['submitAnswers']) ? true : false;
-$buttonBack = isset($_POST['buttonBack'])  ? true : false;
+$buttonBack = isset($_POST['buttonBack']) ? true : false;
 $nbrAnswers = isset($_POST['nbrAnswers']) ? intval($_POST['nbrAnswers']) : 0;
 
 if ($submitAnswers || $buttonBack) {
@@ -82,6 +82,7 @@ if ($submitAnswers || $buttonBack) {
             if ($debug > 0) {
                 echo str_repeat('&nbsp;', 4) . '$answerType is HOT_SPOT' . "<br />\n";
             }
+
             $reponse[$i] = trim($reponse[$i]);
             $comment[$i] = trim($comment[$i]);
             $weighting[$i] = $weighting[$i]; // it can be float
@@ -115,12 +116,15 @@ if ($submitAnswers || $buttonBack) {
                 if ($debug > 0) {
                     echo str_repeat('&nbsp;', 4) . '$answerType is HOT_SPOT' . "<br />\n";
                 }
+
                 $reponse[$i] = trim($reponse[$i]);
                 $comment[$i] = trim($comment[$i]);
                 $weighting[$i] = ($weighting[$i]); //it can be float
+
                 if ($weighting[$i]) {
                     $questionWeighting+=$weighting[$i];
                 }
+
                 // creates answer
                 $objAnswer->createAnswer(
                     $reponse[$i],
@@ -143,6 +147,7 @@ if ($submitAnswers || $buttonBack) {
             unset($modifyAnswers);
             echo '<script type="text/javascript">window.location.href="' . $hotspot_admin_url . '&message=ItemUpdated"</script>';
         }
+
         if ($debug > 0) {
             echo '$modifyIn was set - end' . "<br />\n";
         }
@@ -150,6 +155,7 @@ if ($submitAnswers || $buttonBack) {
         if ($debug > 0) {
             echo '$submitAnswers or $buttonBack was set' . "<br />\n";
         }
+
         $questionWeighting = $nbrGoodAnswers = 0;
         $select_question = $_POST['select_question'];
         $try = $_POST['try'];
@@ -212,6 +218,7 @@ if ($submitAnswers || $buttonBack) {
             } else {
                 $question_str = $select_question[$i];
             }
+
             $destination[$i] = $threadhold_total . '@@' . $try_str . '@@' . $lp_str . '@@' . $question_str . '@@' . $url_str;
 
             // checks if field is empty
@@ -281,6 +288,7 @@ if ($submitAnswers || $buttonBack) {
                 $reponse[$i] = trim($reponse[$i]);
                 $comment[$i] = trim($comment[$i]);
                 $weighting[$i] = ($weighting[$i]); //it can be float
+
                 if ($weighting[$i]) {
                     $questionWeighting+=$weighting[$i];
                 }
@@ -330,6 +338,7 @@ if ($modifyAnswers) {
     // construction of the Answer object
     $objAnswer = new Answer($objQuestion->id);
     Session::write('objAnswer', $objAnswer);
+
     if ($debug > 0) {
         echo str_repeat('&nbsp;', 2) . '$answerType is HOT_SPOT' . "<br />\n";
     }
@@ -353,12 +362,14 @@ if ($modifyAnswers) {
 
     if (!$nbrAnswers) {
         $nbrAnswers = $objAnswer->selectNbrAnswers();
+
         if ($answerType == HOT_SPOT_DELINEATION) {
             // the magic happens here ...
             // we do this to not count the if no error section
             if ($nbrAnswers >= 2)
                 $nbrAnswers--;
         }
+
         $reponse = array();
         $comment = array();
         $weighting = array();
@@ -369,9 +380,11 @@ if ($modifyAnswers) {
 
         for ($i = 1; $i <= $nbrAnswers; $i++) {
             $reponse[$i] = $objAnswer->selectAnswer($i);
+
             if ($objExercise->selectFeedbackType() != EXERCISE_FEEDBACK_TYPE_EXAM) {
                 $comment[$i] = $objAnswer->selectComment($i);
             }
+
             $weighting[$i] = $objAnswer->selectWeighting($i);
             $hotspot_coordinates[$i] = $objAnswer->selectHotspotCoordinates($i);
             $hotspot_type[$i] = $objAnswer->selectHotspotType($i);
@@ -409,12 +422,15 @@ if ($modifyAnswers) {
 
     $_SESSION['tmp_answers'] = array();
     $_SESSION['tmp_answers']['answer'] = $reponse;
+
     if ($objExercise->selectFeedbackType() != EXERCISE_FEEDBACK_TYPE_EXAM) {
         $_SESSION['tmp_answers']['comment'] = $comment;
     }
+
     $_SESSION['tmp_answers']['weighting'] = $weighting;
     $_SESSION['tmp_answers']['hotspot_coordinates'] = $hotspot_coordinates;
     $_SESSION['tmp_answers']['hotspot_type'] = $hotspot_type;
+
     if ($answerType == HOT_SPOT_DELINEATION) {
         $_SESSION['tmp_answers']['destination'] = $destination;
     }
@@ -477,7 +493,6 @@ if ($modifyAnswers) {
         }
     }
 
-
     $moreOARAnswers = isset($_POST['moreOARAnswers']) ? true : false;
 
     if ($moreOARAnswers) {
@@ -499,9 +514,11 @@ if ($modifyAnswers) {
     if ($debug > 0) {
         echo str_repeat('&nbsp;', 2) . '$usedInSeveralExercises is untrue' . "<br />\n";
     }
+
     if ($debug > 0) {
         echo str_repeat('&nbsp;', 4) . '$answerType is HOT_SPOT' . "<br />\n";
     }
+
     if ($answerType == HOT_SPOT_DELINEATION) {
         $hotspot_colors = array(
             "",
@@ -538,453 +555,483 @@ if ($modifyAnswers) {
     }
 
     Display::tag('h3', get_lang('Question') . ": " . $questionName . ' <img src="../img/info3.gif" title="' . strip_tags(get_lang('HotspotChoose')) . '" alt="' . strip_tags(get_lang('HotspotChoose')) . '" />');
+
     if (!empty($msgErr)) {
         Display::display_normal_message($msgErr); //main API
     }
 
-    $hotspot_admin_url = api_get_path(WEB_CODE_PATH) . 'exercice/admin.php?' . api_get_cidreq() . '&hotspotadmin=' . $modifyAnswers . '&exerciseId=' . $exerciseId.'&'.api_get_cidreq();
+    $hotspot_admin_url = api_get_path(WEB_CODE_PATH) . 'exercice/admin.php?' . api_get_cidreq() . '&hotspotadmin=' . $modifyAnswers . '&exerciseId=' . $exerciseId . '&' . api_get_cidreq();
     ?>
-    <form method="post" action="<?php echo $hotspot_admin_url; ?>" id="frm_exercise" name="frm_exercise">
+    <form method="post" action="<?php echo $hotspot_admin_url; ?>" class="form-horizontal" id="frm_exercise" name="frm_exercise">
+        <div class="form-group">
+            <div class="col-sm-12">
+                <?php if ($answerType == HOT_SPOT_DELINEATION) { ?>
+                    <button type="submit" class="btn btn-danger" name="lessAnswers" value="lessAnswers">
+                        <i class="fa fa-trash"></i> <?php echo get_lang('LessOAR'); ?>
+                    </button>
+                    <button type="submit" name="moreOARAnswers" value="moreOARAnswers">
+                        <i class="fa fa-plus"></i> <?php echo get_lang('MoreOAR'); ?>
+                    </button>
+                <?php } else { ?>
+                    <button type="submit" class="btn btn-danger" name="lessAnswers" value="lessAnswers">
+                        <i class="fa fa-trash"></i> <?php echo get_lang('LessHotspots'); ?>
+                    </button>
+                    <button type="submit" class="btn btn-primary" name="moreAnswers" value="moreAnswers">
+                        <i class="fa fa-plus"></i> <?php echo get_lang('MoreHotspots'); ?>
+                    </button>
+                <?php } ?>
+                <button type="submit" class="btn btn-primary" name="submitAnswers" value="submitAnswers">
+                    <i class="fa fa-save"></i> <?php echo get_lang('AddQuestionToExercise'); ?>
+                </button>
+            </div>
+        </div>
         <table border="0" cellpadding="0" cellspacing="2" width="100%">
-        <tr>
-            <td colspan="2" valign="bottom">
-            <?php if ($answerType == HOT_SPOT_DELINEATION) { ?>
-                <button type="submit" class="btn minus" name="lessAnswers" value="lessAnswers" ><?php echo get_lang('LessOAR'); ?></button>
-                <button type="submit" class="btn plus" name="moreOARAnswers" value="moreOARAnswers" /><?php echo get_lang('MoreOAR'); ?></button>
-            <?php } else { ?>
-                <button type="submit" class="btn minus" name="lessAnswers" value="lessAnswers" ><?php echo get_lang('LessHotspots'); ?></button>
-                <button type="submit" class="btn plus" name="moreAnswers" value="moreAnswers" /><?php echo get_lang('MoreHotspots'); ?></button>
-            <?php } ?>
-            <button type="submit" class="btn save" name="submitAnswers" value="submitAnswers" /><?php echo get_lang('AddQuestionToExercise'); ?></button>
-            </td>
-        </tr>
-        <tr>
-            <td valign="top">
-                <input type="hidden" name="formSent" value="1" />
-                <input type="hidden" name="nbrAnswers" value="<?php echo $nbrAnswers; ?>" />
-                <table class="data_table">
-                    <tr>
-                        <th width="5">&nbsp;</th>
-                        <th> <?php echo get_lang('HotspotDescription'); ?> *</th>
-                        <?php if ($answerType == HOT_SPOT_DELINEATION)
-                        echo '<th >' . get_lang('Thresholds') . '</th>'; ?>
-                        <?php if ($objExercise->selectFeedbackType() == EXERCISE_FEEDBACK_TYPE_DIRECT) { ?>
-                        <th><?php echo get_lang('Comment'); ?></th>
-
-                        <?php if ($answerType == HOT_SPOT_DELINEATION)
-                            echo '<th >' . get_lang('Scenario') . '</th>'; ?>
-                        <?php } else { ?>
-                            <th colspan="2"><?php echo get_lang('Comment'); ?></th>
-                        <?php } ?>
-                        <th><?php echo get_lang('QuestionWeighting'); ?> *</th>
-                    </tr>
-                    <?php
-
-                    $list = new LearnpathList(api_get_user_id());
-                    // Loading list of LPs
-                    $flat_list = $list->get_flat_list();
+            <tr>
+                <td>
+                    <input type="hidden" name="formSent" value="1" />
+                    <input type="hidden" name="nbrAnswers" value="<?php echo $nbrAnswers; ?>" />
+                    <table class="table table-striped table-hover">
+                        <tr>
+                            <th width="5">&nbsp;</th>
+                            <th> <?php echo get_lang('HotspotDescription'); ?> *</th>
+                            <?php
+                            if ($answerType == HOT_SPOT_DELINEATION) {
+                                echo '<th >' . get_lang('Thresholds') . '</th>';
+                            }
 
-                    for ($i = 1; $i <= $nbrAnswers; $i++) {
-                        // is an delineation
-                        if ($answerType == HOT_SPOT_DELINEATION) {
-                            $select_lp_id = array();
-                            $option_lp = '';
-
-                            // setting the LP
-                            $isSelected = false;
-                            foreach ($flat_list as $id => $details) {
-                                $select_lp_id[$id] = $details['lp_name'];
-                                $selected = '';
-                                if ($id == $lp[$i]) {
-                                    $isSelected = true;
-                                    $selected = 'selected="selected"';
+                            if ($objExercise->selectFeedbackType() == EXERCISE_FEEDBACK_TYPE_DIRECT) {
+                                ?>
+                                <th><?php echo get_lang('Comment'); ?></th>
+                                <?php
+                                if ($answerType == HOT_SPOT_DELINEATION) {
+                                    echo '<th >' . get_lang('Scenario') . '</th>';
                                 }
-                                $option_lp.='<option value="' . $id . '" ' . $selected . '>' . $details['lp_name'] . '</option>';
-                            }
-                            if ($isSelected) {
-                                $option_lp = '<option value="0">' . get_lang('SelectTargetLP') . '</option>' . $option_lp;
+                                ?>
+                                <?php
                             } else {
-                                $option_lp = '<option value="0" selected="selected" >' . get_lang('SelectTargetLP') . '</option>' . $option_lp;
-                            }
+                                ?>
+                                <th colspan="2"><?php echo get_lang('Comment'); ?></th>
+                            <?php } ?>
+                            <th><?php echo get_lang('QuestionWeighting'); ?> *</th>
+                        </tr>
+                        <?php
+                        $list = new LearnpathList(api_get_user_id());
+                        // Loading list of LPs
+                        $flat_list = $list->get_flat_list();
 
-                            // Feedback SELECT
-                            $question_list = $objExercise->selectQuestionList();
-                            $option_feed = '';
-                            $option_feed.='<option value="0">' . get_lang('SelectTargetQuestion') . '</option>';
-
-                            foreach ($question_list as $key => $questionid) {
-                                $selected = '';
-                                $question = Question::read($questionid);
-                                $val = 'Q' . $key . ' :' . substrwords($question->selectTitle(), ICON_SIZE_SMALL);
-                                $select_lp_id[$id] = $details['lp_name'];
-                                if ($questionid == $select_question[$i]) {
-                                    $selected = 'selected="selected"';
+                        for ($i = 1; $i <= $nbrAnswers; $i++) {
+                            // is an delineation
+                            if ($answerType == HOT_SPOT_DELINEATION) {
+                                $select_lp_id = array();
+                                $option_lp = '';
+
+                                // setting the LP
+                                $isSelected = false;
+                                foreach ($flat_list as $id => $details) {
+                                    $select_lp_id[$id] = $details['lp_name'];
+                                    $selected = '';
+                                    if ($id == $lp[$i]) {
+                                        $isSelected = true;
+                                        $selected = 'selected="selected"';
+                                    }
+                                    $option_lp.='<option value="' . $id . '" ' . $selected . '>' . $details['lp_name'] . '</option>';
                                 }
-                                $option_feed.='<option value="' . $questionid . '" ' . $selected . ' >' . $val . '</option>';
-                            }
-                            if ($select_question[$i] == -1) {
-                                $option_feed .= '<option value="-1" selected="selected" >' . get_lang('ExitTest') . '</option>';
-                            } else {
-                                $option_feed .= '<option value="-1">' . get_lang('ExitTest') . '</option>';
-                            }
 
-                            //-------- IF it is a delineation
-
-                            if ($_SESSION['tmp_answers']['hotspot_type'][$i] == 'delineation') {
-                                for ($k = 1; $k <= 100; $k++) {
-                                    $selected1 = $selected2 = $selected3 = '';
-                                    if ($k == $threadhold1[$i])
-                                        $selected1 = 'selected="selected"';
-                                    if ($k == $threadhold2[$i])
-                                        $selected2 = 'selected="selected"';
-                                    if ($k == $threadhold3[$i])
-                                        $selected3 = 'selected="selected"';
-                                    $option1.='<option ' . $selected1 . ' >' . $k . '</option>';
-                                    $option2.='<option ' . $selected2 . ' >' . $k . '</option>';
-                                    $option3.='<option ' . $selected3 . '>' . $k . '</option>';
+                                if ($isSelected) {
+                                    $option_lp = '<option value="0">' . get_lang('SelectTargetLP') . '</option>' . $option_lp;
+                                } else {
+                                    $option_lp = '<option value="0" selected="selected" >' . get_lang('SelectTargetLP') . '</option>' . $option_lp;
                                 }
-                            ?>
-                            <tr>
-                                <td valign="top">
-                                    <div style="height: 15px; width: 15px; background-color: <?php echo $hotspot_colors[$i]; ?>"> </div>
-                                    <input type="hidden" name="reponse[<?php echo $i; ?>]" value="delineation" />
-                                </td>
-                                <td valign="top" align="left">
-                                    <b><?php echo get_lang('Delineation'); ?></b><br /><br />
-                                    <?php echo get_lang('MinOverlap'); ?><br/><br/>
-                                    <?php echo get_lang('MaxExcess'); ?><br/><br/>
-                                    <?php echo get_lang('MaxMissing'); ?><br/><br/>
-                                </td>
-                                <td>
-                                    <br/><br/>
-                                    <select name="threadhold1[<?php echo $i; ?>]" >
-                                        <?php echo $option1; ?>
-                                    </select>%
-                                    <br/><br/>
-                                    <select name="threadhold2[<?php echo $i; ?>]" >
-                                    <?php echo $option2; ?>
-                                    </select>%
-                                    <br/><br/>
-                                    <select name="threadhold3[<?php echo $i; ?>]" >
-                                <?php echo $option3; ?>
-                                    </select>%
-                                    <br/>
-                                </td>
-                                <td align="left">
-                                    <br />
-                                    <textarea wrap="virtual" rows="3" cols="25" name="comment[<?php echo $i; ?>]" style="width: 100%">
-                                    <?php echo Security::remove_XSS($comment[$i]); ?>
-                                    </textarea>
-                                    <input type="hidden" name="hotspot_type[<?php echo $i; ?>]" value="delineation" />
-                                    <input type="hidden" name="hotspot_coordinates[<?php echo $i; ?>]" value="<?php echo (empty($hotspot_coordinates[$i]) ? '0;0|0|0' : $hotspot_coordinates[$i]); ?>" />
-                                    <br/>
-                                    <?php echo get_lang('LearnerIsInformed'); ?>
-                                </td>
-                                <?php if ($objExercise->selectFeedbackType() == EXERCISE_FEEDBACK_TYPE_DIRECT) { ?>
-                                <td>
-                                    <table>
-                                        <tr>
+
+                                // Feedback SELECT
+                                $question_list = $objExercise->selectQuestionList();
+                                $option_feed = '';
+                                $option_feed.='<option value="0">' . get_lang('SelectTargetQuestion') . '</option>';
+
+                                foreach ($question_list as $key => $questionid) {
+                                    $selected = '';
+                                    $question = Question::read($questionid);
+                                    $val = 'Q' . $key . ' :' . substrwords($question->selectTitle(), ICON_SIZE_SMALL);
+                                    $select_lp_id[$id] = $details['lp_name'];
+
+                                    if ($questionid == $select_question[$i]) {
+                                        $selected = 'selected="selected"';
+                                    }
+
+                                    $option_feed.='<option value="' . $questionid . '" ' . $selected . ' >' . $val . '</option>';
+                                }
+
+                                if ($select_question[$i] == -1) {
+                                    $option_feed .= '<option value="-1" selected="selected" >' . get_lang('ExitTest') . '</option>';
+                                } else {
+                                    $option_feed .= '<option value="-1">' . get_lang('ExitTest') . '</option>';
+                                }
+
+                                //-------- IF it is a delineation
+
+                                if ($_SESSION['tmp_answers']['hotspot_type'][$i] == 'delineation') {
+                                    for ($k = 1; $k <= 100; $k++) {
+                                        $selected1 = $selected2 = $selected3 = '';
+                                        if ($k == $threadhold1[$i])
+                                            $selected1 = 'selected="selected"';
+                                        if ($k == $threadhold2[$i])
+                                            $selected2 = 'selected="selected"';
+                                        if ($k == $threadhold3[$i])
+                                            $selected3 = 'selected="selected"';
+                                        $option1.='<option ' . $selected1 . ' >' . $k . '</option>';
+                                        $option2.='<option ' . $selected2 . ' >' . $k . '</option>';
+                                        $option3.='<option ' . $selected3 . '>' . $k . '</option>';
+                                    }
+                                    ?>
+                                    <tr>
+                                        <td>
+                                            <div style="height: 15px; width: 15px; background-color: <?php echo $hotspot_colors[$i]; ?>"> </div>
+                                            <input type="hidden" name="reponse[<?php echo $i; ?>]" value="delineation" />
+                                        </td>
+                                        <td>
+                                            <b><?php echo get_lang('Delineation'); ?></b><br /><br />
+                                            <?php echo get_lang('MinOverlap'); ?><br/><br/>
+                                            <?php echo get_lang('MaxExcess'); ?><br/><br/>
+                                            <?php echo get_lang('MaxMissing'); ?><br/><br/>
+                                        </td>
+                                        <td>
+                                            <br/><br/>
+                                            <select name="threadhold1[<?php echo $i; ?>]" >
+                                                <?php echo $option1; ?>
+                                            </select>%
+                                            <br/><br/>
+                                            <select name="threadhold2[<?php echo $i; ?>]" >
+                                                <?php echo $option2; ?>
+                                            </select>%
+                                            <br/><br/>
+                                            <select name="threadhold3[<?php echo $i; ?>]" >
+                                                <?php echo $option3; ?>
+                                            </select>%
+                                            <br/>
+                                        </td>
+                                        <td align="left">
+                                            <br />
+                                            <textarea wrap="virtual" rows="3" cols="25" name="comment[<?php echo $i; ?>]" style="width: 100%">
+                                                <?php echo Security::remove_XSS($comment[$i]); ?>
+                                            </textarea>
+                                            <input type="hidden" name="hotspot_type[<?php echo $i; ?>]" value="delineation" />
+                                            <input type="hidden" name="hotspot_coordinates[<?php echo $i; ?>]" value="<?php
+                                            echo (empty($hotspot_coordinates[$i]) ? '0;0|0|0' : $hotspot_coordinates[$i]);
+                                            ?>" />
+                                            <br/>
+                                            <?php echo get_lang('LearnerIsInformed'); ?>
+                                        </td>
+                                        <?php if ($objExercise->selectFeedbackType() == EXERCISE_FEEDBACK_TYPE_DIRECT) { ?>
                                             <td>
-                                                <input type="checkbox" class="checkbox" name="<?php echo 'try[' . $i; ?>]"  <?php if ($try[$i] == 1) echo'checked'; ?> />
-                                                    <?php echo get_lang('TryAgain'); ?>
-                                                <br /><br />
-                                                <?php echo get_lang('SeeTheory'); ?>	  	<br />
-                                                <select name="lp[<?php echo $i; ?>]" >
-                                                <?php echo $option_lp; ?>
-                                                </select>
-                                                <br /><br />
-                                                <?php echo get_lang('Other'); ?>	<br />
-                                                <input name="url[<?php echo $i; ?>]" value="<?php echo $url[$i]; ?>">
-                                                <br />	<br />
-                                                <?php echo get_lang('SelectQuestion'); ?>	<br />
-                                                <select name="select_question[<?php echo $i; ?>]" >
-                                                <?php echo $option_feed; ?>
-                                                </select>
+                                                <table>
+                                                    <tr>
+                                                        <td>
+                                                            <input type="checkbox" class="checkbox" name="<?php echo 'try[' . $i; ?>]"  <?php if ($try[$i] == 1) echo'checked'; ?> />
+                                                            <?php echo get_lang('TryAgain'); ?><br /><br />
+                                                            <?php echo get_lang('SeeTheory'); ?><br />
+                                                            <select name="lp[<?php echo $i; ?>]" >
+                                                                <?php echo $option_lp; ?>
+                                                            </select>
+                                                            <br /><br />
+                                                            <?php echo get_lang('Other'); ?>	<br />
+                                                            <input name="url[<?php echo $i; ?>]" value="<?php echo $url[$i]; ?>">
+                                                            <br />	<br />
+                                                            <?php echo get_lang('SelectQuestion'); ?>	<br />
+                                                            <select name="select_question[<?php echo $i; ?>]" >
+                                                                <?php echo $option_feed; ?>
+                                                            </select>
+                                                        </td>
+                                                    </tr>
+                                                </table>
                                             </td>
-                                        </tr>
-                                    </table>
-                                </td>
-                                <?php } else { ?>
-                                    <td> &nbsp;</td>
+                                        <?php } else { ?>
+                                            <td> &nbsp;</td>
+                                            <?php
+                                        }
+                                    } elseif (false) {
+                                        ?>
+                                    <tr>
+                                        <th colspan="2" ><?php echo get_lang('IfNoError'); ?></th>
+                                        <th colspan="3" ><?php echo get_lang('Feedback'); ?></th>
+                                        <!-- th colspan="1" ><?php echo get_lang('Scenario'); ?></th -->
+                                        <th></th>
+                                    </tr>
+                                    <tr>
+                                        <td colspan="2">
+                                            <?php echo get_lang('LearnerHasNoMistake'); ?>
+                                            <input type="hidden" name="reponse[<?php echo $i; ?>]" value="noerror" />
+                                            <input type="hidden" name="weighting[<?php echo $i; ?>]" value="0" />
+                                            <input type="hidden" name="hotspot_type[<?php echo $i; ?>]" value="noerror" />
+                                            <input type="hidden" name="hotspot_coordinates[<?php echo $i; ?>]" value="0;0|0|0" />
+                                        </td>
+                                        <td colspan="2"  align="left">
+                                            <textarea wrap="virtual" rows="3" cols="25" name="comment[<?php echo $i; ?>]" style="width: 100%"><?php echo Security::remove_XSS($comment[$i]); ?></textarea>
+                                        </td>
+                                        <?php if ($objExercise->selectFeedbackType() == EXERCISE_FEEDBACK_TYPE_DIRECT) { ?>
+                                            <td>
+                                                <table>
+                                                    <tr>
+                                                        <td>
+                                                            <input type="checkbox" class="checkbox" name="<?php echo 'try[' . $i; ?>]" <?php if ($try[$i] == 1) echo'checked'; ?> />
+                                                            <?php echo get_lang('TryAgain'); ?>
+                                                            <br /><br />
+                                                            <?php echo get_lang('SeeTheory'); ?>
+                                                            <br />
+                                                            <select name="lp[<?php echo $i; ?>]" >
+                                                                <?php echo $option_lp; ?>
+                                                            </select>
+                                                            <br /><br />
+                                                            <?php echo get_lang('Other'); ?>	<br />
+                                                            <input name="url[<?php echo $i; ?>]" value="<?php echo $url[$i]; ?>">
+                                                            <br />	<br />
+                                                            <?php echo get_lang('SelectQuestion'); ?>	<br />
+                                                            <select name="select_question[<?php echo $i; ?>]">
+                                                                <?php echo $option_feed; ?>
+                                                            </select>
+                                                        </td>
+                                                    </tr>
+                                                </table>
+                                            </td>
+                                        <?php } else { ?>
+                                            <td>&nbsp;</td>
+                                        <?php } ?>
+                                    </tr>
                                     <?php
-                                    }
-                                } elseif (false) {
-                                    ?>
-                                <tr>
-                                    <th colspan="2" ><?php echo get_lang('IfNoError'); ?></th>
-                                    <th colspan="3" ><?php echo get_lang('Feedback'); ?></th>
-                                    <!-- th colspan="1" ><?php echo get_lang('Scenario'); ?></th -->
-                                    <th></th>
-                                </tr>
-                                <tr>
-                                <td colspan="2" valign="top" align="left">
-                                    <?php echo get_lang('LearnerHasNoMistake'); ?>
-                                    <input type="hidden" name="reponse[<?php echo $i; ?>]" value="noerror" />
-                                    <input type="hidden" name="weighting[<?php echo $i; ?>]" value="0" />
-                                    <input type="hidden" name="hotspot_type[<?php echo $i; ?>]" value="noerror" />
-                                    <input type="hidden" name="hotspot_coordinates[<?php echo $i; ?>]" value="0;0|0|0" />
-                                </td>
-                                <td colspan="2"  align="left">
-                                    <textarea wrap="virtual" rows="3" cols="25" name="comment[<?php echo $i; ?>]" style="width: 100%"><?php echo Security::remove_XSS($comment[$i]); ?></textarea>
-                                </td>
-                                <?php if ($objExercise->selectFeedbackType() == EXERCISE_FEEDBACK_TYPE_DIRECT) { ?>
-                                <td>
-                                    <table>
+                                } elseif ($_SESSION['tmp_answers']['hotspot_type'][$i] == 'oar') {
+                                    // if it's an OAR
+                                    if ($i == 2) {
+                                        ?>
                                         <tr>
+                                            <th width="5">&nbsp;<?php /* echo get_lang('Hotspot'); */ ?></th>
+                                            <th ><?php echo get_lang('OAR'); ?>*</th>
+                                            <?php if ($objExercise->selectFeedbackType() == EXERCISE_FEEDBACK_TYPE_DIRECT) { ?>
+                                                <th colspan="2" ><?php echo get_lang('Comment'); ?></th>
+                                                <th ><?php if ($answerType == HOT_SPOT_DELINEATION) echo get_lang('Scenario'); ?></th>
+                                            <?php } else { ?>
+                                                <th colspan="3" ><?php echo get_lang('Comment'); ?></th>
+                                            <?php } ?>
+                                            <th>&nbsp;</th>
+                                        </tr>
+                                    <?php } ?>
+                                    <tr>
+                                        <td>
+                                            <div style="height: 15px; width: 15px; background-color: <?php echo $hotspot_colors[$i]; ?>"> </div>
+                                        </td>
+                                        <td>
+                                            <input type="text" name="reponse[<?php echo $i; ?>]" value="<?php echo Security::remove_XSS($reponse[$i]); ?>" size="20" />
+                                        </td>
+
+                                        <td colspan="2"  align="left">
+                                            <textarea wrap="virtual" rows="3" cols="25" name="comment[<?php echo $i; ?>]" style="width: 100%"><?php echo Security::remove_XSS($comment[$i]); ?></textarea>
+                                            <input type="hidden" name="hotspot_type[<?php echo $i; ?>]" value="oar" />
+                                            <input type="hidden" name="hotspot_coordinates[<?php echo $i; ?>]" value="<?php
+                                            echo (empty($hotspot_coordinates[$i]) ? '0;0|0|0' : $hotspot_coordinates[$i]);
+                                            ?>" />
+                                        </td>
+                                        <?php if ($objExercise->selectFeedbackType() == EXERCISE_FEEDBACK_TYPE_DIRECT) { ?>
                                             <td>
-                                                <input type="checkbox" class="checkbox" name="<?php echo 'try[' . $i; ?>]" <?php if ($try[$i] == 1) echo'checked'; ?> />
-                                                <?php echo get_lang('TryAgain'); ?>
-                                                <br /><br />
-                                                <?php echo get_lang('SeeTheory'); ?>
-                                                <br />
-                                                <select name="lp[<?php echo $i; ?>]" >
-                                                <?php echo $option_lp; ?>
-                                                </select>
-                                                <br /><br />
-                                                <?php echo get_lang('Other'); ?>	<br />
-                                                <input name="url[<?php echo $i; ?>]" value="<?php echo $url[$i]; ?>">
-                                                <br />	<br />
-                                                <?php echo get_lang('SelectQuestion'); ?>	<br />
-                                                <select name="select_question[<?php echo $i; ?>]">
-                                                <?php echo $option_feed; ?>
-                                                </select>
+                                                <table>
+                                                    <tr>
+                                                        <td>
+                                                            <input type="checkbox" class="checkbox" name="<?php echo 'try[' . $i; ?>]" <?php if ($try[$i] == 1) echo'checked'; ?> />
+                                                            <?php echo get_lang('TryAgain'); ?>
+                                                            <br /><br />
+                                                            <?php echo get_lang('SeeTheory'); ?>	  	<br />
+                                                            <select name="lp[<?php echo $i; ?>]" >
+                                                                <?php echo $option_lp; ?>
+                                                            </select>
+                                                            <br /><br />
+                                                            <?php echo get_lang('Other'); ?>	<br />
+                                                            <input name="url[<?php echo $i; ?>]" value="<?php echo $url[$i]; ?>">
+                                                            <br /><br />
+                                                            <?php echo get_lang('SelectQuestion'); ?>	<br />
+                                                            <select name="select_question[<?php echo $i; ?>]">
+                                                                <?php echo $option_feed; ?>
+                                                            </select>
+                                                        </td>
+                                                    </tr>
+                                                </table>
                                             </td>
-                                        </tr>
-                                    </table>
-                                </td>
-                            <?php } else { ?>
-                                <td>&nbsp;</td>
-                            <?php } ?>
-                            </tr>
-                                <?php
-                            } elseif ($_SESSION['tmp_answers']['hotspot_type'][$i] == 'oar') {
-                                // if it's an OAR
-                                if ($i == 2) {
+                                        <?php } else { ?>
+                                            <td>&nbsp;</td>
+                                            <?php
+                                        }
+                                    }
+                                    //end if is delineation
+                                } else {
+                                    $commentValue = isset($comment[$i]) ? $comment[$i] : null;
+                                    $responseValue = isset($reponse[$i]) ? $reponse[$i] : null;
                                     ?>
                                 <tr>
-                                    <th width="5">&nbsp;<?php /* echo get_lang('Hotspot'); */ ?></th>
-                                    <th ><?php echo get_lang('OAR'); ?>*</th>
-                                    <?php if ($objExercise->selectFeedbackType() == EXERCISE_FEEDBACK_TYPE_DIRECT) { ?>
-                                    <th colspan="2" ><?php echo get_lang('Comment'); ?></th>
-                                    <th ><?php if ($answerType == HOT_SPOT_DELINEATION) echo get_lang('Scenario'); ?></th>
-                                    <?php } else { ?>
-                                    <th colspan="3" ><?php echo get_lang('Comment'); ?></th>
-                                    <?php } ?>
-                                    <th>&nbsp;</th>
-                                </tr>
-                                <?php } ?>
-                                <tr>
-                                    <td valign="top">
+                                    <td>
                                         <div style="height: 15px; width: 15px; background-color: <?php echo $hotspot_colors[$i]; ?>"> </div>
                                     </td>
-                                    <td valign="top" align="left">
-                                        <input type="text" name="reponse[<?php echo $i; ?>]" value="<?php echo Security::remove_XSS($reponse[$i]); ?>" size="20" />
+                                    <td>
+                                        <input type="text" name="reponse[<?php echo $i; ?>]" value="<?php echo Security::remove_XSS($responseValue); ?>" size="45" />
                                     </td>
-
-                                    <td colspan="2"  align="left">
-                                        <textarea wrap="virtual" rows="3" cols="25" name="comment[<?php echo $i; ?>]" style="width: 100%"><?php echo Security::remove_XSS($comment[$i]); ?></textarea>
-                                        <input type="hidden" name="hotspot_type[<?php echo $i; ?>]" value="oar" />
+                                    <?php
+                                    $form = new FormValidator('form_' . $i);
+                                    $config = array(
+                                        'ToolbarSet' => 'TestProposedAnswer'
+                                    );
+                                    $form->addHtmlEditor('comment[' . $i . ']', null, false, false, $config);
+                                    $renderer = $form->defaultRenderer();
+                                    $form_template = '{content}';
+                                    $renderer->setFormTemplate($form_template);
+                                    $element_template = '
+                                        {label}
+                                        {element}';
+                                    $renderer->setElementTemplate($element_template);
+
+                                    $form->setDefaults(array('comment[' . $i . ']' => $commentValue));
+                                    $return = $form->return_form();
+                                    ?>
+                                    <td>&nbsp;</td>
+                                    <td align="left" ><?php echo $return; ?></td>
+                                <?php } ?>
+                                <td>
+                                    <?php
+                                    if ($answerType == HOT_SPOT_DELINEATION) {
+                                        if ($_SESSION['tmp_answers']['hotspot_type'][$i] == 'oar') {
+                                            ?>
+                                            <input type="hidden" name="weighting[<?php echo $i; ?>]" class="span3" value="0" />
+                                        <?php } else { ?>
+                                            <input type="text" name="weighting[<?php echo $i; ?>]" class="span3" value="<?php echo (isset($weighting[$i]) ? $weighting[$i] : 10); ?>" />
+                                                   <?php
+                                               }
+                                           }
+                                           if ($answerType == HOT_SPOT) {
+                                               ?>
+                                        <input type="text" name="weighting[<?php echo $i; ?>]" class="span3" value="<?php echo (isset($weighting[$i]) ? $weighting[$i] : 10); ?>" />
                                         <input type="hidden" name="hotspot_coordinates[<?php echo $i; ?>]" value="<?php echo (empty($hotspot_coordinates[$i]) ? '0;0|0|0' : $hotspot_coordinates[$i]); ?>" />
-                                    </td>
-                                    <?php if ($objExercise->selectFeedbackType() == EXERCISE_FEEDBACK_TYPE_DIRECT) { ?>
+                                        <input type="hidden" name="hotspot_type[<?php echo $i; ?>]" value="<?php echo (empty($hotspot_type[$i]) ? 'square' : $hotspot_type[$i]); ?>" />
+                                        <?php } ?>
+                                </td>
+                            </tr>
+                            <?php
+                        }
+
+                        $list = new LearnpathList(api_get_user_id());
+                        $flat_list = $list->get_flat_list();
+                        $select_lp_id = array();
+                        $option_lp = '';
+                        $isSelected = false;
+                        foreach ($flat_list as $id => $details) {
+                            $selected = '';
+                            $select_lp_id[$id] = $details['lp_name'];
+                            if (isset($lp_noerror) && $id == $lp_noerror) {
+                                $selected = 'selected="selected"';
+                                $isSelected = true;
+                            }
+                            $option_lp.='<option value="' . $id . '" ' . $selected . '>' . $details['lp_name'] . '</option>';
+                        }
+
+                        if ($isSelected) {
+                            $option_lp = '<option value="0">' . get_lang('SelectTargetLP') . '</option>' . $option_lp;
+                        } else {
+                            $option_lp = '<option value="0" selected="selected" >' . get_lang('SelectTargetLP') . '</option>' . $option_lp;
+                        }
+
+                        // Feedback SELECT
+                        $question_list = $objExercise->selectQuestionList();
+                        $option_feed = '';
+                        $option_feed.='<option value="0">' . get_lang('SelectTargetQuestion') . '</option>';
+                        $details = isset($details) ? $details : null;
+                        $id = isset($id) ? $id : 0;
+                        $selectQuestionNoError = isset($selectQuestionNoError) ? $selectQuestionNoError : null;
+                        foreach ($question_list as $key => $questionid) {
+                            $selected = '';
+                            $question = Question::read($questionid);
+                            $val = 'Q' . $key . ' :' . substrwords($question->selectTitle(), ICON_SIZE_SMALL);
+                            $select_lp_id[$id] = $details['lp_name'];
+                            if ($questionid == $selectQuestionNoError) {
+                                $selected = 'selected="selected"';
+                            }
+                            $option_feed.='<option value="' . $questionid . '" ' . $selected . ' >' . $val . '</option>';
+                        }
+                        if ($selectQuestionNoError == -1) {
+                            $option_feed.='<option value="-1" selected="selected" >' . get_lang('ExitTest') . '</option>';
+                        } else {
+                            $option_feed.='<option value="-1">' . get_lang('ExitTest') . '</option>';
+                        }
+
+                        if ($answerType == HOT_SPOT_DELINEATION) {
+                            ?>
+                            <tr>
+                                <th colspan="2" ><?php echo get_lang('IfNoError'); ?></th>
+                                <?php if ($objExercise->selectFeedbackType() == EXERCISE_FEEDBACK_TYPE_DIRECT) { ?>
+                                    <th colspan="2" ><?php echo get_lang('Feedback'); ?></th>
+                                    <th><?php echo get_lang('Scenario'); ?></th>
+                                <?php } else { ?>
+                                    <th colspan="3" ><?php echo get_lang('Feedback'); ?></th>
+                                <?php } ?>
+                                <th>&nbsp;</th>
+                            </tr>
+                            <tr>
+                                <td  colspan="2">
+                                    <?php echo get_lang('LearnerHasNoMistake'); ?>
+                                </td>
+                                <td colspan="2"  align="left">
+                                    <textarea wrap="virtual" rows="3" cols="25" name="comment_noerror" style="width: 100%"><?php echo Security::remove_XSS($comment_noerror); ?></textarea>
+                                </td>
+                                <?php if ($objExercise->selectFeedbackType() == EXERCISE_FEEDBACK_TYPE_DIRECT) { ?>
                                     <td>
                                         <table>
                                             <tr>
                                                 <td>
-                                                    <input type="checkbox" class="checkbox" name="<?php echo 'try[' . $i; ?>]" <?php if ($try[$i] == 1) echo'checked'; ?> />
+                                                    <input type="checkbox" class="checkbox" name="try_noerror" <?php if ($try_noerror == 1) echo'checked'; ?> />
                                                     <?php echo get_lang('TryAgain'); ?>
                                                     <br /><br />
                                                     <?php echo get_lang('SeeTheory'); ?>	  	<br />
-                                                    <select name="lp[<?php echo $i; ?>]" >
-                                                    <?php echo $option_lp; ?>
+                                                    <select name="lp_noerror" >
+                                                        <?php echo $option_lp; ?>
                                                     </select>
                                                     <br /><br />
                                                     <?php echo get_lang('Other'); ?>	<br />
-                                                    <input name="url[<?php echo $i; ?>]" value="<?php echo $url[$i]; ?>">
+                                                    <input name="url_noerror" value="<?php echo $url_noerror; ?>">
                                                     <br /><br />
                                                     <?php echo get_lang('SelectQuestion'); ?>	<br />
-                                                    <select name="select_question[<?php echo $i; ?>]">
-                                                    <?php echo $option_feed; ?>
+                                                    <select name="select_question_noerror">
+                                                        <?php echo $option_feed; ?>
                                                     </select>
                                                 </td>
                                             </tr>
                                         </table>
                                     </td>
-                                <?php } else { ?>
                                     <td>&nbsp;</td>
-                                <?php }
-                            }
-                            //end if is delineation
-                        } else {
-                            $commentValue = isset($comment[$i]) ? $comment[$i] : null;
-                            $responseValue = isset($reponse[$i]) ? $reponse[$i] : null;
-                            ?>
-                            <td valign="top">
-                                <div style="height: 15px; width: 15px; background-color: <?php echo $hotspot_colors[$i]; ?>"> </div>
-                            </td>
-                            <td valign="top" align="left">
-                                <input type="text" name="reponse[<?php echo $i; ?>]" value="<?php echo Security::remove_XSS($responseValue); ?>" size="45" />
-                            </td>
-                            <?php
-                            $form = new FormValidator('form_'.$i);
-                            $config = array(
-                              'ToolbarSet'  => 'TestProposedAnswer'
-                            );
-                            $form->addHtmlEditor('comment['.$i.']', null, false, false, $config);
-                            $renderer = $form->defaultRenderer();
-                            $form_template = '{content}';
-                            $renderer->setFormTemplate($form_template);
-                            $element_template = '
-                                {label}
-                                {element}
-                            ';
-                            $renderer->setElementTemplate($element_template);
-
-                            $form->setDefaults(array('comment['.$i.']' => $commentValue));
-                            $return = $form->return_form();
-                            ?>
-                            <td>&nbsp;</td>
-                            <td align="left" ><?php echo $return; ?></td>
+                                <?php } else { ?>
+                                    <td colspan="2">&nbsp;</td>
+                                <?php } ?>
+                            </tr>
                         <?php } ?>
-                            <td valign="top">
-                            <?php
-                            if ($answerType == HOT_SPOT_DELINEATION) {
-                                if ($_SESSION['tmp_answers']['hotspot_type'][$i] == 'oar') { ?>
-                                <input type="hidden" name="weighting[<?php echo $i; ?>]" class="span3" value="0" />
-                            <?php } else { ?>
-                                <input type="text" name="weighting[<?php echo $i; ?>]" class="span3" value="<?php echo (isset($weighting[$i]) ? $weighting[$i] : 10); ?>" />
-                                <?php
-                                }
-                            }
-                            if ($answerType == HOT_SPOT) { ?>
-                            <input type="text" name="weighting[<?php echo $i; ?>]" class="span3" value="<?php echo (isset($weighting[$i]) ? $weighting[$i] : 10); ?>" />
-                            <input type="hidden" name="hotspot_coordinates[<?php echo $i; ?>]" value="<?php echo (empty($hotspot_coordinates[$i]) ? '0;0|0|0' : $hotspot_coordinates[$i]); ?>" />
-                            <input type="hidden" name="hotspot_type[<?php echo $i; ?>]" value="<?php echo (empty($hotspot_type[$i]) ? 'square' : $hotspot_type[$i]); ?>" />
-                            <?php } ?>
-                            </td>
-                        </tr>
-                        <?php
-                    }
-
-                    $list = new LearnpathList(api_get_user_id());
-                    $flat_list = $list->get_flat_list();
-                    $select_lp_id = array();
-                    $option_lp = '';
-                    $isSelected = false;
-                    foreach ($flat_list as $id => $details) {
-                        $selected = '';
-                        $select_lp_id[$id] = $details['lp_name'];
-                        if (isset($lp_noerror) && $id == $lp_noerror) {
-                            $selected = 'selected="selected"';
-                            $isSelected = true;
-                        }
-                        $option_lp.='<option value="' . $id . '" ' . $selected . '>' . $details['lp_name'] . '</option>';
-                    }
-
-                    if ($isSelected) {
-                        $option_lp = '<option value="0">' . get_lang('SelectTargetLP') . '</option>' . $option_lp;
-                    } else {
-                        $option_lp = '<option value="0" selected="selected" >' . get_lang('SelectTargetLP') . '</option>' . $option_lp;
-                    }
-
-                    // Feedback SELECT
-                    $question_list = $objExercise->selectQuestionList();
-                    $option_feed = '';
-                    $option_feed.='<option value="0">' . get_lang('SelectTargetQuestion') . '</option>';
-                    $details = isset($details) ? $details : null;
-                    $id = isset($id) ? $id : 0;
-                    $selectQuestionNoError = isset($selectQuestionNoError) ? $selectQuestionNoError : null;
-                    foreach ($question_list as $key => $questionid) {
-                        $selected = '';
-                        $question = Question::read($questionid);
-                        $val = 'Q' . $key . ' :' . substrwords($question->selectTitle(), ICON_SIZE_SMALL);
-                        $select_lp_id[$id] = $details['lp_name'];
-                        if ($questionid == $selectQuestionNoError) {
-                            $selected = 'selected="selected"';
-                        }
-                        $option_feed.='<option value="' . $questionid . '" ' . $selected . ' >' . $val . '</option>';
-                    }
-                    if ($selectQuestionNoError == -1)
-                        $option_feed.='<option value="-1" selected="selected" >' . get_lang('ExitTest') . '</option>';
-                    else
-                        $option_feed.='<option value="-1">' . get_lang('ExitTest') . '</option>';
-
-                    if ($answerType == HOT_SPOT_DELINEATION) { ?>
-                        <tr>
-                            <th colspan="2" ><?php echo get_lang('IfNoError'); ?></th>
-                            <?php if ($objExercise->selectFeedbackType() == EXERCISE_FEEDBACK_TYPE_DIRECT) { ?>
-                                <th colspan="2" ><?php echo get_lang('Feedback'); ?></th>
-                                <th><?php echo get_lang('Scenario'); ?></th>
-                            <?php } else { ?>
-                                <th colspan="3" ><?php echo get_lang('Feedback'); ?></th>
-                            <?php } ?>
-                            <th>&nbsp;</th>
-                        </tr>
-                        <tr>
-                            <td  colspan="2" valign="top" align="left">
-                            <?php echo get_lang('LearnerHasNoMistake'); ?>
-                            </td>
-                            <td colspan="2"  align="left">
-                                <textarea wrap="virtual" rows="3" cols="25" name="comment_noerror" style="width: 100%"><?php echo Security::remove_XSS($comment_noerror); ?></textarea>
-                            </td>
-                                <?php if ($objExercise->selectFeedbackType() == EXERCISE_FEEDBACK_TYPE_DIRECT) { ?>
-                            <td>
-                                <table>
-                                    <tr>
-                                        <td>
-                                            <input type="checkbox" class="checkbox" name="try_noerror" <?php if ($try_noerror == 1) echo'checked'; ?> />
-                                            <?php echo get_lang('TryAgain'); ?>
-                                            <br /><br />
-                                            <?php echo get_lang('SeeTheory'); ?>	  	<br />
-                                            <select name="lp_noerror" >
-                                            <?php echo $option_lp; ?>
-                                            </select>
-                                            <br /><br />
-                                            <?php echo get_lang('Other'); ?>	<br />
-                                            <input name="url_noerror" value="<?php echo $url_noerror; ?>">
-                                            <br /><br />
-                                            <?php echo get_lang('SelectQuestion'); ?>	<br />
-                                            <select name="select_question_noerror">
-                                            <?php echo $option_feed; ?>
-                                            </select>
-                                        </td>
-                                    </tr>
-                                </table>
-                            </td>
-                            <td>&nbsp;</td>
-                            <?php } else { ?>
-                            <td colspan="2">&nbsp;</td>
-                            <?php } ?>
-                        </tr>
-                <?php } ?>
-                </table>
+                    </table>
                 </td>
             </tr>
             <tr>
-                <td colspan="2" valign="top" style="border-top:none">
-                <script>
-                    <!--
-                    // Version check based upon the values entered above in "Globals"
-                    var hasReqestedVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);
-                    <?php
-                    $swf_loaded = $answerType == HOT_SPOT_DELINEATION ? 'hotspot_delineation_admin' : 'hotspot_admin';
-                    $height = 450;
-                    ?>
-                    // Check to see if the version meets the requirements for playback
-                    if (hasReqestedVersion) {  // if we've detected an acceptable version
-                        var oeTags = '<object type="application/x-shockwave-flash" data="../plugin/hotspot/<?php echo $swf_loaded ?>.swf?modifyAnswers=<?php echo $modifyAnswers ?>" width="600" height="<?php echo $height ?>">'
-                        + '<param name="movie" value="../plugin/hotspot/<?php echo $swf_loaded ?>.swf?modifyAnswers=<?php echo $modifyAnswers ?>" />'
-                        + '<param name="test" value="OOoowww fo shooww" />'
-                        + '</object>';
-                        document.write(oeTags);   // embed the Flash Content SWF when all tests are passed
-                    } else {  // flash is too old or we can't detect the plugin
-                        var alternateContent = 'Error<br \/>'
-                        + 'This content requires the Macromedia Flash Player.<br \/>'
-                        + '<a href=http://www.macromedia.com/go/getflash/>Get Flash<\/a>';
-                        document.write(alternateContent);  // insert non-flash content
-                    }
-                    // -->
-                </script>
+                <td>
+                    <script>
+                        <!--
+                        // Version check based upon the values entered above in "Globals"
+                        var hasReqestedVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);
+    <?php
+    $swf_loaded = $answerType == HOT_SPOT_DELINEATION ? 'hotspot_delineation_admin' : 'hotspot_admin';
+    $height = 450;
+    ?>
+                        // Check to see if the version meets the requirements for playback
+                        if (hasReqestedVersion) {  // if we've detected an acceptable version
+                            var oeTags = '<object type="application/x-shockwave-flash" data="../plugin/hotspot/<?php echo $swf_loaded ?>.swf?modifyAnswers=<?php echo $modifyAnswers ?>" width="600" height="<?php echo $height ?>">'
+                                    + '<param name="movie" value="../plugin/hotspot/<?php echo $swf_loaded ?>.swf?modifyAnswers=<?php echo $modifyAnswers ?>" />'
+                                    + '<param name="test" value="OOoowww fo shooww" />'
+                                    + '</object>';
+                            document.write(oeTags);   // embed the Flash Content SWF when all tests are passed
+                        } else {  // flash is too old or we can't detect the plugin
+                            var alternateContent = 'Error<br \/>'
+                                    + 'This content requires the Macromedia Flash Player.<br \/>'
+                                    + '<a href=http://www.macromedia.com/go/getflash/>Get Flash<\/a>';
+                            document.write(alternateContent);  // insert non-flash content
+                        }
+                        // -->
+                    </script>
                 </td>
             </tr>
         </table>

+ 107 - 94
main/exercice/matching.class.php

@@ -30,42 +30,40 @@ class Matching extends Question
      * function which redefines Question::createAnswersForm
      * @param FormValidator $form
      */
-    public function createAnswersForm ($form)
+    public function createAnswersForm($form)
     {
         $defaults = array();
         $navigator_info = api_get_navigator();
 
         $nb_matches = $nb_options = 2;
-        if ($form -> isSubmitted()) {
-            $nb_matches = $form -> getSubmitValue('nb_matches');
-            $nb_options = $form -> getSubmitValue('nb_options');
-            if(isset($_POST['lessMatches']))
+        if ($form->isSubmitted()) {
+            $nb_matches = $form->getSubmitValue('nb_matches');
+            $nb_options = $form->getSubmitValue('nb_options');
+            if (isset($_POST['lessMatches']))
                 $nb_matches--;
-            if(isset($_POST['moreMatches']))
+            if (isset($_POST['moreMatches']))
                 $nb_matches++;
-            if(isset($_POST['lessOptions']))
+            if (isset($_POST['lessOptions']))
                 $nb_options--;
-            if(isset($_POST['moreOptions']))
+            if (isset($_POST['moreOptions']))
                 $nb_options++;
-
-        } else if(!empty($this -> id)) {
-            $answer = new Answer($this -> id);
-            $answer -> read();
-            if(count($answer->nbrAnswers)>0) {
+        } else if (!empty($this->id)) {
+            $answer = new Answer($this->id);
+            $answer->read();
+            if (count($answer->nbrAnswers) > 0) {
                 $a_matches = $a_options = array();
                 $nb_matches = $nb_options = 0;
-                for($i=1 ; $i<=$answer->nbrAnswers ; $i++){
-                    if ($answer -> isCorrect($i)) {
+                for ($i = 1; $i <= $answer->nbrAnswers; $i++) {
+                    if ($answer->isCorrect($i)) {
                         $nb_matches++;
-                        $defaults['answer['.$nb_matches.']'] = $answer -> selectAnswer($i);
-                        $defaults['weighting['.$nb_matches.']'] = float_format($answer -> selectWeighting($i),1);
-                        $defaults['matches['.$nb_matches.']'] = $answer -> correct[$i];
+                        $defaults['answer[' . $nb_matches . ']'] = $answer->selectAnswer($i);
+                        $defaults['weighting[' . $nb_matches . ']'] = float_format($answer->selectWeighting($i), 1);
+                        $defaults['matches[' . $nb_matches . ']'] = $answer->correct[$i];
                     } else {
                         $nb_options++;
-                        $defaults['option['.$nb_options.']'] = $answer -> selectAnswer($i);
+                        $defaults['option[' . $nb_options . ']'] = $answer->selectAnswer($i);
                     }
                 }
-
             }
         } else {
             $defaults['answer[1]'] = get_lang('DefaultMakeCorrespond1');
@@ -75,120 +73,135 @@ class Matching extends Question
             $defaults['option[2]'] = get_lang('DefaultMatchingOptB');
         }
         $a_matches = array();
-        for($i=1 ; $i<=$nb_options ; ++$i) {
-            $a_matches[$i] = chr(64+$i);  // fill the array with A, B, C.....
+        for ($i = 1; $i <= $nb_options; ++$i) {
+            $a_matches[$i] = chr(64 + $i);  // fill the array with A, B, C.....
         }
 
-        $form -> addElement('hidden', 'nb_matches', $nb_matches);
-        $form -> addElement('hidden', 'nb_options', $nb_options);
+        $form->addElement('hidden', 'nb_matches', $nb_matches);
+        $form->addElement('hidden', 'nb_options', $nb_options);
 
         // DISPLAY MATCHES
-        $html='<table class="data_table">
-					<tr>
-						<th width="10px">
-							'.get_lang('Number').'
-						</th>
-						<th width="40%">
-							'.get_lang('Answer').'
-						</th>
-						<th width="40%">
-							'.get_lang('MatchesTo').'
-						</th>
-						<th width="50px">
-							'.get_lang('Weighting').'
-						</th>
-					</tr>';
-
-        $form -> addElement ('label', get_lang('MakeCorrespond').'<br /> <img src="../img/fill_field.png">', $html);
+        $html = '<table class="table table-striped table-hover">
+            <thead>
+                <tr>
+                    <th width="10">' . get_lang('Number') . '</th>
+                    <th width="85%">' . get_lang('Answer') . '</th>
+                    <th width="15%">' . get_lang('MatchesTo') . '</th>
+                    <th width="10">' . get_lang('Weighting') . '</th>
+                </tr>
+            </thead>
+            <tbody>';
+
+        $form->addHeader(get_lang('MakeCorrespond'));
+        $form->addHtml($html);
 
         if ($nb_matches < 1) {
             $nb_matches = 1;
             Display::display_normal_message(get_lang('YouHaveToCreateAtLeastOneAnswer'));
         }
 
-        for($i = 1 ; $i <= $nb_matches ; ++$i) {
-            $form -> addElement ('html', '<tr><td>');
-            $group = array();
-            $puce = $form->createElement('text', null,null,'value="'.$i.'"');
-            $puce->freeze();
-            $group[] = $puce;
-
-            $group[] = $form->createElement('text', 'answer['.$i.']',null);
-            $group[] = $form->createElement('select', 'matches['.$i.']',null,$a_matches);
-            $group[] = $form->createElement('text', 'weighting['.$i.']',null, array('class' => 'span1', 'value' => 10));
-            $form -> addGroup($group, null, null, '</td><td>');
-            $form -> addElement ('html', '</td></tr>');
+        for ($i = 1; $i <= $nb_matches; ++$i) {
+            $renderer = &$form->defaultRenderer();
+
+            $renderer->setElementTemplate(
+                '<td><!-- BEGIN error --><span class="form_error">{error}</span><!-- END error -->{element}</td>',
+                "answer[$i]"
+            );
+            $renderer->setElementTemplate(
+                '<td><!-- BEGIN error --><span class="form_error">{error}</span><!-- END error -->{element}</td>',
+                "matches[$i]"
+            );
+            $renderer->setElementTemplate(
+                '<td><!-- BEGIN error --><span class="form_error">{error}</span><!-- END error -->{element}</td>',
+                "weighting[$i]"
+            );
+
+            $form->addHtml('<tr>');
+
+            $form->addHtml("<td>$i</td>");
+            $form->addText("answer[$i]", null);
+            $form->addSelect("matches[$i]", null, $a_matches);
+            $form->addText("weighting[$i]", null, true, ['value' => 10]);
+            
+            $form->addHtml('</tr>');
         }
 
-        $form -> addElement ('html', '</table></div></div>');
+        $form->addHtml('</tbody></table>');
         $group = array();
 
-        if ($navigator_info['name']=='Internet Explorer' &&  $navigator_info['version']=='6') {
-            $group[] = $form->createElement('submit', 'lessMatches', get_lang('DelElem'),'class="btn minus"');
-            $group[] = $form->createElement('submit', 'moreMatches', get_lang('AddElem'),'class="btn plus"');
+        if ($navigator_info['name'] == 'Internet Explorer' && $navigator_info['version'] == '6') {
+            $group[] = $form->createElement('submit', 'lessMatches', get_lang('DelElem'), 'class="btn minus"');
+            $group[] = $form->createElement('submit', 'moreMatches', get_lang('AddElem'), 'class="btn plus"');
         } else {
-            $group[] = $form->createElement('style_submit_button', 'moreMatches', get_lang('AddElem'),'class="btn plus"');
-            $group[] = $form->createElement('style_submit_button', 'lessMatches', get_lang('DelElem'),'class="btn minus"');
+            $renderer->setElementTemplate('<div class="form-group"><div class="col-sm-offset-2">{element}', 'lessMatches');
+            $renderer->setElementTemplate('{element}</div></div>', 'moreMatches');
+
+            $group[] = $form->addButtonDelete(get_lang('DelElem'), 'lessMatches', true);
+            $group[] = $form->addButtonCreate(get_lang('AddElem'), 'moreMatches', true);
         }
 
-        $form -> addGroup($group);
+        $form->addGroup($group);
 
         // DISPLAY OPTIONS
-        $html='<table class="data_table">
-					<tr style="text-align: center;">
-						<th width="10px">
-							'.get_lang('Number').'
-						</th>
-						<th width="90%"
-							'.get_lang('Answer').'
-						</th>
-					</tr>';
-        //$form -> addElement ('html', $html);
-        $form -> addElement ('label', null, $html);
+        $html = '<table class="table table-striped table-hover">
+            <thead>
+                <tr>
+                    <th width="15%">' . get_lang('Number') . '</th>
+                    <th width="85%">' . get_lang('Answer') . '</th>
+                </tr>
+            </thead>
+            <tbody>';
+
+        $form->addHtml($html);
 
         if ($nb_options < 1) {
             $nb_options = 1;
             Display::display_normal_message(get_lang('YouHaveToCreateAtLeastOneAnswer'));
         }
 
-        for($i = 1 ; $i <= $nb_options ; ++$i) {
-            $form -> addElement ('html', '<tr><td>');
-            $group = array();
-            $puce = $form->createElement('text', null,null,'value="'.chr(64+$i).'"');
-            $puce->freeze();
-            $group[] = $puce;
-            $group[] = $form->createElement('text', 'option['.$i.']',null, array('class' =>'span6'));
-            $form -> addGroup($group, null, null, '</td><td>');
-            $form -> addElement ('html', '</td></tr>');
+        for ($i = 1; $i <= $nb_options; ++$i) {
+            $renderer = &$form->defaultRenderer();
+
+            $renderer->setElementTemplate(
+                '<td><!-- BEGIN error --><span class="form_error">{error}</span><!-- END error -->{element}</td>',
+                "option[$i]"
+            );
+
+            $form->addHtml('<tr>');
+
+            $form->addHtml('<td>' . chr(64 + $i) . '</td>');
+            $form->addText("option[$i]", null);
+
+            $form->addHtml('</tr>');
         }
 
-        $form -> addElement ('html', '</table></div></div>');
+        $form->addHtml('</table>');
         $group = array();
         global $text, $class;
 
-        if ($navigator_info['name']=='Internet Explorer' &&  $navigator_info['version']=='6') {
+        if ($navigator_info['name'] == 'Internet Explorer' && $navigator_info['version'] == '6') {
             // setting the save button here and not in the question class.php
-            $group[] = $form->createElement('submit','submitQuestion',$text, 'class="'.$class.'"');
-            $group[] = $form->createElement('submit', 'lessOptions', get_lang('DelElem'),'class="minus"');
-            $group[] = $form->createElement('submit', 'moreOptions',get_lang('AddElem'),'class="plus"');
+            $group[] = $form->createElement('submit', 'submitQuestion', $text, 'class="' . $class . '"');
+            $group[] = $form->createElement('submit', 'lessOptions', get_lang('DelElem'), 'class="minus"');
+            $group[] = $form->createElement('submit', 'moreOptions', get_lang('AddElem'), 'class="plus"');
         } else {
             // setting the save button here and not in the question class.php
-            $group[] = $form->createElement('style_submit_button', 'lessOptions', get_lang('DelElem'),'class="minus"');
-            $group[] = $form->createElement('style_submit_button', 'moreOptions',get_lang('AddElem'),' class="plus"');
-            $group[] = $form->createElement('style_submit_button','submitQuestion',$text, 'class="'.$class.'"');
+            $group[] = $form->addButtonDelete(get_lang('DelElem'), 'lessOptions', true);
+            $group[] = $form->addButtonCreate(get_lang('AddElem'), 'moreOptions', true);
+            $group[] = $form->addButtonSave($text, 'submitQuestion', true);
         }
 
-        $form -> addGroup($group);
+        $form->addGroup($group);
 
-        if (!empty($this -> id)) {
-            $form -> setDefaults($defaults);
+        if (!empty($this->id)) {
+            $form->setDefaults($defaults);
         } else {
-            if ($this -> isContent == 1) {
-                $form -> setDefaults($defaults);
+            if ($this->isContent == 1) {
+                $form->setDefaults($defaults);
             }
         }
 
-        $form->setConstants(array('nb_matches' => $nb_matches,'nb_options' => $nb_options));
+        $form->setConstants(array('nb_matches' => $nb_matches, 'nb_options' => $nb_options));
     }
 
 

BIN
main/img/icons/128/survey_reporting_overall.png


BIN
main/img/icons/16/survey_reporting_overall.png


BIN
main/img/icons/22/survey_reporting_overall.png


BIN
main/img/icons/32/survey_reporting_overall.png


BIN
main/img/icons/48/survey_reporting_overall.png


BIN
main/img/icons/64/survey_reporting_overall.png


+ 1 - 1
main/inc/introductionSection.inc.php

@@ -296,7 +296,7 @@ if ($tool == TOOL_COURSE_HOMEPAGE && !isset($_GET['intro_cmdEdit'])) {
             $thematic_description_html .=
                 '<div class="col-md-6 items-progress">
                                                     <div class="topics">'.$subTitle2.'</div>
-                                                    <p class="title_topics">'.$thematic_info['title'].'</p>
+                                                    <p class="title_topics">'.$thematic_info2['title'].'</p>
                                                     <p class="date">'.$thematic_advance_info2['start_date'].'</p>
                                                     <h3 class="title">'.$thematic_advance_info2['content'].'</h3>
                                                     <p class="time">'.get_lang('DurationInHours').' : '.$thematic_advance_info2['duration'].' - <a href="'.$thematicUrl.'">'.get_lang('SeeDetail').'</a></p>

+ 1 - 1
main/inc/lib/custom_pages.class.php

@@ -53,7 +53,7 @@ class CustomPages
             include($file);
             exit;
         } else {
-            error_log('CustomPages::displayPage : could not read file ' . $file_name);
+            error_log('CustomPages::displayPage : could not read file ' . $file);
         }
     }
 

+ 93 - 46
main/inc/lib/internationalization.lib.php

@@ -664,8 +664,11 @@ function api_strtotime($time, $timezone = null) {
  *
  * @link http://php.net/manual/en/function.strftime.php
  */
-function api_format_date($time, $format = null, $language = null)
-{
+function api_format_date($time, $format = null, $language = null) {
+
+    $system_timezone = date_default_timezone_get();
+    date_default_timezone_set(_api_get_timezone());
+
     if (is_string($time)) {
         $time = strtotime($time);
     }
@@ -680,72 +683,116 @@ function api_format_date($time, $format = null, $language = null)
     if (is_int($format)) {
         switch ($format) {
             case DATE_FORMAT_ONLY_DAYNAME:
-                $datetype = IntlDateFormatter::SHORT;
-                $timetype = IntlDateFormatter::NONE;
+                $date_format = get_lang('dateFormatOnlyDayName', '', $language);
+                if (INTL_INSTALLED) {
+        			$datetype = IntlDateFormatter::SHORT;
+        			$timetype = IntlDateFormatter::NONE;
+        		}
                 break;
             case DATE_FORMAT_NUMBER_NO_YEAR:
-                $datetype = IntlDateFormatter::SHORT;
-                $timetype = IntlDateFormatter::NONE;
-                break;
-            case DATE_FORMAT_NUMBER:
-                $datetype = IntlDateFormatter::SHORT;
-                $timetype = IntlDateFormatter::NONE;
+                $date_format = get_lang('dateFormatShortNumberNoYear', '', $language);
+        		if (INTL_INSTALLED) {
+        			$datetype = IntlDateFormatter::SHORT;
+        			$timetype = IntlDateFormatter::NONE;
+        		}
                 break;
+        	case DATE_FORMAT_NUMBER:
+        		$date_format = get_lang('dateFormatShortNumber', '', $language);
+        		if (INTL_INSTALLED) {
+        			$datetype = IntlDateFormatter::SHORT;
+        			$timetype = IntlDateFormatter::NONE;
+        		}
+        		break;
             case TIME_NO_SEC_FORMAT:
-                $datetype = IntlDateFormatter::NONE;
-                $timetype = IntlDateFormatter::SHORT;
+                $date_format = get_lang('timeNoSecFormat', '', $language);
+                if (INTL_INSTALLED) {
+                    $datetype = IntlDateFormatter::NONE;
+                    $timetype = IntlDateFormatter::SHORT;
+                }
                 break;
             case DATE_FORMAT_SHORT:
-                $datetype = IntlDateFormatter::LONG;
-                $timetype = IntlDateFormatter::NONE;
+                $date_format = get_lang('dateFormatShort', '', $language);
+                if (INTL_INSTALLED) {
+                    $datetype = IntlDateFormatter::LONG;
+                    $timetype = IntlDateFormatter::NONE;
+                }
                 break;
             case DATE_FORMAT_LONG:
-                $datetype = IntlDateFormatter::FULL;
-                $timetype = IntlDateFormatter::NONE;
+                $date_format = get_lang('dateFormatLong', '', $language);
+                if (INTL_INSTALLED) {
+                    $datetype = IntlDateFormatter::FULL;
+                    $timetype = IntlDateFormatter::NONE;
+                }
                 break;
             case DATE_TIME_FORMAT_LONG:
-                $datetype = IntlDateFormatter::FULL;
-                $timetype = IntlDateFormatter::SHORT;
+                $date_format = get_lang('dateTimeFormatLong', '', $language);
+                if (INTL_INSTALLED) {
+                    $datetype = IntlDateFormatter::FULL;
+                    $timetype = IntlDateFormatter::SHORT;
+                }
                 break;
             case DATE_FORMAT_LONG_NO_DAY:
-                $datetype = IntlDateFormatter::FULL;
-                $timetype = IntlDateFormatter::SHORT;
+                $date_format = get_lang('dateFormatLongNoDay', '', $language);
+                if (INTL_INSTALLED) {
+                    $datetype = IntlDateFormatter::FULL;
+                    $timetype = IntlDateFormatter::SHORT;
+                }
                 break;
-            case DATE_TIME_FORMAT_SHORT:
-                $datetype = IntlDateFormatter::FULL;
-                $timetype = IntlDateFormatter::SHORT;
+			case DATE_TIME_FORMAT_SHORT:
+                $date_format = get_lang('dateTimeFormatShort', '', $language);
+                if (INTL_INSTALLED) {
+                    $datetype = IntlDateFormatter::FULL;
+                    $timetype = IntlDateFormatter::SHORT;
+                }
                 break;
-            case DATE_TIME_FORMAT_SHORT_TIME_FIRST:
-                $datetype = IntlDateFormatter::FULL;
-                $timetype = IntlDateFormatter::SHORT;
+			case DATE_TIME_FORMAT_SHORT_TIME_FIRST:
+                $date_format = get_lang('dateTimeFormatShortTimeFirst', '', $language);
+                if (INTL_INSTALLED) {
+                    $datetype = IntlDateFormatter::FULL;
+                    $timetype = IntlDateFormatter::SHORT;
+                }
                 break;
             case DATE_TIME_FORMAT_LONG_24H:
-                $datetype = IntlDateFormatter::FULL;
-                $timetype = IntlDateFormatter::SHORT;
+                $date_format = get_lang('dateTimeFormatLong24H', '', $language);
+                if (INTL_INSTALLED) {
+                    $datetype = IntlDateFormatter::FULL;
+                    $timetype = IntlDateFormatter::SHORT;
+                }
                 break;
             default:
-                $datetype = IntlDateFormatter::FULL;
-                $timetype = IntlDateFormatter::SHORT;
+                $date_format = get_lang('dateTimeFormatLong', '', $language);
+                if (INTL_INSTALLED) {
+                    $datetype = IntlDateFormatter::FULL;
+                    $timetype = IntlDateFormatter::SHORT;
+                }
         }
+    } else {
+        $date_format = $format;
     }
 
-    // Use ICU
-    if (is_null($language)) {
-        $language = api_get_language_isocode();
-    }
-
-    $date_formatter = new IntlDateFormatter(
-        $language,
-        $datetype,
-        $timetype,
-        date_default_timezone_get()
-    );
-
-    $formatted_date = api_to_system_encoding(
-        $date_formatter->format($time),
-        'UTF-8'
-    );
+    if (0) {
+        //if using PHP 5.3 format dates like: $dateFormatShortNumber, can't be used
+        //
+        // Use ICU
+        if (is_null($language)) {
+            $language = api_get_language_isocode();
+        }
+        $date_formatter = new IntlDateFormatter($language, $datetype, $timetype, date_default_timezone_get());
+        //$date_formatter->setPattern($date_format);
+        $formatted_date = api_to_system_encoding($date_formatter->format($time), 'UTF-8');
 
+    } else {
+        // We replace %a %A %b %B masks of date format with translated strings
+        $translated = &_api_get_day_month_names($language);
+        $date_format = str_replace(array('%A', '%a', '%B', '%b'),
+        array($translated['days_long'][(int)strftime('%w', $time )],
+            $translated['days_short'][(int)strftime('%w', $time)],
+            $translated['months_long'][(int)strftime('%m', $time) - 1],
+            $translated['months_short'][(int)strftime('%m', $time) - 1]),
+        $date_format);
+        $formatted_date = api_to_system_encoding(strftime($date_format, $time), 'UTF-8');
+    }
+    date_default_timezone_set($system_timezone);
     return $formatted_date;
 }
 

+ 1 - 1
main/inc/lib/pear/HTML/QuickForm/button.php

@@ -98,7 +98,7 @@ class HTML_QuickForm_button extends HTML_QuickForm_input
 
             return
                 $this->_getTabs() . '
-                <button class="'.$class.'" ' . $this->_getAttrString($this->_attributes) . ' />'.
+                <button class="'.$class.'" ' . $this->_getAttrString($this->_attributes) . '>'.
                 $icon.
                 $value.
                 '</button>';

+ 3 - 3
main/inc/lib/userportal.lib.php

@@ -53,7 +53,7 @@ class IndexManager
                 if (api_get_setting('allow_lostpassword') == 'true' || api_get_setting('allow_registration') == 'true') {
                     $login_form .= '<ul class="nav nav-pills nav-stacked">';
                     if (api_get_setting('allow_registration') != 'false') {
-                        $login_form .= '<li><a href="main/auth/inscription.php">'.get_lang('Reg').'</a></li>';
+                        $login_form .= '<li><a href="main/auth/inscription.php">'.get_lang('SignUp').'</a></li>';
                     }
                     if (api_get_setting('allow_lostpassword') == 'true') {
                         $login_form .= '<li><a href="main/auth/lostPassword.php">'.get_lang('LostPassword').'</a></li>';
@@ -1136,7 +1136,7 @@ class IndexManager
                                 'window_list.png',
                                 $session_box['title'],
                                 array('id' => 'session_img_' . $session_id),
-                                ICON_SIZE_LARGE
+                                ICON_SIZE_BIG
                             );
                             $extra_info = !empty($session_box['coach']) ? $session_box['coach'] : null;
                             $extra_info .= !empty($session_box['coach']) ? ' - '.$session_box['dates'] : $session_box['dates'];
@@ -1270,7 +1270,7 @@ class IndexManager
                                         'window_list.png',
                                         $session_box['title'],
                                         array('id' => 'session_img_' . $session_id),
-                                        ICON_SIZE_LARGE
+                                        ICON_SIZE_BIG
                                     );
 
                                 if (api_is_drh()) {

+ 3 - 0
main/install/configuration.dist.php

@@ -318,3 +318,6 @@ $_configuration['system_stable']     = NEW_VERSION_STABLE;
 //$_configuration['gravatar_enabled'] = true;
 // If Gravatar is enabled, tells which type of picture we want (default is "mm"). Options: mm | identicon | monsterid | wavatar
 //$_configuration['gravatar_type'] = 'mm';
+// Course log - Default columns to hide
+//$_configuration['course_log_hide_columns'] = array(1, 9);
+

+ 49 - 49
main/install/install_db.inc.php

@@ -1,10 +1,10 @@
 <?php
 /* For licensing terms, see /license.txt */
 /**
- *	Install the Chamilo database
- *	Notice : This script has to be included by index.php
+ *    Install the Chamilo database
+ *    Notice : This script has to be included by index.php
  *
- *	@package chamilo.install
+ * @package chamilo.install
  */
 
 /* This page is called only during a NEW chamilo installation */
@@ -13,74 +13,74 @@
  * Init checks
  */
 if (!defined('SYSTEM_INSTALLATION')) {
-	echo 'You are not allowed here!';
-	exit;
+    echo 'You are not allowed here!';
+    exit;
 }
 
 $urlForm = api_add_trailing_slash($urlForm);
 
 switch ($encryptPassForm) {
-	case 'md5' :
-		$passToStore = md5($passForm);
-		break;
-	case 'sha1' :
-		$passToStore = sha1($passForm);
-		break;
-	case 'none' :
-		$passToStore = $passForm;
-		break;
+    case 'md5' :
+        $passToStore = md5($passForm);
+        break;
+    case 'sha1' :
+        $passToStore = sha1($passForm);
+        break;
+    case 'none' :
+        $passToStore = $passForm;
+        break;
 }
 
 $dbPrefixForm = preg_replace('/[^a-zA-Z0-9_\-]/', '', $dbPrefixForm);
 
 $dbNameForm = preg_replace('/[^a-zA-Z0-9_\-]/', '', $dbNameForm);
 if (!empty($dbPrefixForm) && strpos($dbNameForm, $dbPrefixForm) !== 0) {
-	$dbNameForm = $dbPrefixForm.$dbNameForm;
+    $dbNameForm = $dbPrefixForm . $dbNameForm;
 }
 
 $dbStatsForm = preg_replace('/[^a-zA-Z0-9_\-]/', '', $dbStatsForm);
 if (!empty($dbPrefixForm) && strpos($dbStatsForm, $dbPrefixForm) !== 0) {
-	$dbStatsForm = $dbPrefixForm.$dbStatsForm;
+    $dbStatsForm = $dbPrefixForm . $dbStatsForm;
 }
 
 $dbUserForm = preg_replace('/[^a-zA-Z0-9_\-]/', '', $dbUserForm);
 if (!empty($dbPrefixForm) && strpos($dbUserForm, $dbPrefixForm) !== 0) {
-	$dbUserForm = $dbPrefixForm.$dbUserForm;
+    $dbUserForm = $dbPrefixForm . $dbUserForm;
 }
 
 $mysqlMainDb = $dbNameForm;
 if (empty($mysqlMainDb) || $mysqlMainDb == 'mysql' || $mysqlMainDb == $dbPrefixForm) {
-	$mysqlMainDb = $dbPrefixForm.'main';
+    $mysqlMainDb = $dbPrefixForm . 'main';
 }
 
 $mysqlStatsDb = $dbStatsForm;
 if (empty($mysqlStatsDb) || $mysqlStatsDb == 'mysql' || $mysqlStatsDb == $dbPrefixForm) {
-	$mysqlStatsDb = $dbPrefixForm.'stats';
+    $mysqlStatsDb = $dbPrefixForm . 'stats';
 }
 
 $mysqlUserDb = $dbUserForm;
 if (empty($mysqlUserDb) || $mysqlUserDb == 'mysql' || $mysqlUserDb == $dbPrefixForm) {
-	$mysqlUserDb = $dbPrefixForm.'user';
+    $mysqlUserDb = $dbPrefixForm . 'user';
 }
 
 //This parameter is needed to run a command line to install Chamilo using BNPanel + ISPConfig see #1799
 if (!defined('CLI_INSTALLATION')) {
 
-	$result = Database::query("SHOW VARIABLES LIKE 'datadir'") or die(Database::error());
+    $result = Database::query("SHOW VARIABLES LIKE 'datadir'") or die(Database::error());
 
-	$mysqlRepositorySys = Database::fetch_array($result);
-	$mysqlRepositorySys = $mysqlRepositorySys['Value'];
+    $mysqlRepositorySys = Database::fetch_array($result);
+    $mysqlRepositorySys = $mysqlRepositorySys['Value'];
 
-	$create_database = true;
+    $create_database = true;
 
-	if (database_exists($mysqlMainDb)) {
+    if (database_exists($mysqlMainDb)) {
         $create_database = false;
     }
-	//Create database
-	if ($create_database) {
-		$sql = "CREATE DATABASE IF NOT EXISTS `$mysqlMainDb`";
-		Database::query($sql) or die(Database::error());
-	}
+    //Create database
+    if ($create_database) {
+        $sql = "CREATE DATABASE IF NOT EXISTS `$mysqlMainDb`";
+        Database::query($sql) or die(Database::error());
+    }
 }
 
 $mysqlStatsDb = $mysqlMainDb;
@@ -88,31 +88,31 @@ $mysqlUserDb = $mysqlMainDb;
 
 // This parameter is needed to run a command line install of Chamilo (needed for Phing)
 if (!defined('CLI_INSTALLATION')) {
-	include api_get_path(SYS_LANG_PATH).'english/create_course.inc.php';
+    include api_get_path(SYS_LANG_PATH) . 'english/create_course.inc.php';
 
-	if ($languageForm != 'english') {
-		include api_get_path(SYS_LANG_PATH).$languageForm.'/create_course.inc.php';
-	}
+    if ($languageForm != 'english') {
+        include api_get_path(SYS_LANG_PATH) . $languageForm . '/create_course.inc.php';
+    }
 }
 
 Database::select_db($mysqlMainDb) or die(Database::error());
 
 $installation_settings = array();
-$installation_settings['{ORGANISATIONNAME}']                = $institutionForm;
-$installation_settings['{ORGANISATIONURL}']                 = $institutionUrlForm;
-$installation_settings['{CAMPUSNAME}']                      = $campusForm;
-$installation_settings['{PLATFORMLANGUAGE}']                = $languageForm;
-$installation_settings['{ALLOWSELFREGISTRATION}']           = trueFalse($allowSelfReg);
-$installation_settings['{ALLOWTEACHERSELFREGISTRATION}']    = trueFalse($allowSelfRegProf);
-$installation_settings['{ADMINLASTNAME}']                   = $adminLastName;
-$installation_settings['{ADMINFIRSTNAME}']                  = $adminFirstName;
-$installation_settings['{ADMINLOGIN}']                      = $loginForm;
-$installation_settings['{ADMINPASSWORD}']                   = $passToStore;
-$installation_settings['{ADMINEMAIL}']                      = $emailForm;
-$installation_settings['{ADMINPHONE}']                      = $adminPhoneForm;
-$installation_settings['{PLATFORM_AUTH_SOURCE}']            = PLATFORM_AUTH_SOURCE;
-$installation_settings['{ADMINLANGUAGE}']                   = $languageForm;
-$installation_settings['{HASHFUNCTIONMODE}']                = $encryptPassForm;
+$installation_settings['{ORGANISATIONNAME}'] = $institutionForm;
+$installation_settings['{ORGANISATIONURL}'] = $institutionUrlForm;
+$installation_settings['{CAMPUSNAME}'] = $campusForm;
+$installation_settings['{PLATFORMLANGUAGE}'] = $languageForm;
+$installation_settings['{ALLOWSELFREGISTRATION}'] = trueFalse($allowSelfReg);
+$installation_settings['{ALLOWTEACHERSELFREGISTRATION}'] = trueFalse($allowSelfRegProf);
+$installation_settings['{ADMINLASTNAME}'] = $adminLastName;
+$installation_settings['{ADMINFIRSTNAME}'] = $adminFirstName;
+$installation_settings['{ADMINLOGIN}'] = $loginForm;
+$installation_settings['{ADMINPASSWORD}'] = $passToStore;
+$installation_settings['{ADMINEMAIL}'] = $emailForm;
+$installation_settings['{ADMINPHONE}'] = $adminPhoneForm;
+$installation_settings['{PLATFORM_AUTH_SOURCE}'] = PLATFORM_AUTH_SOURCE;
+$installation_settings['{ADMINLANGUAGE}'] = $languageForm;
+$installation_settings['{HASHFUNCTIONMODE}'] = $encryptPassForm;
 
 AddCourse::drop_course_tables();
 

+ 36 - 15
main/install/install_files.inc.php

@@ -16,23 +16,44 @@
 
 if (defined('SYSTEM_INSTALLATION')) {
 
-	// Write the system config file
-	write_system_config_file(api_get_path(CONFIGURATION_PATH).'configuration.php');
+    // Write the system config file
+    write_system_config_file(api_get_path(CONFIGURATION_PATH) . 'configuration.php');
 
-	// Write a distribution file with the config as a backup for the admin
-	write_system_config_file(api_get_path(CONFIGURATION_PATH).'configuration.dist.php');
+    // Write a distribution file with the config as a backup for the admin
+    write_system_config_file(api_get_path(CONFIGURATION_PATH) . 'configuration.dist.php');
 
-	// Write a .htaccess file in the course repository
-	write_courses_htaccess_file($urlAppendPath);
+    // Write a .htaccess file in the course repository
+    write_courses_htaccess_file($urlAppendPath);
 
-	// Copy distribution files with renaming for being the actual system configuration files.
-	copy(api_get_path(CONFIGURATION_PATH).'add_course.conf.dist.php', api_get_path(CONFIGURATION_PATH).'add_course.conf.php');
-	copy(api_get_path(CONFIGURATION_PATH).'course_info.conf.dist.php', api_get_path(CONFIGURATION_PATH).'course_info.conf.php');
-	copy(api_get_path(CONFIGURATION_PATH).'mail.conf.dist.php', api_get_path(CONFIGURATION_PATH).'mail.conf.php');
-	copy(api_get_path(CONFIGURATION_PATH).'profile.conf.dist.php', api_get_path(CONFIGURATION_PATH).'profile.conf.php');
-    copy(api_get_path(CONFIGURATION_PATH).'events.conf.dist.php', api_get_path(CONFIGURATION_PATH).'events.conf.php');
-    copy(api_get_path(CONFIGURATION_PATH).'auth.conf.dist.php', api_get_path(CONFIGURATION_PATH).'auth.conf.php');
-	copy(api_get_path(CONFIGURATION_PATH).'portfolio.conf.dist.php', api_get_path(CONFIGURATION_PATH).'portfolio.conf.php');
+    // Copy distribution files with renaming for being the actual system configuration files.
+    copy(
+        api_get_path(CONFIGURATION_PATH) . 'add_course.conf.dist.php',
+        api_get_path(CONFIGURATION_PATH) . 'add_course.conf.php'
+    );
+    copy(
+        api_get_path(CONFIGURATION_PATH) . 'course_info.conf.dist.php',
+        api_get_path(CONFIGURATION_PATH) . 'course_info.conf.php'
+    );
+    copy(
+        api_get_path(CONFIGURATION_PATH) . 'mail.conf.dist.php',
+        api_get_path(CONFIGURATION_PATH) . 'mail.conf.php'
+    );
+    copy(
+        api_get_path(CONFIGURATION_PATH) . 'profile.conf.dist.php',
+        api_get_path(CONFIGURATION_PATH) . 'profile.conf.php'
+    );
+    copy(
+        api_get_path(CONFIGURATION_PATH) . 'events.conf.dist.php',
+        api_get_path(CONFIGURATION_PATH) . 'events.conf.php'
+    );
+    copy(
+        api_get_path(CONFIGURATION_PATH) . 'auth.conf.dist.php',
+        api_get_path(CONFIGURATION_PATH) . 'auth.conf.php'
+    );
+    copy(
+        api_get_path(CONFIGURATION_PATH) . 'portfolio.conf.dist.php',
+        api_get_path(CONFIGURATION_PATH) . 'portfolio.conf.php'
+    );
 } else {
-	echo 'You are not allowed here !' . __FILE__;
+    echo 'You are not allowed here !' . __FILE__;
 }

+ 0 - 2
main/lang/arabic/admin.inc.php

@@ -317,9 +317,7 @@ $LimitUsersListDefaultMaxComment = " (في الشاشات التي تسمح بإ
 $Plugins = " إدخالات";
 $HideDLTTMarkupComment = " [= ... =]  أخف العلامة عندما لايترجم متغير اللغة";
 $Info = " معلومات";
-$UserAdded = " لقد تم إضافة المستخدم";
 $NoSearchResults = " لم يتم العثور على نتائج للبحث";
-$UserDeleted = " لقد تم حذف المستخدم";
 $NoClassesForThisCourse = " و لا فصل مسجل في هذا المقرر";
 $CourseUsage = " استخدام المقرر";
 $NoCoursesForThisUser = " هذا المستخدم غير مسجل في أي مقرر";

+ 1 - 0
main/lang/arabic/trad4all.inc.php

@@ -174,6 +174,7 @@ $ExportShort = "تصدير إلى سكورم";
 $WCAGGoMenu = " الذهاب للقائمة";
 $WCAGGoContent = " الذهاب للمحتوى";
 $NoTimeLimits = " لا حدود للوقت";
+$UserDeleted = " لقد تم حذف المستخدم";
 $Tool = "  أداة";
 $Choose = " اختر";
 $AnnEmpty = "لقد تم مسح قائمة الإعلانات";

+ 0 - 2
main/lang/asturian/admin.inc.php

@@ -312,9 +312,7 @@ $LimitUsersListDefaultMaxComment = "Nes pantalles de matriculación de los usuar
 $Plugins = "Plugins";
 $HideDLTTMarkupComment = "Escoder la marca [=...=] si una variable d'idioma ta ensin traducir.";
 $Info = "Información";
-$UserAdded = "Añadióse l'usuariu";
 $NoSearchResults = "Nun s'atoparen resultaos";
-$UserDeleted = "Los usuarios seleicionaos esborrárense";
 $NoClassesForThisCourse = "Nun hai clases nesti cursu";
 $CourseUsage = "Usu del cursu";
 $NoCoursesForThisUser = "Esti usuariu nun ta matriculáu en nengún cursu";

+ 0 - 1
main/lang/asturian/gradebook.inc.php

@@ -92,7 +92,6 @@ $Certificates = "Certificaos";
 $Certificate = "Certificáu";
 $ChooseUser = "Escoyer usuarios pa esta evaluación";
 $FirstLetter = "Primer lletra del apellíu";
-$UserAdded = "Añadióse l'usuariu";
 $ResultEdited = "Resultáu actualizáu";
 $ChooseFormat = "Escoyer formatu";
 $OutputFileType = "Tipu de ficheru de salida";

+ 1 - 0
main/lang/asturian/trad4all.inc.php

@@ -231,6 +231,7 @@ $ExportShort = "Esportación SCORM";
 $WCAGGoMenu = "Dir al menú";
 $WCAGGoContent = "Dir al conteníu";
 $NoTimeLimits = "Ensin llende de tiempu";
+$UserDeleted = "Los usuarios seleicionaos esborrárense";
 $Tool = "Ferramienta";
 $Choose = "Escueya";
 $AnnEmpty = "Les anuncies esborrárense";

+ 0 - 2
main/lang/asturian/userInfo.inc.php

@@ -139,7 +139,6 @@ $ThisIsACloseGroup = "Esti ye un grupu zarráu";
 $IAmAReader = "Yo soi un llector";
 $UserChangeToReader = "Usuariu cambiáu a llector";
 $AddModerator = "Amestar como moderador";
-$UserDeleted = "Los usuarios seleicionaos esborrárense";
 $JoinGroup = "Xunise al grupu";
 $YouShouldJoinTheGroup = "Tendría de xunise al grupu";
 $WaitingForAdminResponse = "Esperando a que l'almin respuenda";
@@ -173,7 +172,6 @@ $UserIsNotSubscribedToThisGroup = "L'usuariu nun ta apuntáu a esti grupu";
 $InvitationReceived = "Invitación aceptada";
 $InvitationSent = "Invitación unviada";
 $YouAlreadySentAnInvitation = "Usté yá unvió una invitación";
-$UserAdded = "Añadióse l'usuariu";
 $FilesSizeExceedsX = "Tamañu del archivu pergrande";
 $YouShouldWriteASubject = "Tienes qu'escribir l'asuntu";
 $Topics = "Temes";

+ 0 - 2
main/lang/basque/admin.inc.php

@@ -325,9 +325,7 @@ $LimitUsersListDefaultMaxComment = "Ikastaroetan edo klaseetan erabiltzaileek iz
 $Plugins = "Pluginak";
 $HideDLTTMarkupComment = "Ezkutatu [= ... =] marka, hizkuntzaren aldagai bat itzulita ez dagoenean";
 $Info = "Informazioa";
-$UserAdded = "Erabiltzailea gehitu da";
 $NoSearchResults = "Emaitzarik ez bilaketan";
-$UserDeleted = "Erabiltzailea kendu da";
 $NoClassesForThisCourse = "Ez dago klase inskribaturik ikastaro honetan";
 $CourseUsage = "Ikastaroaren erabilera";
 $NoCoursesForThisUser = "Erabiltzaile honek ikastaro batean ere ez du izenik eman";

+ 0 - 1
main/lang/basque/gradebook.inc.php

@@ -92,7 +92,6 @@ $Certificates = "Ziurtagiriak";
 $Certificate = "Ziurtagiria";
 $ChooseUser = "Hautatu erabiltzaileak ebaluazio honetarako";
 $FirstLetter = "Deituraren lehen letra";
-$UserAdded = "Erabiltzailea gehitu da";
 $ResultEdited = "Emaitza editatu da";
 $ChooseFormat = "Aukeratu formatua";
 $OutputFileType = "Irteerako fitxategi mota";

+ 1 - 0
main/lang/basque/trad4all.inc.php

@@ -249,6 +249,7 @@ $AllDay = "Egun osoan";
 $WCAGGoMenu = "Joan menura";
 $WCAGGoContent = "Joan edukira";
 $NoTimeLimits = "Ez dago denbora mugarik";
+$UserDeleted = "Erabiltzailea kendu da";
 $Tool = "tresna";
 $Choose = "Aukeratu";
 $SearchXapianModuleNotInstalled = "PHPren Xapian bilaketa modulua ez dago instalaturik zerbitzarian, mesedez, jarri harremanetan zure kudeatzailearekin";

+ 0 - 2
main/lang/basque/userInfo.inc.php

@@ -140,7 +140,6 @@ $ThisIsACloseGroup = "Talde itxia da";
 $IAmAReader = "Parte hartzailea naiz";
 $UserChangeToReader = "Erabiltzailea parte hartzaile bihurtu da";
 $AddModerator = "Gehitu moderatzaile gisa";
-$UserDeleted = "Erabiltzailea kendu da taldetik";
 $JoinGroup = "Sartu taldean";
 $YouShouldJoinTheGroup = "Taldean sartu beharko zenuke";
 $WaitingForAdminResponse = "Itxaroten kudeatzailearen erantzunari";
@@ -174,7 +173,6 @@ $UserIsNotSubscribedToThisGroup = "Erabiltzailea ez dago talde honetan inskribat
 $InvitationReceived = "Gonbitea jaso da";
 $InvitationSent = "Gonbitea bidali da";
 $YouAlreadySentAnInvitation = "Lehen bidali zenuen gonbite bat";
-$UserAdded = "Erabiltzailea gehitu da";
 $FilesSizeExceedsX = "Fitxategien tamaina gainditu da";
 $YouShouldWriteASubject = "Gaia idatzi behar duzu";
 $Topics = "Gaiak";

+ 0 - 2
main/lang/brazilian/admin.inc.php

@@ -345,9 +345,7 @@ $LimitUsersListDefaultMaxComment = "Nas telas que permitem a adição de usuári
 $Plugins = "Plugins";
 $HideDLTTMarkupComment = "Esconder os caracteres do código [=...=] quando uma variável não estiver traduzida no respectivo idioma";
 $Info = "informação";
-$UserAdded = "O usuário foi adicionado";
 $NoSearchResults = "Nenhuma ocorrência encontrada";
-$UserDeleted = "Os usuários selecionados foram excluidos";
 $NoClassesForThisCourse = "Não há turmas inscritas para esse curso";
 $CourseUsage = "Utilização do curso";
 $NoCoursesForThisUser = "Este usuário não está inscrito em nenhum curso";

+ 0 - 1
main/lang/brazilian/gradebook.inc.php

@@ -92,7 +92,6 @@ $Certificates = "Certificados";
 $Certificate = "Certificado";
 $ChooseUser = "Selecionar usuários para esta avaliação";
 $FirstLetter = "Primeira letra do sobrenome";
-$UserAdded = "O usuário foi adicionado";
 $ResultEdited = "Resultado atualizado";
 $ChooseFormat = "Escolher formato";
 $OutputFileType = "Tipo de arquivo de saída";

+ 1 - 0
main/lang/brazilian/trad4all.inc.php

@@ -559,6 +559,7 @@ $AllDay = "Todos os dias";
 $WCAGGoMenu = "Ir para o menu";
 $WCAGGoContent = "Ir para o conteúdo";
 $NoTimeLimits = "Sem limite de tempo";
+$UserDeleted = "Os usuários selecionados foram excluidos";
 $Tool = "ferramenta";
 $Choose = "Selecionar";
 $SearchXapianModuleNotInstalled = "O módulo de busca Xampian não está instalado";

+ 0 - 2
main/lang/brazilian/userInfo.inc.php

@@ -140,7 +140,6 @@ $ThisIsACloseGroup = "Este é um grupo restrito";
 $IAmAReader = "Eu sou um leitor";
 $UserChangeToReader = "Usuário atualizado para leitor";
 $AddModerator = "Adicionar como moderador";
-$UserDeleted = "O usuário foi excluído";
 $JoinGroup = "Participar do grupo";
 $YouShouldJoinTheGroup = "Você deve fazer parte do grupo";
 $WaitingForAdminResponse = "Aguardando resposta do adminitrador";
@@ -174,7 +173,6 @@ $UserIsNotSubscribedToThisGroup = "Usuário não está inscrito no grupo";
 $InvitationReceived = "Convites recebidos";
 $InvitationSent = "Convites enviados";
 $YouAlreadySentAnInvitation = "Você já enviou um convite";
-$UserAdded = "O usuário foi adicionado";
 $FilesSizeExceedsX = "Excedeu o tamanho máximo de arquivo";
 $YouShouldWriteASubject = "Você deve escrever um assunto";
 $Topics = "Tópicos";

+ 0 - 2
main/lang/bulgarian/admin.inc.php

@@ -312,9 +312,7 @@ $LimitUsersListDefaultMaxComment = "Прилага се, когато запис
 $Plugins = "Разширения на системата";
 $HideDLTTMarkupComment = "Скриване на маркерите [= ... =], появяващи се при срещане на непреведен на съответния език текст (текстова променлива).";
 $Info = "Преглед";
-$UserAdded = "Потребителят е регистриран в системата.";
 $NoSearchResults = "Няма данни.";
-$UserDeleted = "Данните на потребителя са изтрити.";
 $NoClassesForThisCourse = "За този курс няма записани класове.";
 $CourseUsage = "Използване на курса";
 $NoCoursesForThisUser = "Този потребител не е записан в курс.";

+ 0 - 1
main/lang/bulgarian/gradebook.inc.php

@@ -92,7 +92,6 @@ $Certificates = "Сертификати";
 $Certificate = "Сертификат";
 $ChooseUser = "Изберете потребители за това оценяване";
 $FirstLetter = "Първа буква от името";
-$UserAdded = "Потребителят е регистриран в системата.";
 $ResultEdited = "Резултатът е редактиран.";
 $ChooseFormat = "Избор на формат";
 $OutputFileType = "Тип на изходящия файл";

+ 1 - 0
main/lang/bulgarian/trad4all.inc.php

@@ -232,6 +232,7 @@ $ExportShort = "Експортиране (SCORM)";
 $WCAGGoMenu = "Към меню";
 $WCAGGoContent = "Към съдържание";
 $NoTimeLimits = "Без ограничения във времето";
+$UserDeleted = "Данните на потребителя са изтрити.";
 $Tool = "Инструмент";
 $Choose = "Изберете";
 $AnnEmpty = "Списъкът с обявите е празен.";

+ 0 - 1
main/lang/bulgarian/userInfo.inc.php

@@ -118,7 +118,6 @@ $GroupMembers = "Членове на групата";
 $ReturnToInbox = "Към входящите съобщения";
 $Me = "Аз";
 $LeaveGroup = "Напускане на групата";
-$UserAdded = "Потребителят е регистриран в системата.";
 $Topics = "Теми";
 $StatusInThisGroup = "Статус в групата";
 $GroupDescription = "Описание на групата";

+ 0 - 2
main/lang/catalan/admin.inc.php

@@ -331,9 +331,7 @@ $LimitUsersListDefaultMaxComment = "A les pantalles d'inscripció dels usuaris e
 $Plugins = "Connectors";
 $HideDLTTMarkupComment = "Amagar la marca [= ... =] quan una variable d'idioma no estigui traduïda";
 $Info = "Informació";
-$UserAdded = "L'usuari ha estat afegit";
 $NoSearchResults = "No s'han trobat resultats";
-$UserDeleted = "L'usuari ha estat esborrat";
 $NoClassesForThisCourse = "No hi ha classes en aquest curs";
 $CourseUsage = "Utilització del curs";
 $NoCoursesForThisUser = "Aquest usuari no s'ha inscrit a cap curs";

+ 0 - 1
main/lang/catalan/gradebook.inc.php

@@ -92,7 +92,6 @@ $Certificates = "Certificats";
 $Certificate = "Certificat";
 $ChooseUser = "Seleccionar usuaris per aquesta avaluació";
 $FirstLetter = "Primera lletra del cognom";
-$UserAdded = "L'usuari ha estat afegit";
 $ResultEdited = "Resultat actualitzat";
 $ChooseFormat = "Escollir format";
 $OutputFileType = "Tipus de fitxer de sortida";

+ 1 - 0
main/lang/catalan/trad4all.inc.php

@@ -367,6 +367,7 @@ $AllDay = "Tot el dia";
 $WCAGGoMenu = "Vés al menú";
 $WCAGGoContent = "Vés al contingut";
 $NoTimeLimits = "Sense límit de temps";
+$UserDeleted = "L'usuari ha estat esborrat";
 $Tool = "Eina";
 $Choose = "Trieu";
 $SearchXapianModuleNotInstalled = "El mòdul Xapian de PHP no està configurat en el seu servidor";

+ 0 - 2
main/lang/catalan/userInfo.inc.php

@@ -140,7 +140,6 @@ $ThisIsACloseGroup = "Grup privat";
 $IAmAReader = "Usuari base";
 $UserChangeToReader = "Usuari convertit a lector";
 $AddModerator = "Afegeix com moderador";
-$UserDeleted = "Els usuaris seleccionats han estat donats de baixa al grup";
 $JoinGroup = "Unir-se al grup";
 $YouShouldJoinTheGroup = "Hauríeu d'unir-se al grup";
 $WaitingForAdminResponse = "Esperant a que l'administrador respongui";
@@ -174,7 +173,6 @@ $UserIsNotSubscribedToThisGroup = "Heu deixat de formar part d'aquest grup";
 $InvitationReceived = "Invitacions rebudes";
 $InvitationSent = "Invitacions enviades";
 $YouAlreadySentAnInvitation = "Ja li heu enviat una invitació";
-$UserAdded = "L'usuari ha estat afegit";
 $FilesSizeExceedsX = "Mida de l'arxiu excedida";
 $YouShouldWriteASubject = "Heu d'escriure l'assumpte";
 $Topics = "Temes";

+ 0 - 2
main/lang/croatian/admin.inc.php

@@ -309,9 +309,7 @@ $LinkURL = "URL poveznice";
 $OpenInNewWindow = "Otvori u novom prozoru";
 $Plugins = "Dodatci";
 $Info = "podatci";
-$UserAdded = "Korisnik je dodan";
 $NoSearchResults = "Potraga bez rezultata";
-$UserDeleted = "Korisnik izbrisan";
 $NoClassesForThisCourse = "Za taj kolegij nema upisanih razreda";
 $CourseUsage = "Uporaba kolegija";
 $NoCoursesForThisUser = "Korisnik nije upisan ni na jedan kolegij";

+ 0 - 1
main/lang/croatian/gradebook.inc.php

@@ -89,7 +89,6 @@ $Certificates = "Potvrđuje";
 $Certificate = "Potvrda";
 $ChooseUser = "Odaberite studenta za ocjenjivanje";
 $FirstLetter = "Prvo slovo prezimena";
-$UserAdded = "Korisnik je dodan";
 $ResultEdited = "Rezultat ažuriran";
 $ChooseFormat = "Odaberite format";
 $OutputFileType = "Vrsta datoteke za prenos";

+ 1 - 0
main/lang/croatian/trad4all.inc.php

@@ -175,6 +175,7 @@ $ExportShort = "Brzi prijenos";
 $WCAGGoMenu = "Pođi na izbornik";
 $WCAGGoContent = "Pođi na sadržaj";
 $NoTimeLimits = "Bez vremenskog ograničenja";
+$UserDeleted = "Korisnik izbrisan";
 $Tool = "alat";
 $AnnEmpty = "Ispražnjen popis obavijesti";
 $AnnouncementModified = "Obavijest izmijenjena";

+ 0 - 2
main/lang/czech/admin.inc.php

@@ -310,9 +310,7 @@ $LinkURL = "URL odkazu (Link-u)";
 $OpenInNewWindow = "Otevřít v novém okně";
 $Plugins = "Doplňky";
 $Info = "informace";
-$UserAdded = "Uživatel byl přidán";
 $NoSearchResults = "Žádné výsledky hledání";
-$UserDeleted = "Uživatel byl smazán";
 $NoClassesForThisCourse = "Žádné třídy nejsou zapsané do tohoto kurzu";
 $CourseUsage = "Statistika kurzu";
 $NoCoursesForThisUser = "Uživatel není zapsán v kurzu";

+ 1 - 0
main/lang/czech/trad4all.inc.php

@@ -85,6 +85,7 @@ $TotalMDEs = "Celkový počet zápisů do MD:";
 $WCAGGoMenu = "Jdi do menu";
 $WCAGGoContent = "Jdi na obsah";
 $NoTimeLimits = "Žádné časové omezení";
+$UserDeleted = "Uživatel byl smazán";
 $Tool = "nástroj";
 $Choose = "Zvolit";
 $AnnEmpty = "Seznam oznámení byl vyčistěn";

+ 0 - 2
main/lang/danish/admin.inc.php

@@ -300,9 +300,7 @@ $LimitUsersListDefaultMaxComment = "Hvis den første ikke-filtreret oversigt ind
 $Plugins = "Plugin";
 $HideDLTTMarkupComment = "Skjul [=...=] markup når en sprogvariable ikke er oversat";
 $Info = "information";
-$UserAdded = "Brugeren er tilføjet";
 $NoSearchResults = "Ingen resultat af søgningen";
-$UserDeleted = "Brugeren er slettet";
 $NoClassesForThisCourse = "Der er ingen klasser tilmeldt dette kursus";
 $CourseUsage = "Kursusbrug";
 $NoCoursesForThisUser = "Denne bruger er ikke tilmeldt noget kursus";

+ 1 - 0
main/lang/danish/trad4all.inc.php

@@ -155,6 +155,7 @@ $ExportShort = "Eksporter som SCORM";
 $WCAGGoMenu = "Gå til menu";
 $WCAGGoContent = "Gå til indhold";
 $NoTimeLimits = "Ingen tidsbegrænsning";
+$UserDeleted = "Brugeren er slettet";
 $Tool = "værktøj";
 $Choose = "Vælg";
 $AnnEmpty = "Meddelelseslisten er ryddet";

+ 0 - 2
main/lang/dutch/admin.inc.php

@@ -324,9 +324,7 @@ $LimitUsersListDefaultMaxComment = "In schermen waar gebruikers kunnen toegevoeg
 $Plugins = "Plug-ins";
 $HideDLTTMarkupComment = "Verberg de [=...=] opmaak wanneer de taalvariabele niet vertaald is";
 $Info = "informatie";
-$UserAdded = "De gebruiker is toegevoegd.";
 $NoSearchResults = "Geen zoekresultaten";
-$UserDeleted = "De gebruiker is verwijderd.";
 $NoClassesForThisCourse = "Er zijn geen klassen ingeschreven in deze cursus";
 $CourseUsage = "Cursusgebruik";
 $NoCoursesForThisUser = "Deze gebruiker is in geen enkele cursus ingeschreven";

+ 0 - 1
main/lang/dutch/gradebook.inc.php

@@ -92,7 +92,6 @@ $Certificates = "Certificaten";
 $Certificate = "Certificaat";
 $ChooseUser = "Kies gebruikers voor deze evaluatie.";
 $FirstLetter = "Eerste letter van de achternaam";
-$UserAdded = "De gebruiker is toegevoegd.";
 $ResultEdited = "De resultaten werden gewijzigd.";
 $ChooseFormat = "Kies het formaat.";
 $OutputFileType = "Bestandsformaat van de output";

+ 1 - 0
main/lang/dutch/trad4all.inc.php

@@ -239,6 +239,7 @@ $AllDay = "Hele dag";
 $WCAGGoMenu = "Ga naar het menu";
 $WCAGGoContent = "Ga naar de inhoud";
 $NoTimeLimits = "Geen beperking in tijd";
+$UserDeleted = "De gebruiker is verwijderd.";
 $Tool = "module";
 $Choose = "Kies";
 $SearchXapianModuleNotInstalled = "The Xapian zoekmodule is niet geïnstalleerd";

+ 0 - 2
main/lang/dutch/userInfo.inc.php

@@ -140,7 +140,6 @@ $ThisIsACloseGroup = "Dit is een gesloten groep";
 $IAmAReader = "Ik ben een lezer";
 $UserChangeToReader = "Gebruiker gewijzigd naar lezer";
 $AddModerator = "Toevoegen als leider";
-$UserDeleted = "De gebruiker werd verwijderd";
 $JoinGroup = "Lid worden van groep";
 $YouShouldJoinTheGroup = "U moet lid worden van de groep";
 $WaitingForAdminResponse = "Wachtend op een antwoord van de beheerder";
@@ -174,7 +173,6 @@ $UserIsNotSubscribedToThisGroup = "De gebruiker is niet ingeschreven bij deze gr
 $InvitationReceived = "Uitnodiging ontvangen";
 $InvitationSent = "Uitnodiging verzonden";
 $YouAlreadySentAnInvitation = "U hebt reeds een uitnodiging verzonden";
-$UserAdded = "De gebruiker werd toegevoegd";
 $FilesSizeExceedsX = "Bestandsgrootte overschreden";
 $YouShouldWriteASubject = "U moet een onderwerp invullen";
 $Topics = "Onderwerpen";

+ 0 - 2
main/lang/english/admin.inc.php

@@ -349,9 +349,7 @@ $LimitUsersListDefaultMaxComment = "In the screens allowing addition of users to
 $Plugins = "Plugins";
 $HideDLTTMarkupComment = "Hide the [= ... =] markup when a language variable is not translated";
 $Info = "Information";
-$UserAdded = "The user is added";
 $NoSearchResults = "No search results";
-$UserDeleted = "The user is deleted";
 $NoClassesForThisCourse = "There are no classes subscribed to this course";
 $CourseUsage = "Course usage";
 $NoCoursesForThisUser = "This user isn't subscribed in a course";

+ 0 - 1
main/lang/english/gradebook.inc.php

@@ -92,7 +92,6 @@ $Certificates = "Certificates";
 $Certificate = "Certificate";
 $ChooseUser = "Choose users for this evaluation";
 $FirstLetter = "First letter of lastname";
-$UserAdded = "The user is added";
 $ResultEdited = "Result edited";
 $ChooseFormat = "PDF report";
 $OutputFileType = "Output file type";

+ 8 - 1
main/lang/english/trad4all.inc.php

@@ -246,6 +246,11 @@ $AdditionalMailWasSentToSelectedUsers = "Additionally, a new announcement has be
 $LoginDate = "Login date";
 $ChooseStartDateAndEndDate = "Choose start and end dates";
 $WorkAdded = "Work added";
+$SelectSurvey = "Select survey";
+$SurveyCopied = "Survey copied";
+$NoSurveysAvailable = "No surveys available";
+$DescriptionCopySurvey = "Duplicate an empty survey copy into another course. You need 2 courses to use this feature: an original course and a target course.";
+$CopySurvey = "Copy survey";
 $AllowMemberLeaveGroup = "Allow members to leave group";
 $CreatedByXYOnZ = "Create by <a href=\"%s\">%s</a> on %s";
 $LoginWithExternalAccount = "Login without an institutional account";
@@ -565,6 +570,8 @@ $RecommendedNumberOfParticipants = "Recommended number of participants";
 $WCAGGoMenu = "Goto menu";
 $WCAGGoContent = "Goto content";
 $NoTimeLimits = "No time limits";
+$SignUp = "Sign up!";
+$UserDeleted = "The user has been deleted";
 $Tool = "tool";
 $Choose = "Choose";
 $SearchXapianModuleNotInstalled = "The Xapian search module is not installed";
@@ -1583,7 +1590,7 @@ $New = "New";
 $YouMustToInstallTheExtensionLDAP = "You must install the extension LDAP";
 $AddAdditionalProfileField = "Add user profile field";
 $InvitationDenied = "Invitation denied";
-$UserAdded = "The user is added";
+$UserAdded = "The user has been added";
 $UpdatedIn = "Updated on";
 $Metadata = "Metadata";
 $AddMetadata = "View/Edit Metadata";

+ 0 - 2
main/lang/english/userInfo.inc.php

@@ -140,7 +140,6 @@ $ThisIsACloseGroup = "This is a closed group";
 $IAmAReader = "I am a reader";
 $UserChangeToReader = "User updated to reader";
 $AddModerator = "Add as moderator";
-$UserDeleted = "The user is deleted";
 $JoinGroup = "Join group";
 $YouShouldJoinTheGroup = "You should join the group";
 $WaitingForAdminResponse = "Waiting for admin response";
@@ -174,7 +173,6 @@ $UserIsNotSubscribedToThisGroup = "User is not subscribed to this group";
 $InvitationReceived = "Invitation received";
 $InvitationSent = "Invitation sent";
 $YouAlreadySentAnInvitation = "You already sent an invitation";
-$UserAdded = "The user is added";
 $FilesSizeExceedsX = "Files size exceeds";
 $YouShouldWriteASubject = "You should write a subject";
 $Topics = "Topics";

+ 0 - 2
main/lang/esperanto/admin.inc.php

@@ -302,9 +302,7 @@ $LimitUsersListDefaultMaxComment = "Ekranaĵoj kun eblo aldoni uzantojn al kurso
 $Plugins = "Kromaĵoj";
 $HideDLTTMarkupComment = "Kaŝi la [=...=] aranĝon, se la lingva varieblo ne estas tradukita";
 $Info = "Informo";
-$UserAdded = "La uzulo estas aldonita";
 $NoSearchResults = "Neniu serĉrezulto";
-$UserDeleted = "La uzulo estas forigita";
 $NoClassesForThisCourse = "Ne estas klasoj aliĝintaj al ĉi-kurso";
 $CourseUsage = "Kursa uzado";
 $NoCoursesForThisUser = "Ĉi tiu uzulo aliĝis al neniu kurso";

+ 1 - 0
main/lang/esperanto/trad4all.inc.php

@@ -124,6 +124,7 @@ $ExportShort = "SCORM-eksporto";
 $WCAGGoMenu = "Iri al la menuo";
 $WCAGGoContent = "Iri al la enhavo";
 $NoTimeLimits = "Sen templimo";
+$UserDeleted = "La uzulo estas forigita";
 $Tool = "modulo";
 $Choose = "Elektu";
 $AnnEmpty = "La anoncoj estas forigitaj";

+ 0 - 2
main/lang/french/admin.inc.php

@@ -349,9 +349,7 @@ $LimitUsersListDefaultMaxComment = "Dans les écrans d'inscription des utilisate
 $Plugins = "Plugins";
 $HideDLTTMarkupComment = "Cache le marquage [= ... =] quand une variable de langue n'est pas traduite";
 $Info = "Information";
-$UserAdded = "L'utilisateur a été ajouté";
 $NoSearchResults = "Aucun résultat trouvé";
-$UserDeleted = "L'utilisateur a été supprimé";
 $NoClassesForThisCourse = "Aucune classe n'est inscrite à ce cours";
 $CourseUsage = "Utilisation du cours";
 $NoCoursesForThisUser = "Cet utilisateur n'est pas inscrit dans un cours";

+ 0 - 1
main/lang/french/gradebook.inc.php

@@ -92,7 +92,6 @@ $Certificates = "Certificats";
 $Certificate = "Certificat";
 $ChooseUser = "Sélectionnez les utilisateurs pour cette acivité";
 $FirstLetter = "Première lettre du nom de famille";
-$UserAdded = "L'utilisateur a été ajouté";
 $ResultEdited = "Résultat mis à jour";
 $ChooseFormat = "Choisissez le format";
 $OutputFileType = "Format";

+ 1 - 1
main/lang/french/registration.inc.php

@@ -184,4 +184,4 @@ $TheTeacherCanQualifyEvaluateAndKeepTrackOfAllStudentsEnrolledInTheCourse = "Le
 $LoginOrEmailAddress = "Nom d'utilisateur ou adresse e-mail";
 $AtOnce = "À la réception";
 $Daily = "Une fois par jour";
-?>
+?>

+ 9 - 0
main/lang/french/trad4all.inc.php

@@ -247,6 +247,11 @@ $AdditionalMailWasSentToSelectedUsers = "Une nouvelle annonce a été créée et
 $LoginDate = "Date de connexion";
 $ChooseStartDateAndEndDate = "Choisissez les dates de début et de fin";
 $WorkAdded = "Travail ajouté";
+$SelectSurvey = "Choisissez l'enquête";
+$SurveyCopied = "Enquête copiée";
+$NoSurveysAvailable = "Aucune enquête disponible";
+$DescriptionCopySurvey = "Créez une copie d'enquête (sans résultats) dans un autre cours. Il est nécessaire de disposer de 2 cours pour utiliser cette fonctionnalité: le cours d'origine et un cours de destination.";
+$CopySurvey = "Copier l'enquête";
 $AllowMemberLeaveGroup = "Autoriser les membres à quitter le groupe";
 $CreatedByXYOnZ = "Créé(e) par <a href=\"%s\">%s</a>, le %s";
 $LoginWithExternalAccount = "S'authentifier avec un compte extérieur à l'établissement";
@@ -566,6 +571,8 @@ $RecommendedNumberOfParticipants = "Nombre recommandé de participants";
 $WCAGGoMenu = "Aller au menu";
 $WCAGGoContent = "Aller au contenu";
 $NoTimeLimits = "Pas de limite de temps";
+$SignUp = "Inscrivez-vous!";
+$UserDeleted = "L'utilisateur a été supprimé";
 $Tool = "outil";
 $Choose = "Choisissez";
 $SearchXapianModuleNotInstalled = "Le module de recherche Xapian n'est pas installé";
@@ -1546,6 +1553,8 @@ $ForumReply = "Forum: répondre";
 $AgendaSortChronologicallyDown = "Descendant";
 $UploadADocument = "Envoyer un document";
 $YouShouldWriteAMessage = "Vous devriez écrire un message";
+$QuestionsOverallReportDetail = "Dans ce rapport, vous pourrez voir les résultats de toutes les questions en un seul écran.";
+$QuestionsOverallReport = "Rapport global de questions";
 $NameOfLang['bosnian'] = "bosnien";
 $NameOfLang['czech'] = "tchèque";
 $NameOfLang['dari'] = "dari";

+ 0 - 2
main/lang/french/userInfo.inc.php

@@ -140,7 +140,6 @@ $ThisIsACloseGroup = "Groupe fermé";
 $IAmAReader = "Je suis un lecteur";
 $UserChangeToReader = "Utilisateur assigné comme lecteur";
 $AddModerator = "Ajouter comme modérateur";
-$UserDeleted = "L'utilisateur a été supprimé";
 $JoinGroup = "Rejoindre le groupe";
 $YouShouldJoinTheGroup = "Vous devriez joindre ce groupe";
 $WaitingForAdminResponse = "En attente de réponse de l'admin";
@@ -174,7 +173,6 @@ $UserIsNotSubscribedToThisGroup = "L'utilisateur n'est pas inscrit à ce groupe"
 $InvitationReceived = "Invitation reçue";
 $InvitationSent = "Invitation envoyée";
 $YouAlreadySentAnInvitation = "Vous avez déjà envoyé une invitation";
-$UserAdded = "L'utilisateur a été ajouté";
 $FilesSizeExceedsX = "La taille du fichier dépasse";
 $YouShouldWriteASubject = "Vous devriez indiquer un sujet";
 $Topics = "Sujets";

+ 0 - 2
main/lang/galician/admin.inc.php

@@ -326,9 +326,7 @@ $LimitUsersListDefaultMaxComment = "Nas pantallas que permiten a adición de usu
 $Plugins = "Plugins";
 $HideDLTTMarkupComment = "Ocultar a marca [=...=] cando unha variable de idioma non estea traducida";
 $Info = "información";
-$UserAdded = "Engadiuse o usuario";
 $NoSearchResults = "Non hai resultados";
-$UserDeleted = "Eliminouse o usuario";
 $NoClassesForThisCourse = "Non hai clases suscritas a este curso";
 $CourseUsage = "Uso do curso";
 $NoCoursesForThisUser = "Este usuario non está suscrito nun curso";

+ 0 - 1
main/lang/galician/gradebook.inc.php

@@ -92,7 +92,6 @@ $Certificates = "Certificados";
 $Certificate = "Certificado";
 $ChooseUser = "Seleccionar usuarios para esta avaliación";
 $FirstLetter = "Primeira letra do apelido";
-$UserAdded = "Engadiuse o usuario";
 $ResultEdited = "Resultado actualizado";
 $ChooseFormat = "Escoller formato";
 $OutputFileType = "Tipo de ficheiro de saída";

+ 1 - 0
main/lang/galician/trad4all.inc.php

@@ -242,6 +242,7 @@ $AllDay = "Todo o día";
 $WCAGGoMenu = "Ir para o menú";
 $WCAGGoContent = "Ir para o contido";
 $NoTimeLimits = "Sen límite temporal";
+$UserDeleted = "Eliminouse o usuario";
 $Tool = "ferramenta";
 $Choose = "Escoller";
 $SearchXapianModuleNotInstalled = "O módulo Xapian de PHP non está configurado no seu servidor, póñase en contacto con seu administrador.";

+ 0 - 2
main/lang/galician/userInfo.inc.php

@@ -140,7 +140,6 @@ $ThisIsACloseGroup = "Este é un grupo pechado";
 $IAmAReader = "Son un lector";
 $UserChangeToReader = "Usuario actualizado a lector";
 $AddModerator = "Engador como moderador";
-$UserDeleted = "O usuario está eliminado";
 $JoinGroup = "Unirse a grupo";
 $YouShouldJoinTheGroup = "Debería unirse ó grupo";
 $WaitingForAdminResponse = "Agardando pola resposta do administrador";
@@ -174,7 +173,6 @@ $UserIsNotSubscribedToThisGroup = "O usuario non está suscrito a este grupo";
 $InvitationReceived = "Invitación recibida";
 $InvitationSent = "Invitación enviada";
 $YouAlreadySentAnInvitation = "Vostede xa enviou unha invitación";
-$UserAdded = "O usuario foi engadido";
 $FilesSizeExceedsX = "O tamaño do ficheiro excede";
 $YouShouldWriteASubject = "Debería escribir un asunto";
 $Topics = "Asunto";

+ 0 - 2
main/lang/german/admin.inc.php

@@ -345,9 +345,7 @@ $LimitUsersListDefaultMaxComment = "Bei Auflistungen, in denen Benutzer zu Kurse
 $Plugins = "Plugins";
 $HideDLTTMarkupComment = "Die [=... ] Markup Variable ausblenden, wenn eine Sprachvariable nicht vorhanden ist.";
 $Info = "Information";
-$UserAdded = "Benutzer wurde hinzugefügt";
 $NoSearchResults = "Kein Suchergebnis";
-$UserDeleted = "Benutzer wurde gelöscht";
 $NoClassesForThisCourse = "Keine Klasse hat diesen Kurs belegt";
 $CourseUsage = "Kursnutzung";
 $NoCoursesForThisUser = "Dieser Benutzer hat keinen Kurs belegt";

+ 0 - 1
main/lang/german/gradebook.inc.php

@@ -92,7 +92,6 @@ $Certificates = "Zertifikate";
 $Certificate = "Zertifikat";
 $ChooseUser = "Kurstielnehmer für diese Beurteilung auswählen";
 $FirstLetter = "Erster Buchstabe des Nachnamens";
-$UserAdded = "Benutzer wurde hinzugefügt";
 $ResultEdited = "Ergebnis wurde bearbeitet";
 $ChooseFormat = "PDF Darstellung";
 $OutputFileType = "Dateiformat für Ausgabe";

+ 1 - 0
main/lang/german/trad4all.inc.php

@@ -234,6 +234,7 @@ $ExportShort = "SCORM-Export";
 $WCAGGoMenu = "Gehe zu Menü";
 $WCAGGoContent = "Gehe zu Inhalt";
 $NoTimeLimits = "Keine Zeitbeschränkung";
+$UserDeleted = "Benutzer wurde gelöscht";
 $Tool = "Werkzeug";
 $Choose = "Wählen";
 $SearchXapianModuleNotInstalled = "Das Xapian Such-Modul ist nicht installiert";

+ 0 - 2
main/lang/german/userInfo.inc.php

@@ -140,7 +140,6 @@ $ThisIsACloseGroup = "Dies ist eine geschlossene Gruppe";
 $IAmAReader = "Ich bin ein Teilnehmer";
 $UserChangeToReader = "Benutzer zum Leser gemacht";
 $AddModerator = "Als Moderator hinzufügen";
-$UserDeleted = "Der Benutzer ist gelöscht";
 $JoinGroup = "Gruppe beitreten";
 $YouShouldJoinTheGroup = "Sie sollten dieser Gruppe beitreten";
 $WaitingForAdminResponse = "Warte auf Antwort vom Admin";
@@ -174,7 +173,6 @@ $UserIsNotSubscribedToThisGroup = "Benutzer ist nicht in der Gruppe registriert"
 $InvitationReceived = "Einladung erhalten";
 $InvitationSent = "Einladung gesendet";
 $YouAlreadySentAnInvitation = "Sie haben schon eine Einladung versendet";
-$UserAdded = "Benutzer wurde hinzugefügt";
 $FilesSizeExceedsX = "Datei ist zu groß";
 $YouShouldWriteASubject = "Sie sollten ein Betreff schreiben";
 $Topics = "Themen";

+ 0 - 2
main/lang/greek/admin.inc.php

@@ -321,9 +321,7 @@ $LimitUsersListDefaultMaxComment = "In the screens allowing addition of users to
 $Plugins = "Plugins";
 $HideDLTTMarkupComment = "Hide the [= ... =] markup when a language variable is not translated";
 $Info = "Πληροφορίες";
-$UserAdded = "Ο χρήστης προστέθηκε";
 $NoSearchResults = "Δεν υπάρχουν αποτελέσματα";
-$UserDeleted = "Ο χρήστης διαγράφηκε";
 $NoClassesForThisCourse = "Δεν υπάρχουν τάξεις εγγεγραμένες στο μάθημα";
 $CourseUsage = "Χρήση μαθήματος";
 $NoCoursesForThisUser = "Ο χρήστης δεν είναι εγγεγραμμένος σε μάθημα";

+ 0 - 1
main/lang/greek/gradebook.inc.php

@@ -92,7 +92,6 @@ $Certificates = "Πιστοποιητικά";
 $Certificate = "CertifiesStudentXFinishedCourseYWithGradeZ =";
 $ChooseUser = "Επιλέξτε χρήστες για την αξιολόγηση αυτή";
 $FirstLetter = "Το πρώτο γράμμα του επιθέτου";
-$UserAdded = "Ο χρήστης δεν προστέθηκε";
 $ResultEdited = "Έγινε επεξεργασία του αποτελέσματος";
 $ChooseFormat = "Αναφορά σε PDF";
 $OutputFileType = "Τύπος εξόδου αρχείου";

+ 1 - 0
main/lang/greek/trad4all.inc.php

@@ -238,6 +238,7 @@ $ExportShort = "Export as SCORM";
 $WCAGGoMenu = "Μενού";
 $WCAGGoContent = "Περιεχόμενο";
 $NoTimeLimits = "Χωρίς χρονικό όριο";
+$UserDeleted = "Ο χρήστης διαγράφηκε";
 $Tool = "εργαλείο";
 $Choose = "Επιλογή γλώσσας νέων";
 $SearchXapianModuleNotInstalled = "The Xapian search module is not installed";

+ 0 - 2
main/lang/greek/userInfo.inc.php

@@ -140,7 +140,6 @@ $ThisIsACloseGroup = "Η ομάδα είναι κλειστή";
 $IAmAReader = "Είμαι αναγνώστης";
 $UserChangeToReader = "Ο χρήστης είναι πλέον αναγνώστης";
 $AddModerator = "Προσθήκη ως moderator";
-$UserDeleted = "Ο χρήστης διαγράφηκε";
 $JoinGroup = "Συμμετοχή στην ομάδα";
 $YouShouldJoinTheGroup = "Πρέπει να συμμετάσχετε στην ομάδα";
 $WaitingForAdminResponse = "Αναμονή για απάντηση του διαχειριστή";
@@ -174,7 +173,6 @@ $UserIsNotSubscribedToThisGroup = "Ο χρήστης δεν συμμετέχει
 $InvitationReceived = "Ληφθείσες προσκλήσεις";
 $InvitationSent = "Η πρόσκληση απεστάλει:";
 $YouAlreadySentAnInvitation = "Έχετε στείλει ήδη πρόσκληση";
-$UserAdded = "Ο χρήστης προστέθηκε";
 $FilesSizeExceedsX = "Files size exceeds";
 $YouShouldWriteASubject = "Πρέπει να γράψετε ένα θέμα";
 $Topics = "Θέματα";

+ 0 - 2
main/lang/hungarian/admin.inc.php

@@ -309,9 +309,7 @@ $LimitUsersListDefaultMaxComment = "Ha a felhasználók osztályokhoz vagy kurzu
 $Plugins = "Beépülő modulok";
 $HideDLTTMarkupComment = "[= ... =] jelölés elrejtése, ha egy nyelvi változó nincs lefordítva.";
 $Info = "Információ";
-$UserAdded = "A felhasználó hozzáadva";
 $NoSearchResults = "Nincs eredménye a keresésnek.";
-$UserDeleted = "A felhasználó törölve lett";
 $NoClassesForThisCourse = "Erre a kurzusra egy osztály sem iratkozott fel";
 $CourseUsage = "Kurzus használat";
 $NoCoursesForThisUser = "Ez a felhasználó nincs feliratkozva kurzusra";

+ 0 - 1
main/lang/hungarian/gradebook.inc.php

@@ -26,7 +26,6 @@ $TotalItems = "Elem összesen";
 $Average = "Átlag";
 $EditResult = "Eredmények módosítása";
 $Results = "Eredmények";
-$UserAdded = "A felhasználó hozzáadva";
 $ResultEdited = "Eredmény szerkesztve";
 $ChooseFormat = "Válasszon formátumot";
 $OutputFileType = "Kimeneti állomány formátuma";

+ 1 - 0
main/lang/hungarian/trad4all.inc.php

@@ -212,6 +212,7 @@ $ExportShort = "Exportálás";
 $WCAGGoMenu = "Ugrás a menühöz";
 $WCAGGoContent = "Ugrás a tartalomhoz";
 $NoTimeLimits = "Nincs időkorlát";
+$UserDeleted = "A felhasználó törölve lett";
 $Tool = "eszköz";
 $Choose = "Válassz!";
 $AnnEmpty = "A hirdetménylista kiürítve";

+ 0 - 2
main/lang/indonesian/admin.inc.php

@@ -290,9 +290,7 @@ $OpenInNewWindow = "Buka di jendela baru";
 $LimitUsersListDefaultMaxComment = "Pada layar yang membolehkan penambahan user kesuatu mata kuliah atau klas, jika daftar pertama yang tidak difilter berisi lebih banyak dari jumlah user ini, maka default ke huruf pertama (A)";
 $Plugins = "Plugins";
 $Info = "informasi";
-$UserAdded = "User tersebut telah ditambahkan";
 $NoSearchResults = "Hasil pencarian tidak ada";
-$UserDeleted = "User tersebut telah dihapus";
 $NoClassesForThisCourse = "Tidak ada siswa mendaftar pada mata kuliah ini";
 $CourseUsage = "Pemanfaatan Mata Kuliah";
 $NoCoursesForThisUser = "User tersebut tidak terdaftar pada mata kuliah";

+ 1 - 0
main/lang/indonesian/trad4all.inc.php

@@ -123,6 +123,7 @@ $ExportShort = "Export short";
 $WCAGGoMenu = "Ke menu";
 $WCAGGoContent = "Ke isi";
 $NoTimeLimits = "Tanpa batas waktu";
+$UserDeleted = "User tersebut telah dihapus";
 $Tool = "tool";
 $AnnEmpty = "Daftar pengumuman telah dihapus";
 $AnnouncementModified = "Pengumuman telah diubah";

+ 0 - 2
main/lang/italian/admin.inc.php

@@ -312,9 +312,7 @@ $LimitUsersListDefaultMaxComment = "Nelle schermate destinate all'iscrizione di
 $Plugins = "Plugin";
 $HideDLTTMarkupComment = "Nascondi il marcatore [= ...=] per i nomi di variabile non tradotti";
 $Info = "informazioni";
-$UserAdded = "L'utente è stato aggiunto";
 $NoSearchResults = "nessun risultato";
-$UserDeleted = "Utente eliminato";
 $NoClassesForThisCourse = "Non ci sono classi iscritte al corso";
 $CourseUsage = "Utilizzo del corso";
 $NoCoursesForThisUser = "L'utente non è iscritto ad alcun corso";

+ 0 - 1
main/lang/italian/gradebook.inc.php

@@ -92,7 +92,6 @@ $Certificates = "Certificati";
 $Certificate = "Certificato";
 $ChooseUser = "Scegli gli utenti per questa verifica";
 $FirstLetter = "Iniziale del cognome";
-$UserAdded = "L'utente è stato aggiunto";
 $ResultEdited = "Risultato modificato";
 $ChooseFormat = "Scegli il formato";
 $OutputFileType = "File di output";

+ 1 - 0
main/lang/italian/trad4all.inc.php

@@ -232,6 +232,7 @@ $ExportShort = "Esporta come SCORM";
 $WCAGGoMenu = "Vai al menù";
 $WCAGGoContent = "Vai al contenuto";
 $NoTimeLimits = "Senza limiti di tempo";
+$UserDeleted = "Utente eliminato";
 $Tool = "strumento";
 $Choose = "Scegli";
 $SearchXapianModuleNotInstalled = "Il modulo Xapian non è installato";

+ 0 - 2
main/lang/italian/userInfo.inc.php

@@ -139,7 +139,6 @@ $ThisIsACloseGroup = "E' un gruppo chiuso";
 $IAmAReader = "Sono un partecipante";
 $UserChangeToReader = "Utente reso partecipante";
 $AddModerator = "Aggiungi come moderatore";
-$UserDeleted = "Utente eliminato";
 $JoinGroup = "Entra nel gruppo";
 $YouShouldJoinTheGroup = "Devi iscriverti al gruppo";
 $WaitingForAdminResponse = "In attesa della conferma";
@@ -173,7 +172,6 @@ $UserIsNotSubscribedToThisGroup = "L'utente non si è iscritto al gruppo";
 $InvitationReceived = "Invito ricevuto";
 $InvitationSent = "Invito spedito";
 $YouAlreadySentAnInvitation = "Hai inviato già un invito";
-$UserAdded = "L'utente è stato aggiunto";
 $FilesSizeExceedsX = "Superata la dimensione massima del file";
 $YouShouldWriteASubject = "Devi scrivere l'oggetto del messaggio";
 $Topics = "Argomenti";

+ 0 - 1
main/lang/korean/admin.inc.php

@@ -278,7 +278,6 @@ $LinkURL = "링크 URL";
 $OpenInNewWindow = "새창에서 열기";
 $Plugins = "플러그인";
 $Info = "정보";
-$UserAdded = "유저가 추가되었습니다";
 $NoSearchResults = "검색결과 없음";
 $NoClassesForThisCourse = "이 과정에 등록한 클래스가 없습니다";
 $CourseUsage = "과정 용도";

+ 0 - 2
main/lang/latvian/admin.inc.php

@@ -316,9 +316,7 @@ $LimitUsersListDefaultMaxComment = "Ekrāni ļauj pievienot Lietotājus kursiem
 $Plugins = "Paplašinājumi / Spraudņi";
 $HideDLTTMarkupComment = "Paslēpt iezīmi [=...=] , ja valodas mainīgais nav iztulkots";
 $Info = "informācija";
-$UserAdded = "Lietotājs tika pievienots";
 $NoSearchResults = "Nekas netika atrasts";
-$UserDeleted = "Lietotājs tika izdzēsts";
 $NoClassesForThisCourse = "Nav nevienas klases, kas būtu reģistrētas šajā kursā";
 $CourseUsage = "Kursu lietošana";
 $NoCoursesForThisUser = "Šis lietotājs nav reģistrējies šajā kursā";

+ 0 - 1
main/lang/latvian/gradebook.inc.php

@@ -92,7 +92,6 @@ $Certificates = "Sertifikāti";
 $Certificate = "Sertifikāts";
 $ChooseUser = "Izvēlieties lietotājus šim novērtējumam";
 $FirstLetter = "Uzvārda pirmais burts";
-$UserAdded = "Lietotājs ir pievienots";
 $ResultEdited = "Rezultāts ir rediģēts";
 $ChooseFormat = "Atskaite PDF formātā";
 $OutputFileType = "Izejas faila tips";

+ 1 - 0
main/lang/latvian/trad4all.inc.php

@@ -234,6 +234,7 @@ $ExportShort = "Eksportēt kā SCORM";
 $WCAGGoMenu = "Iet uz izvēli";
 $WCAGGoContent = "Doties uz saturu";
 $NoTimeLimits = "Bez laika ierobežojuma";
+$UserDeleted = "Lietotājs tika izdzēsts";
 $Tool = "Instruments";
 $Choose = "Izvēlies";
 $SearchXapianModuleNotInstalled = "Xapian meklēšanas modulis nav instalēts";

+ 0 - 2
main/lang/latvian/userInfo.inc.php

@@ -140,7 +140,6 @@ $ThisIsACloseGroup = "Šī ir slēgtā grupa";
 $IAmAReader = "Esmu lasītājs";
 $UserChangeToReader = "Lietotājs iecelts par lasītāju";
 $AddModerator = "Pievienot, kā moderatoru";
-$UserDeleted = "Lietotājs ir izdzēsts";
 $JoinGroup = "Pievienoties grupai";
 $YouShouldJoinTheGroup = "Jums vajadzētu pievienoties grupai";
 $WaitingForAdminResponse = "Gaida admin atbildi";
@@ -174,7 +173,6 @@ $UserIsNotSubscribedToThisGroup = "Lietotājs nav pierakstīts šajā grupā";
 $InvitationReceived = "Ielūgums saņemts";
 $InvitationSent = "Ielūgums nosūtīts";
 $YouAlreadySentAnInvitation = "Jūs jau nosūtījāt ielūgumu";
-$UserAdded = "Lietotājs ir pievienots";
 $FilesSizeExceedsX = "Failu lielums pārsniegts";
 $YouShouldWriteASubject = "Jums ir jāieraksta vēstules virsraksts";
 $Topics = "Tēmas";

+ 0 - 2
main/lang/lithuanian/admin.inc.php

@@ -302,9 +302,7 @@ $LimitUsersListDefaultMaxComment = "In the screens allowing addition of users to
 $Plugins = "Įskiepiai";
 $HideDLTTMarkupComment = "Hide the [= ... =] markup when a language variable is not translated";
 $Info = "informacija";
-$UserAdded = "Vartotojas įtrauktas";
 $NoSearchResults = "Paieškos rezultatų nėra";
-$UserDeleted = "Vartotojas ištrintas";
 $NoClassesForThisCourse = "Šiame kurse nėra priregistruotų klasių";
 $CourseUsage = "Kurso naudojimas";
 $NoCoursesForThisUser = "Šis vartotojas nepriregistruotas prie kurso";

+ 1 - 0
main/lang/lithuanian/trad4all.inc.php

@@ -153,6 +153,7 @@ $ExportShort = "Eksportuoti SCORM";
 $WCAGGoMenu = "Meniu";
 $WCAGGoContent = "Turinys";
 $NoTimeLimits = "Laiko apribojimų nėra";
+$UserDeleted = "Vartotojas ištrintas";
 $Tool = "įrankis";
 $Choose = "Pasirinkti";
 $AnnEmpty = "Skelbimų sąrašas ištrintas";

+ 0 - 2
main/lang/macedonian/admin.inc.php

@@ -296,9 +296,7 @@ $OpenInNewWindow = "Отвори во нов прозорец";
 $LimitUsersListDefaultMaxComment = "На екраните е допуштено додавање на корисници или паралелки, ако првиот нефилтриран список содржи повеќе отколку што е овој број на корисници, тогаш постави на првата буква (А)";
 $Plugins = "Додатоци";
 $Info = "информации";
-$UserAdded = "Корисникот е додаден";
 $NoSearchResults = "Нема резултати од пребарувањето";
-$UserDeleted = "Корисникот е избришан";
 $NoClassesForThisCourse = "Не постојат паралелки запишани на овој курс";
 $CourseUsage = "Постапка за ползување на курсот";
 $NoCoursesForThisUser = "Овој корисник не е запишан на курсот";

+ 1 - 0
main/lang/macedonian/trad4all.inc.php

@@ -148,6 +148,7 @@ $ExportShort = "Извези како SCORM";
 $WCAGGoMenu = " Мени Goto";
 $WCAGGoContent = "Содржина на Goto";
 $NoTimeLimits = "Нема временски ограничувања";
+$UserDeleted = "Корисникот е избришан";
 $Tool = "алатка";
 $Choose = "Избери";
 $AnnEmpty = "Списокот со Известувања бил избришан";

この差分においてかなりの量のファイルが変更されているため、一部のファイルを表示していません