Example #1
0
/**
 * Update the group icon from form data
 *
 * @param stdClass $group group information
 * @param stdClass $data
 * @param stdClass $editform
 */
function groups_update_group_icon($group, $data, $editform)
{
    global $CFG, $DB;
    require_once "{$CFG->libdir}/gdlib.php";
    $fs = get_file_storage();
    $context = context_course::instance($group->courseid, MUST_EXIST);
    $newpicture = $group->picture;
    if (!empty($data->deletepicture)) {
        $fs->delete_area_files($context->id, 'group', 'icon', $group->id);
        $newpicture = 0;
    } else {
        if ($iconfile = $editform->save_temp_file('imagefile')) {
            if ($rev = process_new_icon($context, 'group', 'icon', $group->id, $iconfile)) {
                $newpicture = $rev;
            } else {
                $fs->delete_area_files($context->id, 'group', 'icon', $group->id);
                $newpicture = 0;
            }
            @unlink($iconfile);
        }
    }
    if ($newpicture != $group->picture) {
        $DB->set_field('groups', 'picture', $newpicture, array('id' => $group->id));
        $group->picture = $newpicture;
        // Invalidate the group data as we've updated the group record.
        cache_helper::invalidate_by_definition('core', 'groupdata', array(), array($group->courseid));
    }
}
Example #2
0
/**
 * Update the group icon from form data
 *
 * @param stdClass $group group information
 * @param stdClass $data
 * @param stdClass $editform
 */
function groups_update_group_icon($group, $data, $editform)
{
    global $CFG, $DB;
    require_once "{$CFG->libdir}/gdlib.php";
    $fs = get_file_storage();
    $context = context_course::instance($group->courseid, MUST_EXIST);
    //TODO: it would make sense to allow picture deleting too (skodak)
    if ($iconfile = $editform->save_temp_file('imagefile')) {
        if (process_new_icon($context, 'group', 'icon', $group->id, $iconfile)) {
            $DB->set_field('groups', 'picture', 1, array('id' => $group->id));
            $group->picture = 1;
        } else {
            $fs->delete_area_files($context->id, 'group', 'icon', $group->id);
            $DB->set_field('groups', 'picture', 0, array('id' => $group->id));
            $group->picture = 0;
        }
        @unlink($iconfile);
        // Invalidate the group data as we've updated the group record.
        cache_helper::invalidate_by_definition('core', 'groupdata', array(), array($group->courseid));
    }
}
Example #3
0
/**
 * Update the group icon from form data
 *
 * @param stdClass $group group information
 * @param stdClass $data
 * @param stdClass $editform
 */
function groups_update_group_icon($group, $data, $editform)
{
    global $CFG, $DB;
    require_once "{$CFG->libdir}/gdlib.php";
    $fs = get_file_storage();
    $context = get_context_instance(CONTEXT_COURSE, $group->courseid, MUST_EXIST);
    //TODO: it would make sense to allow picture deleting too (skodak)
    if ($iconfile = $editform->save_temp_file('imagefile')) {
        if (process_new_icon($context, 'group', 'icon', $group->id, $iconfile)) {
            $DB->set_field('groups', 'picture', 1, array('id' => $group->id));
            $group->picture = 1;
        } else {
            $fs->delete_area_files($context->id, 'group', 'icon', $group->id);
            $DB->set_field('groups', 'picture', 0, array('id' => $group->id));
            $group->picture = 0;
        }
        @unlink($iconfile);
    }
}