Completed
Push — api_add_event ( 74c253 )
by
unknown
32:12
created

event.php ➔ save_event()   F

Complexity

Conditions 51
Paths > 20000

Size

Total Lines 117
Code Lines 82

Duplication

Lines 45
Ratio 38.46 %

Importance

Changes 0
Metric Value
cc 51
eloc 82
nc 3248160
nop 10
dl 45
loc 117
rs 2
c 0
b 0
f 0

How to fix   Long Method    Complexity    Many Parameters   

Long Method

Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.

For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.

Commonly applied refactorings include:

Many Parameters

Methods with many parameters are not only hard to understand, but their parameters also often become inconsistent when you need more, or different data.

There are several approaches to avoid long parameter lists:

1
<?php
2
/*
3
 * Exposes API endpoints for Event entities
4
 */
5
6
elgg_ws_expose_function(
7
	"get.event",
8
	"get_event",
9
	array(
10
		"user" => array('type' => 'string', 'required' => true),
11
		"guid" => array('type' => 'int', 'required' => true),
12
		"lang" => array('type' => 'string', 'required' => false, 'default' => "en")
13
	),
14
	'Retrieves an event based on user id and event id',
15
	'POST',
16
	true,
17
	false
18
);
19
20
elgg_ws_expose_function(
21
	"event.add.calendar",
22
	"event_add_calendar",
23
	array(
24
		"user" => array('type' => 'string', 'required' => true),
25
		"guid" => array('type' => 'int', 'required' => true),
26
		"lang" => array('type' => 'string', 'required' => false, 'default' => "en")
27
	),
28
	'Retrieves an event based on user id and event id',
29
	'POST',
30
	true,
31
	false
32
);
33
34
elgg_ws_expose_function(
35
	"get.events",
36
	"get_events",
37
	array(
38
		"user" => array('type' => 'string', 'required' => true),
39
		"from" => array('type' => 'string', 'required' => false, 'default' => ""),
40
		"to" => array('type' => 'string', 'required' => false, 'default' => ""),
41
		"limit" => array('type' => 'int', 'required' => false, 'default' => 10),
42
		"lang" => array('type' => 'string', 'required' => false, 'default' => "en")
43
	),
44
	'Retrieves an event based on user id and event id',
45
	'POST',
46
	true,
47
	false
48
);
49
50
elgg_ws_expose_function(
51
	"get.eventsbyowner",
52
	"get_events_by_owner",
53
	array(
54
		"user" => array('type' => 'string', 'required' => true),
55
		"from" => array('type' => 'string', 'required' => false, 'default' => ""),
56
		"to" => array('type' => 'string', 'required' => false, 'default' => ""),
57
		"limit" => array('type' => 'int', 'required' => false, 'default' => 10),
58
		"lang" => array('type' => 'string', 'required' => false, 'default' => "en")
59
	),
60
	'Retrieves an event based on user id and event id',
61
	'POST',
62
	true,
63
	false
64
);
65
66
elgg_ws_expose_function(
67
	"get.eventsbycolleagues",
68
	"get_events_by_colleagues",
69
	array(
70
		"user" => array('type' => 'string', 'required' => true),
71
		"from" => array('type' => 'string', 'required' => false, 'default' => ""),
72
		"to" => array('type' => 'string', 'required' => false, 'default' => ""),
73
		"limit" => array('type' => 'int', 'required' => false, 'default' => 10),
74
		"offset" => array('type' => 'int', 'required' => false, 'default' => 0),
75
		"lang" => array('type' => 'string', 'required' => false, 'default' => "en")
76
	),
77
	'Retrieves an event based on user id and event id',
78
	'POST',
79
	true,
80
	false
81
);
82
83
elgg_ws_expose_function(
84
	"get.seecalendar",
85
	"get_see_calendar",
86
	array(
87
		"user" => array('type' => 'string', 'required' => true),
88
		"guid" => array('type' => 'int', 'required' => true),
89
		"lang" => array('type' => 'string', 'required' => false, 'default' => "en")
90
	),
91
	'Retrieves an event based on user id and event id',
92
	'POST',
93
	true,
94
	false
95
);
96
97
elgg_ws_expose_function(
98
	"save.event",
99
	"save_event",
100
	array(
101
		"user" => array('type' => 'string', 'required' => true),
102
		"title" => array('type' => 'string', 'required' => true),
103
		"excerpt" => array('type' =>'string', 'required' => false, 'default' => ''),
104
		"body" => array('type' =>'string', 'required' => true),
105
		"container_guid" => array('type' =>'string', 'required' => false, 'default' => ''),
106
		"blog_guid" => array('type' =>'string', 'required' => false, 'default' => ''),
107
		"comments" => array('type' =>'int', 'required' => false, 'default' => 1),
108
		"access" => array('type' =>'int', 'required' => false, 'default' => 1),
109
		"status" => array('type' =>'int', 'required' => false, 'default' => 0),
110
		"lang" => array('type' => 'string', 'required' => false, 'default' => "en")
111
	),
112
	'Posts/Saves an event post',
113
	'POST',
114
	true,
115
	false
116
   );
