示例#1
0
 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;
 }
示例#2
0
文件: api.php 项目: anqh/anqh
 /**
  * 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;
 }
示例#3
0
 /**
  * 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' => '')));
 }
示例#4
0
文件: api.php 项目: anqh/core
 /**
  * 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;
 }
示例#5
0
文件: api.php 项目: anqh/events
 /**
  * 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;
 }