Exemple #1
0
function wiki_delete_instance($id)
{
    /// Given an ID of an instance of this module,
    /// this function will permanently delete the instance
    /// and any data that depends on it.
    global $CFG;
    if (!($wiki = get_record("wiki", "id", $id))) {
        return false;
    }
    $result = true;
    #Delete Files
    ### Should probably check regardless of this setting in case its been changed...
    if ($wiki->ewikiacceptbinary) {
        if ($basedir = $CFG->dataroot . "/" . $wiki->course . "/" . $CFG->moddata . "/wiki/{$id}") {
            if ($files = get_directory_list($basedir)) {
                foreach ($files as $file) {
                    #if ($file != $exception) {
                    unlink("{$basedir}/{$file}");
                    notify("Existing file '{$file}' has been deleted!");
                    #}
                }
            }
            #if (!$exception) {  // Delete directory as well, if empty
            wiki_rmdir("{$basedir}");
            #}
        }
    }
    # Delete any dependent records here #
    if (!delete_records("wiki_locks", "wikiid", $wiki->id)) {
        $result = false;
    }
    if (!delete_records("wiki", "id", $wiki->id)) {
        $result = false;
    }
    /// Delete all wiki_entries and wiki_pages.
    if (($wiki_entries = wiki_get_entries($wiki)) !== false) {
        foreach ($wiki_entries as $wiki_entry) {
            if (!delete_records("wiki_pages", "wiki", "{$wiki_entry->id}")) {
                $result = false;
            }
            if (!delete_records("wiki_entries", "id", "{$wiki_entry->id}")) {
                $result = false;
            }
        }
    }
    return $result;
}
Exemple #2
0
/**
 * Given an ID of an instance of this module,
 * this function will permanently delete the instance
 * and any data that depends on it.
 *
 * @global stdObject
 * @global object
 * @param int $id
 * @return bool
 */
function wiki_delete_instance($id)
{
    global $CFG, $DB, $OUTPUT;
    if (!($wiki = $DB->get_record("wiki", array("id" => $id)))) {
        return false;
    }
    $result = true;
    #Delete Files
    ### Should probably check regardless of this setting in case its been changed...
    if ($wiki->ewikiacceptbinary) {
        if ($basedir = $CFG->dataroot . "/" . $wiki->course . "/" . $CFG->moddata . "/wiki/{$id}") {
            if ($files = get_directory_list($basedir)) {
                foreach ($files as $file) {
                    #if ($file != $exception) {
                    unlink("{$basedir}/{$file}");
                    echo $OUTPUT->notification("Existing file '{$file}' has been deleted!");
                    #}
                }
            }
            #if (!$exception) {  // Delete directory as well, if empty
            wiki_rmdir("{$basedir}");
            #}
        }
    }
    # Delete any dependent records here #
    if (!$DB->delete_records("wiki_locks", array("wikiid" => $wiki->id))) {
        $result = false;
    }
    if (!$DB->delete_records("wiki", array("id" => $wiki->id))) {
        $result = false;
    }
    /// Delete all wiki_entries and wiki_pages.
    if (($wiki_entries = wiki_get_entries($wiki)) !== false) {
        foreach ($wiki_entries as $wiki_entry) {
            if (!$DB->delete_records("wiki_pages", array("wiki" => $wiki_entry->id))) {
                $result = false;
            }
            if (!$DB->delete_records("wiki_entries", array("id" => $wiki_entry->id))) {
                $result = false;
            }
        }
    }
    return $result;
}