private function contribution_actions(DownloadFile $downloadfile, $id) { if ($downloadfile->get_id() === null) { if ($this->is_contributor_member()) { $contribution = new Contribution(); $contribution->set_id_in_module($id); $contribution->set_description(stripslashes($this->form->get_value('contribution_description'))); $contribution->set_entitled($downloadfile->get_name()); $contribution->set_fixing_url(DownloadUrlBuilder::edit($id)->relative()); $contribution->set_poster_id(AppContext::get_current_user()->get_id()); $contribution->set_module('download'); $contribution->set_auth(Authorizations::capture_and_shift_bit_auth(DownloadService::get_categories_manager()->get_heritated_authorizations($downloadfile->get_id_category(), Category::MODERATION_AUTHORIZATIONS, Authorizations::AUTH_CHILD_PRIORITY), Category::MODERATION_AUTHORIZATIONS, Contribution::CONTRIBUTION_AUTH_BIT)); ContributionService::save_contribution($contribution); } } else { $corresponding_contributions = ContributionService::find_by_criteria('download', $id); if (count($corresponding_contributions) > 0) { $downloadfile_contribution = $corresponding_contributions[0]; $downloadfile_contribution->set_status(Event::EVENT_STATUS_PROCESSED); ContributionService::save_contribution($downloadfile_contribution); } } $downloadfile->set_id($id); }