private function get_notes($image_id) { $image = new Model_Image($image_id); $notes = array(); if ($image->loaded()) { $notes = $this->parse_db_data($image->notes->find_all()); } return $notes; }
/** * Prepare venue for data array. * * @param Model_Venue $venue * @param array $fields * @return array */ protected function _prepare_venue(Model_Venue $venue, array $fields = null) { $data = array(); if (!$fields) { $fields = self::$_fields; } foreach ($fields as $field) { switch ($field) { // Raw value case 'id': case 'name': case 'description': case 'hours': case 'address': case 'zip': case 'info': case 'latitude': case 'longitude': case 'created': case 'modified': case 'foursquare_id': case 'foursquare_category_id': $data[$field] = $venue->{$field}; break; // Custom value // Custom value case 'city': $data[$field] = $venue->city_name; break; case 'default_image': $image = new Model_Image($venue->default_image_id); $data[$field] = $image->loaded() ? $image->get_url() : ''; break; case 'homepage': $data[$field] = $venue->url; break; case 'url': $data[$field] = URL::site(Route::model($venue), true); break; } } return $data; }
/** * Action: add note */ public function action_note() { $this->history = false; /** @var Model_Gallery $gallery */ $gallery_id = (int) $this->request->param('gallery_id'); $gallery = new Model_Gallery($gallery_id); if (!$gallery->loaded()) { throw new Model_Exception($gallery, $gallery_id); } /** @var Model_Image $image */ $image_id = $this->request->param('id'); $image = new Model_Image($image_id); if (!$image->loaded()) { throw new Model_Exception($image, $image_id); } // Permission check Permission::required($image, Model_Image::PERMISSION_NOTE, self::$user); // Create note if (isset($_POST['name']) && trim($_POST['name'] != '')) { // Get note user $username = trim($_POST['name']); $user = Model_User::find_user($username); if (!$user && ($user_id = Arr::get($_POST, 'user_id'))) { $user = Model_User::find_user($user_id); } try { $position = Arr::intersect($_POST, array('x', 'y', 'width', 'height'), true); $image->add_note(self::$user->id, count($position) == 4 ? $position : null, $user ? $user : $username); // Newsfeed if ($user) { NewsfeedItem_Galleries::note(self::$user, $gallery, $image, $user); } } catch (Validation_Exception $e) { } } // Redirect back to image // @todo: ajaxify for more graceful approach $this->request->redirect(Route::get('gallery_image')->uri(array('gallery_id' => Route::model_id($gallery), 'id' => $image->id, 'action' => ''))); }
/** * Prepare user for data array * * @param Model_User $user * @param array $fields * @return array */ protected function _prepare_user(Model_User $user, array $fields = null) { $data = array(); empty($fields) and $fields = self::$_fields; foreach ($fields as $field) { switch ($field) { // Raw value case 'id': case 'username': case 'homepage': case 'gender': case 'description': case 'logins': case 'posts': case 'adds': case 'signature': case 'title': case 'dob': case 'latitude': case 'longitude': case 'created': case 'modified': case 'last_login': $data[$field] = $user->{$field}; break; // Custom value // Custom value case 'city': $data[$field] = ($city = $user->city()) ? $city->name : $user->city_name; break; case 'avatar': $data[$field] = $user->avatar ? URL::site($user->avatar, true) : URL::site('avatar/unknown.png'); break; case 'picture': if ($user->default_image_id) { $image = new Model_Image($user->default_image_id); $data[$field] = $image->loaded() ? $image->get_url() : ''; } else { if (Valid::url($user->picture)) { $data[$field] = URL::site($user->picture, true); } else { $data[$field] = null; } } break; case 'url': $data[$field] = URL::site(URL::user($user), true); break; } } return $data; }
/** * 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; }