diff options
Diffstat (limited to 'models')
| -rw-r--r-- | models/model.php | 39 | 
1 files changed, 35 insertions, 4 deletions
| diff --git a/models/model.php b/models/model.php index 76d2d7b61..f1ed39369 100644 --- a/models/model.php +++ b/models/model.php @@ -38,7 +38,7 @@ function event_calendar_set_event_from_form($event_guid,$group_guid) {  			'brief_description','fees','contact','organiser',  			'tags'); -		if ($event_calendar_times == 'yes') { +		if ($event_calendar_times != 'no') {  			$required_fields[] = 'start_time';  			if ($event_calendar_hide_end != 'yes') {  				$required_fields[] = 'end_time'; @@ -83,9 +83,15 @@ function event_calendar_set_event_from_form($event_guid,$group_guid) {  	$start_date_text = date("Y-m-d",$start_date);  	$event->start_date = strtotime($start_date_text." ".date_default_timezone_get()); -	$event->end_date = get_input('end_date',''); +	$end_date = trim(get_input('end_date','')); +	if ($end_date) { +		$end_date_text = date("Y-m-d",$end_date);		 +		$event->end_date = strtotime($end_date_text." ".date_default_timezone_get()); +	} else { +		$event->end_date = ''; +	} -	if ($event_calendar_times == 'yes') { +	if ($event_calendar_times != 'no') {  		$sh = get_input('start_time_h','');  		$sm = get_input('start_time_m','');  		if (is_numeric($sh) && is_numeric($sm)) { @@ -961,7 +967,7 @@ function event_calendar_get_formatted_full_items($event) {  function event_calendar_get_formatted_time($event) {  	$date_format = 'j M Y'; -	$event_calendar_times = elgg_get_plugin_setting('times', 'event_calendar') == 'yes'; +	$event_calendar_times = elgg_get_plugin_setting('times', 'event_calendar') != 'no';  	$start_date = date($date_format,$event->start_date);  	if ((!$event->end_date) || ($event->end_date == $event->start_date)) { @@ -1731,3 +1737,28 @@ function getLastDayOfMonth($month,$year) {  	return idate('d', mktime(0, 0, 0, ($month + 1), 0, $year));  } +// TODO - this is not quite right across daylight savings time divides +// Possible solution: convert stored date to server date, do inc and then convert back to GMT + +function event_calendar_modify_full_calendar($event_guid,$day_delta,$minute_delta) { +	$event = get_entity($event_guid); +	if (elgg_instanceof($event,'object','event_calendar') && $event->canEdit()) { +		$event->start_date = strtotime("$day_delta days",$event->start_date)+60*$minute_delta; +		if ($event->end_date) { +			$event->end_date = strtotime("$day_delta days",$event->end_date); +		} +		$times = elgg_get_plugin_setting('times','event_calendar'); +		//$inc = 24*60*60*$day_delta+60*$minute_delta; +		 +		//$event->real_end_time += $inc; +		$event->real_end_time = strtotime("$day_delta days",$event->real_end_time)+60*$minute_delta; +		if ($times != 'no') { +			$event->start_time += $minute_delta; +			if ($event->end_time) { +				$event->end_time += $minute_delta; +			} +		} +		return TRUE; +	} +	return FALSE; +} | 
