GithubHelp home page GithubHelp logo

chamilo / chamilo-lms Goto Github PK

View Code? Open in Web Editor NEW
776.0 60.0 474.0 999.07 MB

Chamilo is a learning management system focused on ease of use and accessibility

Home Page: https://chamilo.org

License: GNU General Public License v3.0

PHP 73.66% HTML 0.09% CSS 1.03% JavaScript 17.16% Shell 0.01% Java 1.13% Smarty 0.77% Gherkin 0.39% Vue 2.32% SCSS 0.50% Twig 2.94% TypeScript 0.01% Sass 0.01%
chamilo twig php elearning lms skills

chamilo-lms's Introduction

Chamilo 2

Behat tests 🐞 PHPUnit 🐛 PHP static analysis ✨ PHP format code 🔎 codecov Scrutinizer Code Quality CII Best Practices Codacy Badge type-coverage psalm level

Chamilo is an e-learning platform, also called "LMS", published under the GNU/GPLv3+ license. It has been used by more than 30M people worldwide since its inception in 2010. This is a development version. For the current stable branch, please select the 1.11.x branch in the Code tab.

Quick install

Chamilo 2.0 is still in development. This installation procedure below is for reference only. For a stable Chamilo, please install Chamilo 1.11.x. See the 1.11.x branch's README.md for details.

We assume you already have:

Software stack install (Ubuntu)

You will need PHP8+ and NodeJS v18+ to run Chamilo 2. On a fresh Ubuntu 22.04, you can prepare your server by issuing an apt command like the following with sudo (or as root, but not recommended for security reasons):

sudo apt update
sudo apt -y upgrade
sudo apt -y install ca-certificates curl gnupg software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install apache2 libapache2-mod-php8.1 mariadb-client mariadb-server php-pear php8.1-{dev,gd,curl,intl,mysql,mbstring,zip,xml,cli,apcu,bcmath,soap} git unzip

If you already have nodejs installed, check the version with node -v Otherwise, install node 18 or above:

cd ~
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
NODE_MAJOR=20
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list
apt update && apt -y install nodejs
  • Other option to install nodejs is by using NVM (Node Version Manager). You can install it following the instructions here. Then, you can install the node version required. Preferably, the LTS version.
sudo nvm install --lts
sudo nvm use --lts

With NodeJS installed, you must enable corepack and then continue with the requirements

sudo corepack enable
cd ~
# follow the instructions at https://getcomposer.org/download/
sudo mv composer.phar /usr/local/bin/composer
# optionally, you might want this:
sudo apt install libapache2-mod-xsendfile
sudo a2enmod rewrite ssl headers expires
sudo systemctl restart apache2

When your system is all set, you can use the following:

cd /var/www
git clone https://github.com/chamilo/chamilo-lms.git chamilo2
cd chamilo2
composer install
# not recommended to do this as the root user!
# when asked whether you want to execute the recipes or install plugins for some of the components,
# you can safely type 'n' (for 'no').

yarn set version stable
# delete yarn.lock as it might contain restrictive packages from a different context
yarn up
yarn install
yarn dev
# you can safely ignore any "warning" mentioned by yarn dev
sudo touch .env
sudo chown -R www-data: var/ .env config/

In your web server configuration, ensure you allow for the interpretation of .htaccess (AllowOverride all and Require all granted), and point the DocumentRoot to the public/ subdirectory.

Web installer

Once the above is ready, enter the main/install/index.php and follow the UI instructions (database, admin user settings, etc).

After the web install process, change the permissions back to a reasonably safe state:

chown -R root .env config/

Quick update

If you have already installed it and just want to update it from Git, do:

git pull
composer install

# Database update
php bin/console doctrine:schema:update --force --complete

# Clean Symfony cache
php bin/console cache:clear

# js/css update
yarn install
yarn dev

