Example #1
0
/**
 * Delete a record entry.
 *
 * @param int $recordid The ID for the record to be deleted.
 * @param object $data The data object for this activity.
 * @param int $courseid ID for the current course (for logging).
 * @param int $cmid The course module ID.
 * @return bool True if the record deleted, false if not.
 */
function data_delete_record($recordid, $data, $courseid, $cmid)
{
    global $DB, $CFG;
    if ($deleterecord = $DB->get_record('data_records', array('id' => $recordid))) {
        if ($deleterecord->dataid == $data->id) {
            if ($contents = $DB->get_records('data_content', array('recordid' => $deleterecord->id))) {
                foreach ($contents as $content) {
                    if ($field = data_get_field_from_id($content->fieldid, $data)) {
                        $field->delete_content($content->recordid);
                    }
                }
                $DB->delete_records('data_content', array('recordid' => $deleterecord->id));
                $DB->delete_records('data_records', array('id' => $deleterecord->id));
                // Delete cached RSS feeds.
                if (!empty($CFG->enablerssfeeds)) {
                    require_once $CFG->dirroot . '/mod/data/rsslib.php';
                    data_rss_delete_file($data);
                }
                // Trigger an event for deleting this record.
                $event = \mod_data\event\record_deleted::create(array('objectid' => $deleterecord->id, 'context' => context_module::instance($cmid), 'courseid' => $courseid, 'other' => array('dataid' => $deleterecord->dataid)));
                $event->add_record_snapshot('data_records', $deleterecord);
                $event->trigger();
                return true;
            }
        }
    }
    return false;
}
Example #2
0
/**
 * Delete a record entry.
 *
 * @param int $recordid The ID for the record to be deleted.
 * @param object $data The data object for this activity.
 * @param int $courseid ID for the current course (for logging).
 * @param int $cmid The course module ID.
 * @return bool True if the record deleted, false if not.
 */
function data_delete_record($recordid, $data, $courseid, $cmid)
{
    global $DB, $CFG;
    if ($deleterecord = $DB->get_record('data_records', array('id' => $recordid))) {
        if ($deleterecord->dataid == $data->id) {
            if ($contents = $DB->get_records('data_content', array('recordid' => $deleterecord->id))) {
                foreach ($contents as $content) {
                    if ($field = data_get_field_from_id($content->fieldid, $data)) {
                        $field->delete_content($content->recordid);
                    }
                }
                $DB->delete_records('data_content', array('recordid' => $deleterecord->id));
                $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;
            }
        }
    }
    return false;
}