18. Interface en ligne de commandes (CLI)

Les interfaces en lignes de commandes (CLI) vous permettent d’interagir avec Mahara par le biais de la ligne de commande ou du terminal plutôt que par une interface graphique. Cela peut accélérer certaines actions ou les rendre plus faciles à exécuter.

Note

Vous pouvez afficher des informations d’aide sur les commandes individuelles disponibles pour chaque script :

sudo -u www-data php htdocs/admin/cli/[nom du fichier du script].php -h

18.1. new in Mahara 24.04 Add a block to pages in bulk

Copy a block and its settings to other people’s pages or a specific person’s page via the backend. The block is copied to the same page type.

For example, if the original block is located on a “Dashboard” page, the block is only copied to “Dashboard” pages. The block will not be copied if the target page already has the same type of block. For example, a “Portfolios shared with me” block can only be copied to other “Dashboard” pages if they don’t already have that block.

sudo -u www-data php htdocs/admin/cli/add_block_to_views.php

You need the following, which you can find in the block_instance database table:

  • The ID of the block that you want to copy

  • The ID of the page on which the block is located

    Note

    A “Page” is called “view” in the database. So you want to look for “view” to find the ID of a page.

18.2. new in Mahara 24.04 Active account holder information

You may wish to know if the people who have logged in during a specific time frame have engaged on the site, e.g. created or uploaded content. By knowing that, you could decide if you wanted to delete certain accounts if they only logged in but have not performed any actions.

Execute the script with the following command.

sudo -u www-data php htdocs/admin/cli/inactive_users.php --interval="1 YEAR"

Note

You can change the interval time and also display days or months. The interval always indicates the time period from now into the past by the interval. By choosing 1 year, for example, you see everyone who has logged into the site during the previous 365 days.

The resulting table shows the following information:

  • Mahara ID: The internal Mahara ID

  • Username: The username of the account

  • Last login: The last login date and time

  • Only has default pages: If “Yes” is displayed, the account holder only has the dashboard and the profile page, but has not created any portfolio pages. If “No” is displayed, they have at least one portfolio page.

  • New artefacts in time interval: If “Yes” is displayed, they created or uploaded content during the time interval. If “No” is displayed, they did not create any content during the selected time period.

  • New portfolios in time interval: If “Yes” is displayed, they created at least one portfolio page during the time interval. If “No” is displayed, they did not create any portfolio pages during the time interval.

  • Has joined groups: If “Yes” is displayed, they are a member of at least one group. If “No” is displayed, they have not joined any groups.

  • Quata used: The amount of the file quota is displayed in bytes.

  • Quota used percentage: The percentage of their used quota

18.3. Surveillance des tâches Cron

Configurez quand vous voulez être alerté des échecs de la tâche cron dans un logiciel de surveillance externe.

See also

Reportez-vous au module « Surveillance » dans l”administration des plugins.

18.4. Supprimer certains groupes par lots

Si vous avez un gros site et que vous avez supprimé un grand nombre de comptes, vous pouvez également souhaiter nettoyer les anciens groupes de manière efficace. Vous pouvez faire ce qui suit avec le script de suppression en masse de groupes :

  • supprimer tous les groupes qui n’ont pas de membres, par exemple après que les comptes aient été supprimés ;

  • et supprimer tous les groupes qui n’ont comme membres que des administrateurs de site ;

  • et / ou supprimer uniquement les groupes associés à une certaine institution.

Exécutez le script avec la commande suivante. Une exécution à froid est effectuée par défaut afin qu’aucune donnée ne soit supprimée par accident.

sudo -u www-data php htdocs/admin/cli/delete_inactive_groups.php

18.5. Supprimer certains comptes en masse

Si vous souhaitez supprimer des comptes en masse du site sans avoir à passer par l’écran d’administration, surtout si vous avez plus de 500 comptes à supprimer, vous pouvez utiliser le CLI. Ce script vous permet d’effectuer les opérations suivantes :

  • supprimer tous les comptes qui n’ont jamais été connectés, c’est-à-dire qui ont été créés manuellement, via un fichier CSV, ou un processus automatisé ;

  • et / ou supprimer tous les comptes qui ne se sont jamais connectés depuis une certaine date ;

  • et / ou supprimer uniquement les comptes d’une ou plusieurs institutions spécifiques ;

  • supprimer les comptes qui n’appartiennent pas à une ou plusieurs institutions spécifiques ;

  • supprimer les comptes qui sont membres d’un groupe spécifique.

