Пример #1
0
 public function savePictureFile($fileID, $albumID, $album, $extra = array())
 {
     // Basic picture data
     $picture = array('file_id' => $fileID, 'album_id' => $albumID, 'user_id' => session::item('user_id'), 'post_date' => date_helper::now(), 'active' => session::permission('pictures_approve', 'pictures') ? 1 : 9, 'order_id' => $album['total_pictures'] + $album['total_pictures_i'] + 1);
     // Do we have extras?
     if ($extra) {
         // Merge extras
         $picture = array_merge($picture, $extra);
     }
     // Save picture
     $pictureID = $this->db->insert('pictures_data', $picture);
     // Do we have picture ID?
     if ($pictureID) {
         // Update album's counter
         $column = $picture['active'] == 1 ? 'total_pictures' : 'total_pictures_i';
         $this->db->query("UPDATE `:prefix:pictures_albums_data` SET `{$column}`=`{$column}`+1 WHERE `user_id`=? AND `album_id`=? LIMIT 1", array(session::item('user_id'), $albumID));
         $this->db->query("UPDATE `:prefix:users` SET `{$column}`=`{$column}`+1 WHERE `user_id`=? LIMIT 1", array(session::item('user_id')));
         // Does album have a cover?
         if (!$album['picture_id']) {
             // Update album cover
             $this->pictures_albums_model->updateCover($albumID, $pictureID);
         }
         // Did we have any activity in the past hour?
         if (session::item('timeline_picture_post', 'config') === false || session::item('timeline_picture_post', 'config')) {
             if ($action = timeline_helper::get('picture_post', session::item('user_id'), $albumID, 12)) {
                 $counter = isset($action['params']['count']) ? $action['params']['count'] + 1 : 1;
                 // Update activity
                 timeline_helper::update($action['action_id'], 'picture_post', session::item('user_id'), $albumID, $picture['active'], false, array('count' => $counter), $action['attachments'] < 5 ? $fileID : false);
             } else {
                 // Save activity
                 timeline_helper::save('picture_post', session::item('user_id'), $albumID, $picture['active'], $album['privacy'], array('count' => 1), $fileID);
             }
         }
         // Action hook
         hook::action('pictures/insert', $pictureID, $picture);
     }
     return $pictureID;
 }