117
function get_event($user, $guid, $lang)
118
{
119
	$user_entity = is_numeric($user) ? get_user($user) : (strpos($user, '@') !== false ? get_user_by_email($user)[0] : get_user_by_username($user));
120
	if (!$user_entity) {
121
		return "User was not found. Please try a different GUID, username, or email address";
122
	}
123
	if (!$user_entity instanceof ElggUser) {
124
		return "Invalid user. Please try a different GUID, username, or email address";
125
	}
126
127
	if (!elgg_is_logged_in()) {
128
		login($user_entity);
129
	}
130
131
	$entity = get_entity($guid);
132
	if (!$entity) {
133
		return "Event was not found. Please try a different GUID";
134
	}
135
	if (!$entity->type !== "event_calendar") {
0 ignored issues
show
Unused Code introduced by
This if statement is empty and can be removed.

This check looks for the bodies of if statements that have no statements or where all statements have been commented out. This may be the result of changes for debugging or the code may simply be obsolete.

These if bodies can be removed. If you have an empty if but statements in the else branch, consider inverting the condition.

if (rand(1, 6) > 3) {
//print "Check failed";
} else {
    print "Check succeeded";
}

could be turned into

if (rand(1, 6) <= 3) {
    print "Check succeeded";
}

This is much more concise to read.

Loading history...
136
		//return "Invalid event. Please try a different GUID";
137
	}
138
139
	$events = elgg_list_entities(array(
140
		'type' => 'object',
141
		'subtype' => 'event_calendar',
142
		'guid' => $guid
143
	));
144
	$event = json_decode($events)[0];
145
146
	$likes = elgg_get_annotations(array(
147
		'guid' => $event->guid,
148
		'annotation_name' => 'likes'
149
	));
150
	$event->likes = count($likes);
151
152
	$liked = elgg_get_annotations(array(
153
		'guid' => $event->guid,
154
		'annotation_owner_guid' => $user_entity->guid,
155
		'annotation_name' => 'likes'
156
	));
157
158
	$event->liked = count($liked) > 0;
159
160
	$event->title = gc_explode_translation($event->title, $lang);
161
	$event->description = gc_explode_translation($event->description, $lang);
162
163
	$event->userDetails = get_user_block($event->owner_guid, $lang);
164
	$eventObj = get_entity($event->guid);
165
	$event->startDate = date("Y-m-d H:i:s", $eventObj->start_date);
166
	$event->endDate = date("Y-m-d H:i:s", $eventObj->end_date);
167
	$event->organizer = $eventObj->contact;
168
	$event->phone = $eventObj->contact_phone;
169
	$event->email = $eventObj->contact_email;
170
	$event->fee = $eventObj->fees;
171
	$event->eventLang = $eventObj->language;
172
	$event->location = $eventObj->venue;
173
	if ($eventObj->group_guid){
174
		$group = get_entity($eventObj->group_guid);
175
		$event->group = gc_explode_translation($group->name, $lang);
176
		$event->groupGUID = $eventObj->group_guid;
177
	}
178
179
180
	return $event;
181
}
182
183
function get_events($user, $from, $to, $limit, $offset, $lang)
184
{
185
	$user_entity = is_numeric($user) ? get_user($user) : (strpos($user, '@') !== false ? get_user_by_email($user)[0] : get_user_by_username($user));
186
	if (!$user_entity) {
187
		return "User was not found. Please try a different GUID, username, or email address";
188
	}
189
	if (!$user_entity instanceof ElggUser) {
190
		return "Invalid user. Please try a different GUID, username, or email address";
191
	}
192
193
	if (!elgg_is_logged_in()) {
194
		login($user_entity);
195
	}
196
197
	$params = array(
198
		'type' => 'object',
199
		'subtype' => 'event_calendar',
200
		'limit' => $limit,
201
		'offset' => $offset,
202
		'order_by_metadata' => array(array('name' => 'start_date', 'direction' => 'DESC', 'as' => 'integer'))
203
	);
204
205 View Code Duplication
	if ($from) {
206
		$params['metadata_name_value_pairs'][] = array(
207
			'name' => 'start_date',
208
			'value' => strtotime($from),
209
			'operand' => '>='
210
		);
211
	}
212 View Code Duplication
	if ($to) {
213
		$params['metadata_name_value_pairs'][] = array(
214
			'name' => 'end_date',
215
			'value' => strtotime($to),
216
			'operand' => '<='
217
		);
218
	}
219
220
	$all_events = elgg_list_entities_from_metadata($params);
221
	$events = json_decode($all_events);
222
	$now = time();
223
	$one_day = 60*60*24;
224
225
	foreach ($events as $event) {
226
227
		$eventObj = get_entity($event->guid);
228
		if (($eventObj->start_date > $now-$one_day) || ($eventObj->end_date && ($eventObj->end_date > $now-$one_day))) {
229
			
230
			$options = array(
231
				'type' => 'user',
232
				'relationship' => 'personal_event',
233
				'relationship_guid' => $event->guid,
234
				'inverse_relationship' => true,
235
				'limit' => false,
236
				'count' => true,
237
			);
238
239
			$count = elgg_get_entities_from_relationship($options);
240
			if ($count == 1) {
241
				$event->in_calendar = elgg_echo('event_calendar:personal_event_calendars_link_one');
242
			} else {
243
				$event->in_calendar = elgg_echo('event_calendar:personal_event_calendars_link', array($count));
244
			}
245
246
			$likes = elgg_get_annotations(array(
247
				'guid' => $event->guid,
248
				'annotation_name' => 'likes'
249
			));
250
			$event->likes = count($likes);
251
252
			$liked = elgg_get_annotations(array(
253
				'guid' => $event->guid,
254
				'annotation_owner_guid' => $user_entity->guid,
255
				'annotation_name' => 'likes'
256
			));
257
			$event->liked = count($liked) > 0;
258
259
			$event->title = gc_explode_translation($event->title, $lang);
260
			$event->description = gc_explode_translation($event->description, $lang);
261
			$event->userDetails = get_user_block($event->owner_guid, $lang);
262
			$event->startDate = date("Y-m-d H:i:s", $eventObj->start_date);
263
			$event->endDate = date("Y-m-d H:i:s", $eventObj->end_date);
264
	
265
			$event->location = $eventObj->venue;
266
267
			if ($eventObj->group_guid){
268
				$group = get_entity($eventObj->group_guid);
269
				$event->group = gc_explode_translation($group->name, $lang);
270
				$event->groupGUID = $eventObj->group_guid;
271
			}
272
		}
273
	}
274
	return $events;
275
}
276
277
function get_events_by_owner($user, $from, $to, $limit, $lang)
278
{
279
	$user_entity = is_numeric($user) ? get_user($user) : (strpos($user, '@') !== false ? get_user_by_email($user)[0] : get_user_by_username($user));
280
	if (!$user_entity) {
281
		return "User was not found. Please try a different GUID, username, or email address";
282
	}
283
	if (!$user_entity instanceof ElggUser) {
284
		return "Invalid user. Please try a different GUID, username, or email address";
285
	}
286
287
	if (!elgg_is_logged_in()) {
288
		login($user_entity);
289
	}
290
291
	$params = array(
292
		'type' => 'object',
293
		'subtype' => 'event_calendar',
294
		'limit' => $limit,
295
		'offset' => $offset,
0 ignored issues
show
Bug introduced by
The variable $offset does not exist. Did you forget to declare it?

This check marks access to variables or properties that have not been declared yet. While PHP has no explicit notion of declaring a variable, accessing it before a value is assigned to it is most likely a bug.

Loading history...
296
		'order_by_metadata' => array(array('name' => 'start_date', 'direction' => 'DESC', 'as' => 'integer')),
297
		'filter' => 'mine',
298
		'relationship' => 'personal_event',
299
		'relationship_guid' => $user_entity->entity,
300
	);
301
302 View Code Duplication
	if ($from) {
303
		$params['metadata_name_value_pairs'][] = array(
304
			'name' => 'start_date',
305
			'value' => strtotime($from),
306
			'operand' => '>='
307
		);
308
	}
309 View Code Duplication
	if ($to) {
310
		$params['metadata_name_value_pairs'][] = array(
311
			'name' => 'end_date',
312
			'value' => strtotime($to),
313
			'operand' => '<='
314
		);
315
	}
316
317
	$all_events = elgg_list_entities_from_relationship($params);
318
319
	$events = json_decode($all_events);
320
	$now = time();
321
	$one_day = 60*60*24;
322 View Code Duplication
	foreach ($events as $event) {
323
324
		$eventObj = get_entity($event->guid);
325
		if (($eventObj->start_date > $now-$one_day) || ($eventObj->end_date && ($eventObj->end_date > $now-$one_day))) {
326
		
327
			$likes = elgg_get_annotations(array(
328
				'guid' => $event->guid,
329
				'annotation_name' => 'likes'
330
			));
331
			$event->likes = count($likes);
332
333
			$liked = elgg_get_annotations(array(
334
				'guid' => $event->guid,
335
				'annotation_owner_guid' => $user_entity->guid,
336
				'annotation_name' => 'likes'
337
			));
338
			$event->liked = count($liked) > 0;
339
340
			$event->title = gc_explode_translation($event->title, $lang);
341
			$event->description = gc_explode_translation($event->description, $lang);
342
343
			$event->userDetails = get_user_block($event->owner_guid, $lang);
344
345
			$eventObj = get_entity($event->guid);
346
			$event->startDate = date("Y-m-d H:i:s", $eventObj->start_date);
347
			$event->endDate = date("Y-m-d H:i:s", $eventObj->end_date);
348
			$event->location = $eventObj->venue;
349
350
			if ($eventObj->group_guid){
351
				$group = get_entity($eventObj->group_guid);
352
				$event->group = gc_explode_translation($group->name, $lang);
353
				$event->groupGUID = $eventObj->group_guid;
354
			}		
355
		}
356
	}
357
	return $events;
358
}
359
360
function get_events_by_colleagues($user, $from, $to, $limit, $lang)
361
{
362
	$user_entity = is_numeric($user) ? get_user($user) : (strpos($user, '@') !== false ? get_user_by_email($user)[0] : get_user_by_username($user));
363
	if (!$user_entity) {
364
		return "User was not found. Please try a different GUID, username, or email address";
365
	}
366
	if (!$user_entity instanceof ElggUser) {
367
		return "Invalid user. Please try a different GUID, username, or email address";
368
	}
369
370
	if (!elgg_is_logged_in()) {
371
		login($user_entity);
372
	}
373
	$friends = $user_entity->getFriends(array('limit' => false));
374
	
375
	if ($friends) {
376
		$friend_guids = array();
377
378
		foreach($friends as $friend) {
379
			$friend_guids[] = $friend->getGUID();
380
		}
381
		$friend_list = implode(",", $friend_guids);
382
		$db_prefix = elgg_get_config('dbprefix');
383
		$params = array(
384
			'type' => 'object',
385
			'subtype' => 'event_calendar',
386
			'limit' => $limit,
387
			'order_by_metadata' => array(array('name' => 'start_date', 'direction' => 'DESC', 'as' => 'integer')),
388
			'filter' => 'friends',
389
			'relationship' => 'personal_event',
390
			'relationship_guid' => $user_entity->entity,
391
			'joins' => array("JOIN {$db_prefix}entity_relationships r ON (r.guid_two = e.guid)"),
392
			'wheres' => array("r.relationship = 'personal_event'","r.guid_one IN ($friend_list)"),
393
		);
394
395 View Code Duplication
		if ($from) {
396
			$params['metadata_name_value_pairs'][] = array(
397
				'name' => 'start_date',
398
				'value' => strtotime($from),
399
				'operand' => '>='
400
			);
401
		}
402 View Code Duplication
		if ($to) {
403
			$params['metadata_name_value_pairs'][] = array(
404
				'name' => 'end_date',
405
				'value' => strtotime($to),
406
				'operand' => '<='
407
			);
408
		}
409
410
		$all_events = elgg_list_entities_from_metadata($params);
411
		$events = json_decode($all_events);
412
		$now = time();
413
		$one_day = 60*60*24;
414 View Code Duplication
		foreach ($events as $event) {
415
416
			$eventObj = get_entity($event->guid);
417
			if (($eventObj->start_date > $now-$one_day) || ($eventObj->end_date && ($eventObj->end_date > $now-$one_day))) {
418
			
419
				$likes = elgg_get_annotations(array(
420
					'guid' => $event->guid,
421
					'annotation_name' => 'likes'
422
				));
423
				$event->likes = count($likes);
424
425
				$liked = elgg_get_annotations(array(
426
					'guid' => $event->guid,
427
					'annotation_owner_guid' => $user_entity->guid,
428
					'annotation_name' => 'likes'
429
				));
430
				$event->liked = count($liked) > 0;
431
432
				$event->title = gc_explode_translation($event->title, $lang);
433
				$event->description = gc_explode_translation($event->description, $lang);
434
435
				$event->userDetails = get_user_block($event->owner_guid, $lang);
436
437
				$eventObj = get_entity($event->guid);
438
				$event->startDate = date("Y-m-d H:i:s", $eventObj->start_date);
439
				$event->endDate = date("Y-m-d H:i:s", $eventObj->end_date);
440
				$event->location = $eventObj->venue;
441
442
				if ($eventObj->group_guid){
443
					$group = get_entity($eventObj->group_guid);
444
					$event->group = gc_explode_translation($group->name, $lang);
445
					$event->groupGUID = $eventObj->group_guid;
446
				}
447
			}
448
		}
449
	}
450
	return $events;
0 ignored issues
show
Bug introduced by
The variable $events does not seem to be defined for all execution paths leading up to this point.

If you define a variable conditionally, it can happen that it is not defined for all execution paths.

Let’s take a look at an example:

function myFunction($a) {
    switch ($a) {
        case 'foo':
            $x = 1;
            break;

        case 'bar':
            $x = 2;
            break;
    }

    // $x is potentially undefined here.
    echo $x;
}

In the above example, the variable $x is defined if you pass “foo” or “bar” as argument for $a. However, since the switch statement has no default case statement, if you pass any other value, the variable $x would be undefined.

Available Fixes

  1. Check for existence of the variable explicitly:

    function myFunction($a) {
        switch ($a) {
            case 'foo':
                $x = 1;
                break;
    
            case 'bar':
                $x = 2;
                break;
        }
    
        if (isset($x)) { // Make sure it's always set.
            echo $x;
        }
    }
    
  2. Define a default value for the variable:

    function myFunction($a) {
        $x = ''; // Set a default which gets overridden for certain paths.
        switch ($a) {
            case 'foo':
                $x = 1;
                break;
    
            case 'bar':
                $x = 2;
                break;
        }
    
        echo $x;
    }
    
  3. Add a value for the missing path:

    function myFunction($a) {
        switch ($a) {
            case 'foo':
                $x = 1;
                break;
    
            case 'bar':
                $x = 2;
                break;
    
            // We add support for the missing case.
            default:
                $x = '';
                break;
        }
    
        echo $x;
    }
    
Loading history...
451
}
452
453
function event_add_calendar($user, $guid, $lang)
454
{
455
	$user_entity = is_numeric($user) ? get_user($user) : (strpos($user, '@') !== false ? get_user_by_email($user)[0] : get_user_by_username($user));
456
	if (!$user_entity) {
457
		return "User was not found. Please try a different GUID, username, or email address";
458
	}
459
	if (!$user_entity instanceof ElggUser) {
460
		return "Invalid user. Please try a different GUID, username, or email address";
461
	}
462
463
	if (!elgg_is_logged_in()) {
464
		login($user_entity);
465
	}
466
467
	elgg_load_library('elgg:event_calendar');
468
469
	$event_guid = $guid;
470
	$event = get_entity($event_guid);
471
	if (elgg_instanceof($event, 'object', 'event_calendar')) {
472
473
		if (!event_calendar_has_personal_event($event_guid,$user_entity->guid)) {
474
			if (event_calendar_add_personal_event($event_guid,$user_entity->guid)) {
475
				return(elgg_echo('event_calendar:add_to_my_calendar_response'));
476
			} else {
477
				return(elgg_echo('event_calendar:add_to_my_calendar_error'));
478
			}
479
		}else{
480
			return elgg_echo('event_calendar:already_in');
481
482
		}
483
	}
484
}
485
486
function get_see_calendar($user, $guid, $lang)
487
{
488
	$user_entity = is_numeric($user) ? get_user($user) : (strpos($user, '@') !== false ? get_user_by_email($user)[0] : get_user_by_username($user));
489
	if (!$user_entity) {
490
		return "User was not found. Please try a different GUID, username, or email address";
491
	}
492
	if (!$user_entity instanceof ElggUser) {
493
		return "Invalid user. Please try a different GUID, username, or email address";
494
	}
495
496
	if (!elgg_is_logged_in()) {
497
		login($user_entity);
498
	}
499
500
	elgg_load_library('elgg:event_calendar');
501
502
	$limit = 12;
503
	$offset = get_input('offset', 0);
504
	$users = event_calendar_get_users_for_event($guid, $limit, $offset, false);
505
506
	$data = array();
507
	foreach ($users as $user) {
508
		$user_obj = get_user($user->guid);
509
		$user_data = get_user_block($user->guid, $lang);
510
		$data[] = $user_data;
511
	}
512
513
	return $data;
514
515
}
516
517
518
function save_event($user, $title, $excerpt, $body, $container_guid, $event_guid, $comments, $access, $status, $lang)
519
{
520
 $user_entity = is_numeric($user) ? get_user($user) : (strpos($user, '@') !== false ? get_user_by_email($user)[0] : get_user_by_username($user));
521
	 if (!$user_entity) {
522
		 return "User was not found. Please try a different GUID, username, or email address";
523
	 }
524
	 if (!$user_entity instanceof ElggUser) {
525
		 return "Invalid user. Please try a different GUID, username, or email address";
526
	 }
527
	 if (!elgg_is_logged_in()) {
528
		 login($user_entity);
529
	 }
530
	 $error = FALSE;
531
	 //check required fields being not empty
532
	 $titles = json_decode($title);
533
	 $bodies = json_decode($body);
534
	 $excerpts = json_decode($excerpt);
535
	 //Check Required
536
	 if (!$titles->en && !$titles->fr) { return elgg_echo("blog:error:missing:title"); }
537
	 if (!$bodies->en && !$bodies->fr) { return elgg_echo("blog:error:missing:description");  }
538
	 if (!($titles->en && $bodies->en) && !($titles->fr && $bodies->fr)) { return "require-same-lang"; }
539
	 //Default any Missing or faulty
540
	 if (!$titles->en) { $titles->en = ''; }
541
	 if (!$titles->fr) { $titles->fr = ''; }
542
	 if (!$bodies->en) { $bodies->en = ''; }
543
	 if (!$bodies->fr) { $bodies->fr = ''; }
544
	 if (!$excerpts->en) { $excerpts->en = ''; }
545
	 if (!$excerpts->fr) { $excerpts->fr = ''; }
546
	 if ($comments != 0 && $comments != 1) { $comments = 1; }
547 View Code Duplication
	 if ($access != 0 && $access != 1 && $access != -2 && $access !=2 ) { $access = 1; }
548
	 if ($status != 0 && $status != 1) { $status = 0; }
549
550
	 // if there is a container_guid, .: group, and access is set to group only, set access to proper group only
551 View Code Duplication
	 if (!empty($container_guid) && $access == 2){
552
		 $container = get_entity($container_guid);
553
		 //validate container and ability to write to it
554
		 if (!$container || !$container->canWriteToContainer(0, 'object', 'blog')) {
555
 			return elgg_echo('blog:error:cannot_write_to_container');
556
 		} else {
557
			$access = $container->group_acl;
558
		}
559
		 //If no group container, use user guid.
560
	 } else if ($container_guid=='') { $container_guid = $user_entity->guid; }
561
562
	 //Set int variables to correct
563
	 if ($status == 1) { $status = 'published'; } else { $status = 'draft'; }
564
	 if ($comments == 1) { $comments = 'On'; } else { $comments = 'Off'; }
565
	 if ($status == 'draft') { $access = 0; }
566
	 $titles->en = htmlspecialchars($titles->en, ENT_QUOTES, 'UTF-8');
567
	 $titles->fr = htmlspecialchars($titles->fr, ENT_QUOTES, 'UTF-8');
568
	 $excerpts->en = elgg_get_excerpt($excerpts->en);
569
	 $excerpts->fr = elgg_get_excerpt($excerpts->fr);
570
571
	 $values = array(
572
		 'title' => JSON_encode($titles),
573
		 'title2' => '',
574
		 'description' => JSON_encode($bodies),
575
		 'description2' => '',
576
		 'status' => $status,
577
		 'access_id' => $access,
578
		 'comments_on' => $comments,
579
		 'excerpt' => JSON_encode($excerpts),
580
		 'excerpt2' => '',
581
		 'tags' => '',
582
		 'publication_date' => '',
583
		 'expiration_date' => '',
584
		 'show_owner' => 'no'
585
	 );
586
587
	 $event = new stdClass();
588
	 $revision_text = '';
589 View Code Duplication
	 if ($event_guid){
590
		 $entity = get_entity($event_guid);
591
		 if (elgg_instanceof($entity, 'object', 'event') && $entity->canEdit()) {
592
			 	$event = $entity;
593
		 } else {
594
			 return elgg_echo('blog:error:post_not_found');
595
		 }
596
		 $revision_text = $event->description;
597
		 $new_post = $event->new_post; //what?
598
	 } else {
599
		 //Create blog
600
		 $event = new ElggEvent();
601
		 $event->subtype = 'event';
602
		 $event->container_guid = $container_guid;
603
		 $new_post = TRUE;
604
	 }
605
606
	 $old_status = $event->status;
607
608
	 // assign values to the entity, stopping on error.
609 View Code Duplication
	 if (!$error) {
610
		 foreach ($values as $name => $value) {
611
			 if (($name != 'title2') && ($name != 'description2') &&  ($name != 'excerpt2')){ // remove input 2 in metastring table
612
			 $event->$name = $value;
613
			 }
614
		 }
615
	 }
616
617
	 if (!$error){
618 View Code Duplication
		 if ($event->save()){
619
620
			if (!$event_guid && $event->web_conference) {
621
				if (!event_calendar_create_bbb_conf($event)) {
622
					register_error(elgg_echo('event_calendar:conference_create_error'));
623
				}
624
			}
625
			if ($group_guid && (elgg_get_plugin_setting('autogroup', 'event_calendar') == 'yes')) {
626
				event_calendar_add_personal_events_from_group($event->guid, $group_guid);
0 ignored issues
show
Bug introduced by
The variable $group_guid does not exist. Did you forget to declare it?

This check marks access to variables or properties that have not been declared yet. While PHP has no explicit notion of declaring a variable, accessing it before a value is assigned to it is most likely a bug.

Loading history...
627
			}
628
		}
629
		return $event;
630
631
	} else {
632
		return elgg_echo('blog:error:cannot_save');
633
	}
634
}
635