function referentiel_delete_all_associations_tasks_to_one_user($ref_user) { // supprime toutes les associations pour un user donne /* DROP TABLE IF EXISTS `mdl_referentiel_a_user_task`; CREATE TABLE IF NOT EXISTS `mdl_referentiel_a_user_task` ( `id` bigint(10) unsigned NOT NULL AUTO_INCREMENT, `ref_user` bigint(10) unsigned NOT NULL, `ref_task` bigint(10) unsigned NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='user_select_task' AUTO_INCREMENT=1 ; */ global $DB; $ok_association = true; if (!empty($ref_user)) { $a_records = $DB->get_records("referentiel_a_user_task", "ref_user", $ref_user); if ($a_records) { foreach ($a_records as $a_record) { // suppression $ok_association = $ok_association && referentiel_delete_a_user_task_record($a_record->id); } $a_records->close(); } } return $ok_association; }
function referentiel_delete_task_record($id) { // suppression task + consignes associes global $DB; $ok_task = false; if (isset($id) && $id > 0) { if ($task = $DB->get_record("referentiel_task", array("id" => "{$id}"))) { // Delete any dependent records here $ok_association = true; if ($r_a_users_tasks = $DB->get_records("referentiel_a_user_task", array("ref_task" => $id))) { // DEBUG // print_object($r_a_users_tasks); // echo "<br />"; // suppression des associations foreach ($r_a_users_tasks as $r_a_user_task) { // suppression $ok_association = $ok_association && referentiel_delete_a_user_task_record($r_a_user_task->id); } } $ok_consigne = true; if ($consignes = $DB->get_records("referentiel_consigne", array("ref_task" => "{$id}"))) { // DEBUG // print_object($consignes); // echo "<br />"; // suppression des consignes associes dans la table referentiel_consigne foreach ($consignes as $consigne) { // suppression $ok_consigne = $ok_consigne && referentiel_delete_consigne_record($consigne->id); } } // suppression task if ($ok_consigne && $ok_association) { $ok_task = $DB->delete_records("referentiel_task", array("id" => "{$id}")); } } } return $ok_task; }