Note for developers in pre-alpha stage: the doctrine command will try to update your database schema to the expected database schema in a fresh installation. This is not always perfect, as Doctrine will take the fastest route to do this. For example, if you have a migration to rename a table (which would apply just fine to a system in Chamilo 1 being migrated), Doctrine might consider that the destination table does not exist and the original (which should not be there in a new installation) is still there, so it will just drop the old table and create a new one, losing all records in that table in the process. To avoid this, prefer executing migrations with the following instead.

php bin/console doctrine:migrations:execute "Chamilo\CoreBundle\Migrations\Schema\V200\Version[date]"

This will respect the migration logic and do the required data processing.

This will update the JS (yarn) and PHP (composer) dependencies in the public/build folder.

Sometimes there are conflicts with existing files so to avoid those here are some hints :

  • for composer errors you can remove the vendor folder and composer.lock file
  • for yarn erros you can remove yarn.lock .yarn/cache/* node_modules/*
  • when opening Chamilo, it does not load, then you can delete var/cache/*

Refresh configuration settings

In case you believe some settings in Chamilo might not have been processed correctly based on an incomplete migration or a migration that was added after you installed your development version of Chamilo, the URL /admin/settings_sync is built to try and fix that automatically by updating PHP classes based on the database state. This issue rarely happens, though.

Quick re-install

If you have it installed in a dev environment and feel like you should clean it up completely (might be necessary after changes to the database), you can do so by:

  • Removing the .env file
  • Load the {url}/main/install/index.php script again

The database should be automatically destroyed, table by table. In some extreme cases (a previous version created a table that is not necessary anymore and creates issues), you might want to clean it completely by just dropping it, but this shouldn't be necessary most of the time.

If, for some reason, you have issues with either composer or yarn, a good first step is to delete completely the vendor/ folder (for composer) or the node_modules/ folder (for yarn).

Development setup (Dev environment, stable environment not yet available)

If you are a developer and want to contribute to Chamilo in the current development branch (not stable yet), then please follow the instructions below. Please bear in mind that the development version is NOT COMPLETE at this time, and many features are just not working yet. This is because we are working on root components that require massive changes to the structure of the code, files and database. As such, to get a working version, you might need to completely uninstall and re-install from time to time. You've been warned.

First, apply the procedure described here: Managing CSS and JavaScript in Chamilo (in particular, make sure you follow the given links to install all the necessary components on your computer).

Then make sure your database supports large prefixes (see this Stack Overflow thread if you use MySQL < 5.7 or MariaDB < 10.2.2).

Load the (your-domain)/main/install/index.php URL to start the installer (which is very similar to the installer in previous versions). If the installer is pure-HTML and doesn't appear with a clean layout, that's because you didn't follow these instructions carefully. Go back to the beginning of this section and try again.

If you want hot reloading for assets use the command yarn run encore dev-server. This will refresh automatically your assets when you modify them under assets/vue. Access your chamilo instance as usual. In the background, this will serve assets from a custom server on http://localhost:8080. Do not access this url directly since Encore is in charge of changing url assets as needed.

Supporting PHP 7.4 and 8.1 in parallel

You might want to support PHP 8.1 (for Chamilo 2) and PHP 7.4 (for all other things) on the same server simultaneously. On Ubuntu, you could do it this way:

sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php8.1 libapache2-mod-php7.4 php8.1-{modules} php7.4-{modules}
sudo apt remove libapache2-mod-php8.1 php7.4-fpm
sudo a2enmod proxy_fcgi
sudo vim /etc/apache2/sites-available/[your-chamilo2-vhost].conf

In the vhost configuration, make sure you set PHP 8.1 FPM to answer this single vhost by adding, somewhere between your <VirtualHost> tags, the following:

  <IfModule !mod_php8.c>
    <IfModule proxy_fcgi_module>
        <IfModule setenvif_module>
        SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1
        </IfModule>
        <FilesMatch ".+\.ph(ar|p|tml)$">
            SetHandler "proxy:unix:/run/php/php8.1-fpm.sock|fcgi://localhost"
        </FilesMatch>
        <FilesMatch ".+\.phps$">
            Require all denied
        </FilesMatch>
        <FilesMatch "^\.ph(ar|p|ps|tml)$">
            Require all denied
        </FilesMatch>
    </IfModule>
  </IfModule>

Then exit and restart Apache:

sudo systemctl restart apache2

Finally, remember that PHP settings will have to be changed in /etc/php/8.1/fpm/php.ini and you will have to reload php8.1-fpm to take those config changes into account.

sudo systemctl reload php8.1-fpm

When using 2 versions, you will also have issues when calling composer update, as this one needs to be called by the relevant PHP version. This can be done like so:

/usr/bin/php8.1 /usr/local/bin/composer update
or, for Chamilo 1.11
/usr/bin/php7.4 /usr/local/bin/composer update

If your default php-cli uses PHP7.4 (see ln -s /etc/alternatives/php), you might have issues running with a so-called platform_check.php script when running composer update anyway. This is because this script doesn't user the proper launch context, and you might need to change your default settings on Ubuntu (i.e. change the link /etc/alternatives/php to point to the other php version) before launching composer update. You can always revert that operation later on if you need to go back to work on Chamilo 1.11 and Composer complains again.

git hooks

To use the git hook sample scripts under tests/scripts/git-hooks/, the following commands can be used.

git config core.hooksPath tests/scripts/git-hooks/

Changes from 1.x

  • in general, the main/ folder has been moved to public/main/
  • app/Resources/public/assets moved to public/assets
  • main/inc/lib/javascript moved to public/js
  • main/img/ moved to public/img
  • main/template/default moved to src/CoreBundle/Resources/views
  • src/Chamilo/XXXBundle moved to src/CoreBundle or src/CourseBundle
  • bin/doctrine.php removed use bin/console doctrine:xyz options
  • Plugin images, css and js libs are loaded inside the public/plugins folder (composer update copies the content inside plugin_name/public inside web/plugins/plugin_name
  • Plugins templates use asset() function instead of using "_p.web_plugin"
  • Remove main/inc/local.inc.php
  • Translations managed through Gettext

Libraries

  • Integration with Symfony 5
  • PHPMailer replaced with Symfony Mailer
  • bower replaced by yarn

JWT Authentication

  • Run
    php bin/console lexik:jwt:generate-keypair
  • In Apache setup Bearer with:
    SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
  • Get the token:
    curl -k -X POST https://example.com/api/authentication_token \
        -H "Content-Type: application/json" \
        -d '{"username":"admin","password":"admin"}'
    The response should return something like:
    {"token":"MyTokenABC"}
  • Go to https://example.com/api
  • Click in "Authorize" button and write the value Bearer MyTokenABC

Then you can make queries using the JWT token.

Todo

See https://github.com/chamilo/chamilo-lms/projects/3

Contributing

If you want to submit new features or patches to Chamilo 2, please follow the Github contribution guide https://guides.github.com/activities/contributing-to-open-source/ and our CONTRIBUTING.md file. In short, we ask you to send us Pull Requests based on a branch that you create with this purpose into your repository forked from the original Chamilo repository.

Documentation

For more information on Chamilo, visit https://campus.chamilo.org/documentation/index.html

chamilo-lms's People

Contributors

albert1t0 avatar aligot-cblue avatar angelfqc avatar aragonc avatar baelmyhu avatar borjasanchezbeeznest avatar cesarperales avatar cfasanando avatar christianbeeznest avatar cmcatalan avatar danbarretodev avatar daniboygg avatar diegoe avatar emarguin avatar enriquealcaraz avatar ilosada avatar ivantcholakov avatar jloguercio avatar jmontoyaa avatar marvil07 avatar nicoducou avatar noeldieschburg avatar nosolored avatar omgsunshine avatar pcool avatar polycapa avatar rafatga avatar scrutinizer-auto-fixer avatar ycastillo avatar ywarnier avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

chamilo-lms's Issues

Php notices on sub-language creation

Notice: Undefined index: sub_language_id in .../main/inc/global.inc.php on line 364
Notice: Undefined index: dokeos_folder in .../main/inc/global.inc.php on line 400
Deprecated: Function split() is deprecated in .../main/inc/lib/sub_language.class.php on line 125

This happened with chamilo1.10.x when creating a sub-language word and save it.

announcement creation: user search will only work once

Using the search field when selecting users for an announcement will work 1 time. When a user has been selected the select box (id=users-f) is not reset and keeps showing the result of the last search.

Steps to reproduce / Pasos para reproducir / Étapes pour reproduire

The extreme case (chamilo 1.10): type a Q in the search field. If no user has a Q in the name, the select box will be cleared and there is no way to select additional users for the announcement.
Still a bug in 1.11: after double-clicking the name or adding the name to the box on the right, the select box is still showing the results of the last search. Typing another search letter will not give new results.

Extra issue: when you desperately hit ENTER/RETURN, an announcement is created. This key should be ignored to prevent accidental sending of announcements.

v1.10.6 y 1.10.8: Grabar Competencias, estudio y Títulos.

Saludos,

En estas versiones se habilita el perfil extendido de los usuarios como competencias, que títulos tiene, qué sabe hacer. Estos aparecen en el perfil pero la información que se coloca no se muestra al público ni al usuario correspondiente, a pesar de grabar la información. Pero si aparece por debajo grabada la información en la base de datos.
Favor revisar.

I can't go into course in 1.10.8

Expected behavior / Resultado esperado / Résultat attendu

Should navigate me to course detail where I can upload course contents and other information

Actual behavior / Resultado real / Résultat réel

It keep throwing errors

Steps to reproduce / Pasos para reproducir / Étapes pour reproduire

Install Chamilo 1.10.8 on SmarterASP.net to see issue

Importacion de preguntas en formato Aiken falla

EJEMPLO.txt

Expected behavior / Resultado esperado / Résultat attendu

Las preguntas deberian cargar correctamente

Actual behavior / Resultado real / Résultat réel

Fatal error: Uncaught PDOException: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'ponderation' cannot be null in /var/www/html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php:91 Stack trace: #0 /var/www/html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php(91): PDOStatement->execute(Array) #1 /var/www/html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Statement.php(165): Doctrine\DBAL\Driver\PDOStatement->execute(Array) #2 /var/www/html/main/inc/lib/database.lib.php(399): Doctrine\DBAL\Statement->execute(Array) #3 /var/www/html/main/exercice/answer.class.php(636): Database::insert('c_quiz_answer', Array) #4 /var/www/html/main/exercice/export/aiken/aiken_import.inc.php(213): Answer->save() #5 /var/www/html/main/exercice/export/aiken/aiken_import.inc.php(344): aiken_import_exercise(false) #6 /var/www/html/main/exercice/aiken.php(36): aiken_import_file(Array) #7 {main} Next Doctrine\DBAL\Driver\PDOException: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'ponderation' cann in /var/www/html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php on line 112

Steps to reproduce / Pasos para reproducir / Étapes pour reproduire

Carga de Documento Aiken (Archivo TXT) Doy de peso total 100
firefox_2016-10-08_11-00-41

Users tool: changing student to teacher not possible.

In versions before 1.10 a teacher could promote a collegue (who subscribed to a course as a student) to the teacher status by a single click in the course user list. Now there is only the "set as coach" option. The workaround is to first unsubscribe the user from the course and then manually subscribe the user as a teacher. Is this the only way to promote a user to teacher in a course?

Lentitud consulta herramienta evaluaciones en sesiones en 1.10.6 y 1.10.8

Cordial saludo,

Cuando se hace la consulta en la herramienta Evaluaciones en una sesión, tarda de 20 segundos a dos minutos en mostrar la información. Cómo lo puedo optimizar?.

En el curso Raíz (Principal o Padre) funciona muy bien la consulta, el problema es en las sesiones.
Muchas Gracias.

theme_fallback setting not considered when database not available

The theme_fallback setting has a single purpose: to set a default CSS when the database is not available. However, in 1.11.x, when the database is not available, the design if the one of the installer (moon + stars + Chamilo logo), so the theme_fallback seems to be ignored.
The template_default should also be taken into account.

This has something to do with main/inc/global_error_message.inc.php line 52.

Bug Versión 1.10.6 y 1.10.8 de Chamilo en ejercicio

Cordial Saludo

Se esta creado una pregunta "respuesta múltiples v/f/no-se" y cuando se desea quitar una respuesta,se adiciona otra respuesta, no la elimina, he actualizado el código de la 1.10x hace dos semana en mi chamilo y presento este inconveniente. también se probo en la esta dirección https://1.10.chamilo.org en el curso Colombia

Chamilo Mobile

Hola, aquí les dejamos una aplicacion hecha en Android 100% nativa, por nosotros, es una versión beta y estamos dispuestos a oir sugerencia cosa :)

usuario admin
pass 1q2w3e4r

chamilo.zip

Surveys and dropdown

Hi
When you create a dropdown question in surveys tool, results doesn't seem to be saved.
It's only with dropdown question.

Test version : Chamilo 1.10.8

Adjuntos en anuncios en 1.10.8

Hola,

En support hace ya algún tiempo abrimos una tarea con este asunto (https://support.chamilo.org/issues/8154)

Se arregló todo en la 1.11 pero acabo de comprobar que en la 1.10.8 no está funcionando el envío de adjuntos en anuncios.

Se arregla con esta corrección que hicísteis en la 1.11: 308ab6f

Pero lo comento para que lo tengáis en cuenta.

Gracias. Un saludo.
Laura Guirao

Instalacion Chamilo

Buenas, intento instalar chamilo siguiendo los pasos mencionados en la documentación pero de alguna forma faltan algunas cosas, la carpeta "install" no se encuentra, por lo que una vez ejecutado "composer update" no puedo ir a instalar chamilo, cabe mencionar que segui fielmente los pasos mencionados, y anteriormente habia instalado chamilo sin ningun inconveniente, solo que ahora quiero contribuir con chamilo

Salu2

Student publications tool 1.10.x: Feedback on work emails are sent to all teachers of a course

Teachers complain that they get email from students in course groups that they are not tutor of.
This email is sent to all teachers of a course when a student adds a "feedback" comment to his uploaded work (through group Assignments)
And it looks like this email option cannot be switched off which can cause a lot of email traffic.

diff --git a/main/work/work.lib.php b/main/work/work.lib.php
index 043bcaf..b3b263b 100755
--- a/main/work/work.lib.php
+++ b/main/work/work.lib.php
if (api_is_allowed_to_edit()) {
@@ -3144,7 +3144,7 @@ function addWorkComment($courseInfo, $userId, $parentWork, $work, $data)
$courseInfo['code']
);
if (!empty($teachers)) {

  •            $userIdListToSend = array_keys($teachers);
    
  •    //        $userIdListToSend = array_keys($teachers);
         }
     } else {
         $teachers = SessionManager::getCoachesByCourseSession(
    

Many users in a course

Hi
I have a class with about 28,000 registered users. When I associate this class to a course and return to "users" tool, it can't display the first 20 users.

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 94 bytes) in /var/www/html/chamilo/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php on line 108

Import users as CSV: incorrect example given

A teacher complained he could not import students in his course. He had semicolons as shown in the example:
username; jdoe; jmontoya;

Removing the semicolons was the solution to his problem.
Wrong example is produced by main/user/user_import.php

`echo get_lang('CSVMustLookLike');
echo '


username;
jdoe;
jmontoya;

';

echo get_lang('Or');
echo '


id;
23;
1337;

'; `

Fresh 1.11.x install blows up in flames - PageableManagerInterface not found

Freshly installed on https://1.11.chamilo.org/
After logging in as admin, I get this:

Fatal error: Interface 'Sonata\CoreBundle\Model\PageableManagerInterface' not found in /var/www/1.11.chamilo.org/www/vendor/sonata-project/user-bundle/Model/UserManagerInterface.php on line 24
Call Stack:
0.0009 292736 1. {main}() /var/www/1.11.chamilo.org/www/index.php:0 0.0030 419272 2. require_once('/var/www/1.11.chamilo.org/www/main/inc/global.inc.php') /var/www/1.11.chamilo.org/www/index.php:17
1.0866 13291552 3. require('/var/www/1.11.chamilo.org/www/main/inc/local.inc.php') /var/www/1.11.chamilo.org/www/main/inc/global.inc.php:508
1.1199 14605088 4. UserManager::getManager() /var/www/1.11.chamilo.org/www/main/inc/local.inc.php:269
1.1217 14684312 5. spl_autoload_call() /var/www/1.11.chamilo.org/www/main/inc/local.inc.php:70
1.1217 14684376 6. Composer\Autoload\ClassLoader->loadClass() /var/www/1.11.chamilo.org/www/main/inc/local.inc.php:70
1.1218 14684528 7. Composer\Autoload\includeFile() /var/www/1.11.chamilo.org/www/vendor/composer/ClassLoader.php:301
1.1219 14688848 8. include('/var/www/1.11.chamilo.org/www/src/Chamilo/UserBundle/Entity/Manager/UserManager.php') /var/www/1.11.chamilo.org/www/vendor/composer/ClassLoader.php:412
1.1219 14689160 9. spl_autoload_call() /var/www/1.11.chamilo.org/www/vendor/composer/ClassLoader.php:14
1.1219 14689216 10. Composer\Autoload\ClassLoader->loadClass() /var/www/1.11.chamilo.org/www/vendor/composer/ClassLoader.php:14
1.1220 14689368 11. Composer\Autoload\includeFile() /var/www/1.11.chamilo.org/www/vendor/composer/ClassLoader.php:301
1.1225 14726080 12. include('/var/www/1.11.chamilo.org/www/vendor/sonata-project/user-bundle/Entity/UserManager.php') /var/www/1.11.chamilo.org/www/vendor/composer/ClassLoader.php:412
1.1402 14827360 13. spl_autoload_call() /var/www/1.11.chamilo.org/www/vendor/composer/ClassLoader.php:26
1.1402 14827424 14. Composer\Autoload\ClassLoader->loadClass() /var/www/1.11.chamilo.org/www/vendor/composer/ClassLoader.php:26
1.1404 14827584 15. Composer\Autoload\includeFile() /var/www/1.11.chamilo.org/www/vendor/composer/ClassLoader.php:301
1.1405 14832496 16. include('/var/www/1.11.chamilo.org/www/vendor/sonata-project/user-bundle/Model/UserManagerInterface.php') /var/www/1.11.chamilo.org/www/vendor/composer/ClassLoader.php:412

Bug Versión 1.10.6 y 1.10.8: Categorías, grupos y subgrupos en sesiones y curso principal

Saludos,

Hemos creado un curso con sus diferentes sesiones.
En el curso principal, en grupos, se crea una categoría y esta se muestra en cada sesión.
En el curso principal se crean grupos en la respectiva categoría. Estos grupos no se muestran en la misma categoría en las sesiones.
Si creo subgrupos de los grupos en el principal, en las sesiones se muestra que se han creado sesiones pero no se muestra los subgrupos.
En las sesiones puedo crear grupos y subgrupos como también categorías.
Las categorías creadas en las sesiones se muestran en el curso principal y en todas las sesiones.
Puedo crear subgrupos en las sesiones, estas se muestran en el curso principal.
Si alguien borra los subgrupos de una sesión, estos se borran de todas las sesiones, inclusive del curso principal.
Si en el curso principal borro los subgrupos, estos se borran de todas las sesiones.

Bug Chamilo 1.10.8 video chat

Hay una errata en el archivo main/inc/lib/javascript/chat/video.php

En la línea 37, la ruta que aparece es web/assets/SimpleWebRTC/latest.js
Y debe ser: web/assets/simpleWebRTC/latest.js (la s es minúscula)

Con la ruta correcta el video chat vuelve a funcionar.

En Chamilo 1.11 está corregido

Announcement attachments not sent

Chamilo 1.10.8: When you add an attachment to an announcement, this attachment is not sent by mail.
It is only visible in the on-line announcement. In Chamilo 1.9 it still worked as expected.

Wiki: all pages - "Delete wiki" triggers SQL error

Expected behavior / Resultado esperado / Résultat attendu

In a course wiki, when I click on "All pages", then on the prominent red cross to delete the whole wiki and confirm, it should give me a confirmation message and delete the corresponding wiki's pages.

Actual behavior / Resultado real / Résultat réel

At the moment it does delete the wiki pages but an error message appears.

Steps to reproduce / Pasos para reproducir / Étapes pour reproduire

As an admin:

  • create a course
  • update the wiki
  • create an additional page
  • go to the "all pages" list
  • click the "Delete wiki" red cross and confirm

login.ws.php should get user info from username

api_get_user_info() works on userid rather than username
At least in login.ws.php the following fixed the issue for me.
The same change might be relevant in other files under chamilo-lms-1.10.8/main/auth/

diff  -u login.ws.php.000 login.ws.php
--- login.ws.php.000    2016-09-02 13:27:13.303940444 +0100
+++ login.ws.php    2016-09-02 13:28:52.713228101 +0100
@@ -21,7 +21,7 @@
 // if the authentication was successful, proceed
 if ($isValid === 1) {
     //error_log('WS authentication worked');
-    $chamiloUser = api_get_user_info($login);
+    $chamiloUser = api_get_user_info_from_username($login);
     $loginFailed = false;
     $_user['user_id'] = $chamiloUser['user_id'];
     $_user['status'] = (isset($chamiloUser['status']) ? $chamiloUser['status'] : 5);

Sorting for "tests" tool

Hi
A teacher told me this problem: « I had a hundred HotPotatoes's tests imported into the "tests" tool order by learning sequence. Since the update, this order is modified. »

Indeed the tests are now classified on the "iid" not "id". Is it possible to consider in future that the tests in tests tool will be listed by title alphabetical order ?

Multiple selection on course's members

Since 1.10.8, multiple selections on course's members is buggy.

I can select many users but when i do action, like "unsubscribe" it's going to home page and action is not working.
The same with "display all" when members are on several pages in course's members.

Exportar más tipos de preguntas en QTI

qti2-export-1172.zip
Saludos,

Ni en un curso normal ni en una sesión exporta bien los ejercicios (IMS/QTI).
Ni en un curso normal ni en una sesión importa bien los ejercicios (IMS/QTI).
Sube el ejercicio, suben las preguntas, pero no sube el tipo de pregunta.
No carga las imágenes.
Las imágenes con extensión JPG, no las ve el estudiante, solo el profesor.

qti2-export-1172.zip

Add multi-url checker to web upgrade scripts

When using multi-url, if you use a secondary URL to start the web upgrade process (from 1.10 to 1.11 for example), nothing tells you it's not a good idea, and the issue is that the upgrade then replaces the root_web in configuration.php by the secondary URL, which then causes issues later on in the users subscription processes. This was spotted in BT#11683.

We could alert the user, simply by checking if multi-url is enabled. If it is, check if the current URL is the main one. If it is NOT, then show an alert (like the date.timezone alert) at the top of the first requirements check page.

DQL error in my progress, as student

As a student, in 1.11.x, I enter a course and its learning path, then I go to the "my progress" tab and I click to see the details of the course.

I then get the following error, which suggests that something is wrong about the "PublicatedOn" field...

errorlpprogress

Server 500 error on uploading assignment document

The assignments tool seems to be broken.
In the apache logs an error is recorded with an integrity constraint. How can that be solved?
Version: 1.10.x branch dd 2016/9/9

PHP Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[23000 ]: Integrity constraint violation: 1048 Column 'post_group_id' cannot be null' in xx/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver /PDOStatement.php:91\nStack trace:\n#0 xx/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php(91): PDOStatement->execut e(Array)\n#1 xx/vendor/doctrine/dbal/lib/Doctrine/DBAL/Statement.php(165): Doctrine\\DBAL\\Driver\\PDOStatement->execute(Array)\n# 2 xx/main/inc/lib/database.lib.php(399): Doctrine\\DBAL\\Statement->execute(Array)\n#3 xx/main/wor k/work.lib.php(3757): Database::insert('c_student_publi...', Array)\n#4 xx/main/inc/ajax/work.ajax.php(55): processWorkForm(Array, Array, Array, 0, '216', 784, Array, true)\n#5 {main}\n\nNext exception 'Doctrine\\DBAL\\Driver\\PDOException' with message 'SQLSTATE[23000]: Integrity constraint violat in xx/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php on line 112, referer: https://xx/main/work/upload.php?cidReq=PROFSCHRIJVEN&id_session=0&gidReq=216&gradebook=0&origin=&id=67&origin=

El profesor no puede corregir ejercicios

Hemos observado que en ejercicios, cuando se configura el apartado de mostrar resultados a los estudiantes en modo examen o modo ejercicio, el profesor no puede acceder a corregir el ejercicio ni ver las respuestas.
Si se hace clic en el icono de corregir, la pantalla que aparece solo muestra el resultado, sin opción de ver respuestas, calificar o añadir comentarios.
Entiendo que este no debería ser un comportamiento normal, pues cuando el ejercicio incluye preguntas abiertas es necesario que el profesor las evalúe.

Lo hemos probado en diferentes instalaciones de la versión 1.10, y también en la 1.11 (podeis probar en el curso: https://1.11.chamilo.org/courses/TEST1/index.php )

Learning Path uses default template instead of custom template

I've created a new template directory in main/template and specified its name in main/inc/lib/template.lib.php as instructed.

Any changes I make work fine apart from the learning path functionality. If I customise view.tpl in my custom template directory this is ignored, however if I customise view.tpl in the default directory the changes are reflected in the browser.

It seems that learning paths ignore custom templates - is this deliberate?

Portal News "more" button hidden by left-carousel-control if more than 1 portal news message

IF a portal news message is more than some lines, a MORE button is added.
IF two portal messages or more are present, LEFT and RIGHT parts are defined as css class:
<a class="left carousel-control" href="#carousel-announcement" role="button" data-slide="prev"> <span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span> <span class="sr-only">Previous</span> </a>
And those two combined mean you cannot click the "more" button in a portal news message.

v1.10.6 y 1.10.8: Borrado en Bloque

Saludos,
Cuando se seleccionan varios usuario o varios archivos, no los deja borrar en bloque, hay que hacerlo de forma individual. Favor corregir.

Sin datos en reporte detallado de tiempos

Buenos días espero que me ayuden con este inconveniente que lo estoy presentando en la versión 1.10.6 no se si es un bug o un error de la plataforma, tengo problemas cuando quiero sacar un informe detallado del acceso de un profesor o alumno para realizarle un seguimiento de acceso a la plataforma le doy el rango de la fecha y por dia o por mes no me sale nada, no me sale todas las cantidades de veces detallas de sus accesos como me los mostraba en la versión 1.10.9

Remove auto-globalizing code

In global.inc.php, line 203, we still have something like this that depends on magic_quotes_gpc:

// Remove quotes added by PHP  - get_magic_quotes_gpc() is deprecated in PHP 5 see #2970

if (function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc()) {
    array_walk_recursive_limited($_GET, 'stripslashes', true);
    array_walk_recursive_limited($_POST, 'stripslashes', true);
    array_walk_recursive_limited($_COOKIE, 'stripslashes', true);
    array_walk_recursive_limited($_REQUEST, 'stripslashes', true);
}

This is bad in many senses. This code should be removed very early when starting a new major branch.

&lt; and &gt; get unescaped in intro code

When setting the intro of a course, using &lt; and &gt; do not always work. In some situation, Chamilo unescapes them.

Examples (all entered in source forme, not the WYSIWYG editor):

vector&lt;int&gt; x

=> ends up as vector<int> in the HTML of the page, the <int> part is eaten by the browser, the user sees vector x

Adding a space after &lt;:

vector&lt; int&gt; x

Renders as vector< int> x, as expected.

One can double-escape the code to get the correct result:

vector&amp;lt;int&amp;gt; x

=> renders as vector<int> x.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.