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; }