Bonjour Christian,
En décortiquant le code de la fonction "my_reset_page_for_all_users" de la lib.php de "my" (désolé pour les gros mots ), on s'aperçoit que ce n'est pas si simple. On devrait pouvoir obtenir ce résultat en opérant directement dans la base de données, faute de mieux. Il faut donc virer les blocs instanciés, ainsi que toutes leurs dépendances (là j'ai un doute) dans les pages "my" des usagers et virer ces pages "my"...
Pour sélectionner les blocs en question, la requête (format PostgreSQL) est la suivante :
SELECT bi.id
FROM mdl_my_pages p
JOIN mdl_context ctx ON ctx.instanceid = p.userid AND ctx.contextlevel = 30
JOIN mdl_block_instances bi ON bi.parentcontextid = ctx.id AND
bi.pagetypepattern = 'my-index' AND
(bi.subpagepattern IS NULL OR cast(bi.subpagepattern as bigint) = p.id )
WHERE p.private = 1
Suffit de faire un delete sur tous les blocks avec ces ID... (je ne donne pas volontairement directement la requête afin d'éviter les copier-coller de ceux qui ne sauraient pas interpréter les risques).
Puis de faire la suppression des pages "my" dont les ID sont :
SELECT id
FROM mdl_my_pages
WHERE userid IS NOT NULL AND private = '1'
Je donne ces infos pour les courageux mais SANS AUCUNE GARANTIE !!!
J'ai des gros doutes sur la partie surpression des blocs dont je pense qu'il existe des traces dans d'autres tables...
A bientôt,
Patrick