/** * Prepare event for data array * * @param Model_Event $event * @param array $fields * @return array */ protected function _prepare_event(Model_Event $event, array $fields = null) { $data = array(); empty($fields) and $fields = self::$_fields; foreach ($fields as $field) { switch ($field) { // Raw value case 'id': case 'name': case 'homepage': case 'stamp_begin': case 'stamp_end': case 'dj': case 'info': case 'age': case 'price': case 'price2': case 'created': case 'modified': case 'favorite_count': $data[$field] = $event->{$field}; break; // Custom value // Custom value case 'venue': $data[$field] = ($venue = $event->venue()) ? $venue->name : $event->venue_name; break; case 'city': $data[$field] = ($city = $event->city()) ? $city->name : $event->city_name; break; case 'country': $data[$field] = ($country = $event->country()) ? $country->name : ''; break; case 'flyer_front': case 'flyer_back': case 'flyer_front_icon': case 'flyer_back_icon': case 'flyer_front_thumb': case 'flyer_back_thumb': if (strpos($field, 'icon')) { $column = str_replace('_icon', '', $field) . '_image_id'; $size = Model_Image::SIZE_ICON; } else { if (strpos($field, '_thumb')) { $column = str_replace('_thumb', '', $field) . '_image_id'; $size = Model_Image::SIZE_THUMBNAIL; } else { $column = $field . '_image_id'; $size = null; } } $image = new Model_Image($event->{$column}); $data[$field] = $image->loaded() ? $image->get_url($size) : null; break; case 'music': if ($tags = $event->tags()) { $music = implode(', ', $tags); } else { if (!empty($event->music)) { $music = $event->music; } else { $music = null; } } $data[$field] = $music; break; case 'url': $data[$field] = URL::site(Route::model($event), true); break; } } return $data; }