Ejemplo n.º 1
0
// 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');