Note

Lorsque vous spécifiez des institutions ou des groupes, utilisez leur nom abrégé.

Exécutez le script avec la commande suivante. Une exécution à froid est effectuée par défaut afin qu’aucune donnée ne soit supprimée par accident.

Travail à vide général :

sudo -u www-data php htdocs/admin/cli/delete_inactive_users.php

View the help file:

sudo -u www-data php htdocs/admin/cli/delete_inactive_users.php -h

18.6. Export accounts in bulk

You can export all or certain accounts in bulk via CLI. You have the following options:

  • Export all accounts

  • Export some accounts based on filter criteria: first name, last name, email, username

  • Export some accounts based on CSV file

  • Choose the export format: HTML, Leap2A, PDF (if installed)

Exécutez le script avec la commande suivante. Une exécution à froid est effectuée par défaut afin qu’aucune donnée ne soit supprimée par accident.

Travail à vide général :

sudo -u www-data php htdocs/admin/cli/portfolio_bulkexport.php

View the help file:

sudo -u www-data php htdocs/admin/cli/portfolio_bulkexport.php -h

18.7. Indexation plus rapide des sites utilisant Elasticsearch

Note

Prérequis : Elasticsearch doit être installé sur les site et correctement configuré.

Lorsqu’un gros site est indexé ou ré-indexé pour qu’Elasticsearch puisse afficher les résultats des recherches, le processus peut être relativement long parceque celui-ci n’est lancé que lorsque le cron est lancé. Si le lot de document à indexer a terminé avant la fin du cron, il existe alors un temps d’attente avant que le prochain lot puisse être lancé. Pour éviter cela, le script CLI fast_index permet de démarrer un nouveau lot d’indexation dès que le précédent est terminé.

Pour lancer le script vous utilisez la commande suite :

sudo -u www-data php admin/cli/fast_index.php

18.8. Installer et mettre à jour les paquets de langue

Une action de ce type concerne par exemple l’exploitation des paquets de langues. Normalement, vous devez télécharger un paquet de langue depuis le site ad hoc, et le placer manuellement dans le dossier approprié. Ceci est assez fastidieux, notamment lorsque vous désirez gérer et mettre à jour plusieurs paquets de langue sur votre plateforme.

En utilisant CLI, vous pouvez accélérer le processus.

Installer ou mettre à jour des paquets de langue pour votre instance de Mahara en listant simplement les codes de langue.

Exemple (de = Allemand, fr = Français) :

sudo -u www-data php admin/cli/sync_langpacks.php -l=de,fr

Ceci va créer automatiquement, s’il existe, une sauvegarde du paquet de langue dans le dossier langpacks_backup.

Note

Les codes de langue utilisés sont les codes internationaux officiels utilisés pour les « paquets de langue Mahara » <https://langpacks.mahara.org/>`_.

Ne pas faire de sauvegarde : Ajouter le paramètre -b=false

Exemple :

sudo -u www-data php admin/cli/sync_langpacks.php -l=de,fr -b=false

Rétablir une sauvegarde : Utilisez le paramètre -r=true

Exemple :

sudo -u www-data php admin/cli/sync_langpacks.php -l=de,fr -r=true

La mise à jour de la langue anglaise est ignorée, car les chaînes anglaises sont dans le coeur de Mahara et non dans un paquet de langue.

18.9. Populate outcomes portfolio tables

Theoutcomes portfolios require the configuration of outcome categories, types, and subjects. These are added directly into the database via the upload of CSV files through CLI.

See also

Refer to the outcomes portfolio types and subjects setup instructions to learn what the CSV files need to look like.

Upload the outcome types file, which also directly sets up the outcome categories:

sudo -u www-data php htdocs/admin/cli/populate_outcome_tables.php -t=path_to_categories.csv

The -t flag indicates that it is the file that contains the outcome types.

Upload the subjects file:

sudo -u www-data php htdocs/admin/cli/populate_outcome_tables.php -s=path_to_subjects.csv

The -s flag indicates that it is the file that contains the subjects.

new in Mahara 24.04 The -e flag allows you to enable the outcomes functionality for the institution for which you want to create the cateogries or subjects if you haven’t already enabled it.

For example, the following commands enables outcomes for the institution mentioned in the CSV file and creates the subjects:

sudo -u www-data php htdocs/admin/cli/populate_outcome_tables.php -s=path_to_subjects.csv -e=true