public static function fromArray($input) { $event = null; if (array_key_exists('id', $input)) { try { // get event by id $event = new Event($input['id']); } catch (fExpectedException $e) { } } if ($event == null) { $event = new Event(); $event->generateSecret(); $event->setHidden(1); } // These are marked as required $event->setTitle(get($input['title'], 'Title missing')); $event->setLocname(get($input['venue'], 'Venue missing')); $event->setAddress(get($input['address'], 'Address missing')); $event->setName(get($input['organizer'], 'Organizer missing')); $event->setEmail(get($input['email'], 'Email missing')); // These are optional $event->setHideemail(get($input['hideemail'], 0)); $event->setPhone(get($input['phone'], '')); $event->setHidephone(get($input['hidephone'], 0)); $event->setContact(get($input['contact'], '')); $event->setHidecontact(get($input['hidecontact'], 0)); $event->setDescr(get($input['details'], '')); $event->setEventtime(get($input['time'], '')); $event->setHighlight(0); $event->setTimedetails(get($input['timedetails'], '')); $event->setLocdetails(get($input['locdetails'], '')); $event->setEventduration(get($input['eventduration'], 0)); $event->setWeburl(get($input['weburl'], '')); $event->setWebname(get($input['webname'], '')); $event->setAudience(get($input['audience'], '')); $event->setTinytitle(get($input['tinytitle'], '')); $event->setPrintdescr(get($input['printdescr'], '')); $event->setDates(get($input['datestring'], '')); // string field 'dates' needed for legacy admin calendar $event->setDatestype(get($input['datestype'], 'O')); $event->setArea(get($input['area'], 'P')); // default to 'P'ortland //$event->setPrintcontact(get($input['printcontact'], '')); // Length return $event; }