// repeating data $event->repeat = $repeat ? 1 : 0; $event->repeat_end_after = (int) $repeat_end_after; // number of occurrances $event->repeat_end_on = $repeat_end_on; // date YYYY-MM-DD that it ends on $event->repeat_frequency = $repeat ? $repeat_frequency : Util::FREQUENCY_ONCE; // string identifying the repeating frequency $event->repeat_end_type = $repeat ? $repeat_end_type : Util::REPEAT_END_ONE_TIME; // how to determine how to end the repeat (never | occurrances | date) unset($event->repeat_monthly_by); unset($event->repeat_weekly_days); switch ($event->repeat_frequency) { case Util::FREQUENCY_WEEKLY: $repeat_weekly_days = get_input('repeat_weekly_days'); $repeat_weekly_days = is_array($repeat_weekly_days) ? $repeat_weekly_days : date('D', $event->getStartTimestamp()); $event->repeat_weekly_days = $repeat_weekly_days; break; case Util::FREQUENCY_MONTHLY: $repeat_monthly_by = get_input('repeat_monthly_by', Util::REPEAT_MONTHLY_BY_DATE); $event->repeat_monthly_by = $repeat_monthly_by; break; } $event->repeat_end_timestamp = $event->calculateRepeatEndTimestamp(); if (!$event->save()) { register_error(elgg_echo('events:error:save')); forward(REFERER); } $event->setLocation($location); elgg_delete_metadata(array('guids' => $event->guid, 'metadata_names' => 'reminder', 'limit' => 0)); $has_reminders = get_input('has_reminders');