diff --git a/mod/data/lib.php b/mod/data/lib.php index 8123cc85c50..b3e7749d291 100644 --- a/mod/data/lib.php +++ b/mod/data/lib.php @@ -3671,7 +3671,7 @@ function data_user_can_delete_preset($context, $preset) { * @return bool True if the record deleted, false if not. */ function data_delete_record($recordid, $data, $courseid, $cmid) { - global $DB; + global $DB, $CFG; if ($deleterecord = $DB->get_record('data_records', array('id' => $recordid))) { if ($deleterecord->dataid == $data->id) { @@ -3685,6 +3685,13 @@ function data_delete_record($recordid, $data, $courseid, $cmid) { $DB->delete_records('data_records', array('id'=>$deleterecord->id)); add_to_log($courseid, 'data', 'record delete', "view.php?id=$cmid", $data->id, $cmid); + + // Delete cached RSS feeds. + if (!empty($CFG->enablerssfeeds)) { + require_once($CFG->dirroot.'/mod/data/rsslib.php'); + data_rss_delete_file($data); + } + return true; } } diff --git a/mod/data/rsslib.php b/mod/data/rsslib.php index 1c3b3e6d180..823239fa9f6 100644 --- a/mod/data/rsslib.php +++ b/mod/data/rsslib.php @@ -177,3 +177,15 @@ return ($recs && !empty($recs)); } + /** + * Given a database object, deletes all cached RSS files associated with it. + * + * @param stdClass $data + */ + function data_rss_delete_file($data) { + global $CFG; + require_once("$CFG->libdir/rsslib.php"); + + rss_delete_file('mod_data', $data); + } + diff --git a/mod/glossary/deleteentry.php b/mod/glossary/deleteentry.php index f8ca4365d2e..55326172544 100644 --- a/mod/glossary/deleteentry.php +++ b/mod/glossary/deleteentry.php @@ -114,6 +114,13 @@ if ($confirm and confirm_sesskey()) { // the operation was confirmed. } add_to_log($course->id, "glossary", "delete entry", "view.php?id=$cm->id&mode=$prevmode&hook=$hook", $entry->id,$cm->id); + + // Delete cached RSS feeds. + if (!empty($CFG->enablerssfeeds)) { + require_once($CFG->dirroot.'/mod/glossary/rsslib.php'); + glossary_rss_delete_file($glossary); + } + redirect("view.php?id=$cm->id&mode=$prevmode&hook=$hook"); } else { // the operation has not been confirmed yet so ask the user to do so diff --git a/mod/glossary/rsslib.php b/mod/glossary/rsslib.php index 66b2ffcc2e2..f322b8b412a 100644 --- a/mod/glossary/rsslib.php +++ b/mod/glossary/rsslib.php @@ -196,4 +196,14 @@ return ($recs && !empty($recs)); } + /** + * Given a glossary object, deletes all cached RSS files associated with it. + * + * @param stdClass $glossary + */ + function glossary_rss_delete_file($glossary) { + global $CFG; + require_once("$CFG->libdir/rsslib.php"); + rss_delete_file('mod_glossary', $glossary); + }