private function contribution_actions(CalendarEvent $event, $id_event) { if ($event->get_id() === null) { if ($this->is_contributor_member()) { $contribution = new Contribution(); $contribution->set_id_in_module($id_event); $contribution->set_description(stripslashes($this->form->get_value('contribution_description'))); $contribution->set_entitled($event->get_content()->get_title()); $contribution->set_fixing_url(CalendarUrlBuilder::edit_event($id_event)->relative()); $contribution->set_poster_id(AppContext::get_current_user()->get_id()); $contribution->set_module('calendar'); $contribution->set_auth(Authorizations::capture_and_shift_bit_auth(CalendarService::get_categories_manager()->get_heritated_authorizations($event->get_content()->get_category_id(), 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('calendar', $id_event); if (count($corresponding_contributions) > 0) { $event_contribution = $corresponding_contributions[0]; $event_contribution->set_status(Event::EVENT_STATUS_PROCESSED); ContributionService::save_contribution($event_contribution); } } $event->set_id($id_event); }