Esempio n. 1
0
 public function deleteImage($image_id)
 {
     $db = JO_Db::getDefaultAdapter();
     $query = $db->select()->from('gallery_images', array('image'))->where('image_id = ?', (int) $image_id);
     $result = $db->fetchOne($query);
     if (!$result) {
         return 'error';
     } else {
         $mi = new Helper_Images();
         $mi->deleteImages($result);
         $db->delete('gallery_images', array('image_id = ?' => (int) $image_id));
         return 'ok';
     }
 }
Esempio n. 2
0
 public static function createPage($data)
 {
     $db = JO_Db::getDefaultAdapter();
     $db->insert('pages', array('date_added' => new JO_Db_Expr('NOW()'), 'date_modified' => new JO_Db_Expr('NOW()'), 'parent_id' => (int) (isset($data['parent_id']) ? $data['parent_id'] : 0), 'status' => (int) $data['status'], 'in_footer' => (int) $data['in_footer'], 'title' => $data['title'], 'description' => $data['description'], 'meta_title' => $data['meta_title'], 'meta_description' => $data['meta_description'], 'meta_keywords' => $data['meta_keywords']));
     $page_id = $db->lastInsertId();
     if (isset($data['keyword']) && $data['keyword']) {
         self::generatePage($page_id, $data['keyword']);
     } else {
         self::generatePage($page_id);
     }
     $temporary_images = JO_Session::get('temporary_images');
     if ($temporary_images && is_array($temporary_images)) {
         $page_info = self::getPage($page_id);
         if ($page_info) {
             $gallery_path = '/gallery/' . date("Y/m/", strtotime($page_info['date_added']));
             $upload_folder = realpath(BASE_PATH . '/uploads');
             $upload_folder .= $gallery_path;
             foreach ($temporary_images as $image) {
                 $image_name = basename($image['image']);
                 if (!file_exists($upload_folder) || !is_dir($upload_folder)) {
                     mkdir($upload_folder, 0777, true);
                 }
                 if (copy(BASE_PATH . '/uploads/' . $image['image'], $upload_folder . $image_name)) {
                     $image_id = Model_Gallery::createImage(array('gallery_id' => $page_id, 'controller' => 'pages', 'image' => $gallery_path . $image_name));
                     if ($image_id && isset($image['title'])) {
                         Model_Gallery::updateImageInfo($image_id, $image['title']);
                     }
                 }
                 $mi = new Helper_Images();
                 $mi->deleteImages($image['image']);
             }
         }
         JO_Session::clear('temporary_images');
     }
     return $page_id;
 }
Esempio n. 3
0
 public static function uploadUserAvatar($image, $user_id = 0)
 {
     if (($imageinfo = getimagesize($image)) !== false) {
         self::init();
         if (self::$error) {
             return false;
         }
         $added_date = time();
         $username = md5($user_id);
         $user_info = new Model_Users_User($user_id);
         if ($user_info->count()) {
             $added_date = $user_info['date_added'];
             $username = $user_info['username'];
         }
         $ext = strtolower(strrchr($image, "."));
         if (!$ext) {
             $mime_ext = explode('/', $imageinfo['mime']);
             if (isset($mime_ext[1])) {
                 $ext = '.' . $mime_ext[1];
             }
         }
         $name = $username . '_' . $user_id . $ext;
         $image_path = 'avatars/' . WM_Date::format($added_date, 'yy/mm/');
         if (!file_exists(BASE_PATH . '/uploads/cache_avatars/' . $image_path) || !is_dir(BASE_PATH . '/uploads/cache_avatars/' . $image_path)) {
             @mkdir(BASE_PATH . '/uploads/cache_avatars/' . $image_path, 0777, true);
         }
         $user_agent = ini_get('user_agent');
         ini_set('user_agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.9) Gecko/20071025 Firefox/2.0.0.9');
         if (!@copy($image, BASE_PATH . '/uploads/cache_avatars/' . $image_path . $name)) {
             self::$error = self::translate('Unable to upload to the local server!');
             return false;
         }
         ini_set('user_agent', $user_agent);
         $max_width = 0;
         $sizes = self::userThumbSizes();
         $pin_sizes = array();
         if ($sizes) {
             $model_images = new Helper_Images();
             foreach ($sizes as $size => $prefix) {
                 $sizes = explode('x', $size);
                 $pin_sizes[] = array((int) isset($sizes[0]) ? $sizes[0] : 0, (int) isset($sizes[1]) ? $sizes[1] : 0, basename($name, $ext) . $prefix . $ext);
                 $max_width = max($max_width, (int) isset($sizes[0]) ? $sizes[0] : 0);
             }
             if ($max_width) {
                 $thumb_a = $model_images->resizeWidth('/cache_avatars/' . $image_path . $name, $max_width);
                 $thumb_a1 = explode('/uploads/', $thumb_a);
                 if ($thumb_a1 && isset($thumb_a1[1]) && $thumb_a1[1]) {
                     $container = Helper_Config::get('rackspace_users_contaners');
                     try {
                         $images = self::$connect->get_container($container);
                         //$images->make_public(86400*365);
                         //$images = self::$connect->get_container($container);
                         //if(!$images->cdn_uri) {
                         //	self::$error = self::translate("Authentication response did not indicate CDN availability");
                         //	return false;
                         //}
                         $object = $images->create_object($name);
                         $object->load_from_filename(BASE_PATH . '/uploads/' . $thumb_a1[1]);
                         $image_info = $images->get_object($name);
                         if (!$image_info->name) {
                             self::$error = self::translate('Unable to upload to the server!');
                             return false;
                         }
                         foreach ($pin_sizes as $s) {
                             $thumb_b = '';
                             if ($s[0] && $s[1]) {
                                 $thumb_b = $model_images->resize('/' . $thumb_a1[1], $s[0], $s[1], true);
                             } else {
                                 if ($s[0] && !$s[1]) {
                                     $thumb_b = $model_images->resizeWidth('/' . $thumb_a1[1], $s[0]);
                                 } else {
                                     if (!$s[0] && $s[1]) {
                                         $thumb_b = $model_images->resizeHeight('/' . $thumb_a1[1], $s[1]);
                                     }
                                 }
                             }
                             $thumb_b1 = explode('/uploads/', $thumb_b);
                             if ($thumb_b1 && isset($thumb_b1[1]) && $thumb_b1[1]) {
                                 $object = $images->create_object($s[2]);
                                 $object->load_from_filename(BASE_PATH . '/uploads/' . $thumb_b1[1]);
                                 $image_info1 = $images->get_object($s[2]);
                                 if (!$image_info1->name) {
                                     self::$error = self::translate('Unable to upload to the server!');
                                     return false;
                                 }
                             } else {
                                 self::$error = self::translate('Unable to upload to the local server!');
                                 return false;
                             }
                         }
                         return array('store' => 'Model_Upload_Rackspace', 'image' => trim(Helper_Config::get('rackspace_users_contaners_cdn'), '/') . '/' . $image_info->name, 'width' => 0, 'height' => 0);
                     } catch (JO_Exception $e) {
                         self::$error = $e->getMessage();
                         return false;
                     }
                     $model_images->deleteImages('/' . $thumb_a1[1]);
                     $model_images->deleteImages('/cache_avatars/' . $image_path . $name);
                     return array('store' => 'Model_Upload_Amazons3', 'image' => $image_path . $name, 'width' => 0, 'height' => 0);
                 } else {
                     self::$error = self::translate('Unable to upload to the local server!');
                     return false;
                 }
             } else {
                 self::$error = self::translate('Missing images sizes!');
                 return false;
             }
         } else {
             self::$error = self::translate('Missing images sizes!');
             return false;
         }
     } else {
         self::$error = self::translate('Image format is not valid!');
         return false;
     }
     self::$error = self::translate('Unknown server error!');
     return false;
 }
Esempio n. 4
0
 public function deleteAction()
 {
     $request = $this->getRequest();
     $collectionID = $request->getRequest('delete');
     if (!$collectionID || !is_numeric($collectionID)) {
         return $this->forward('error', 'error404');
     }
     $image = new Helper_Images();
     $referer = $request->getServer('HTTP_REFERER');
     if ($collectionID) {
         $collection = Model_Collections::get($collectionID);
         if (!$collection) {
             return $this->forward('error', 'error404');
         }
         if (JO_Session::get('user_id') == $collection['user_id']) {
             $itemID = $request->getParam('item');
             if ($itemID) {
                 Model_Collections::deleteBookmark($collectionID, $itemID);
                 JO_Session::set('msg_success', 'You have successfully delete this item!');
             } else {
                 Model_Collections::deleteCollection($collectionID);
                 $image->deleteImages($collection['photo']);
                 JO_Session::set('msg_success', 'You have successfully delete this collection!');
                 if (stripos($referer, 'view_collection') !== false) {
                     $referer = WM_Router::create($request->getBaseUrl() . '?controller=users&action=collections&username='******'username')) . '/public/' . ($collection['public'] == 'true' ? 1 : 0));
                 }
             }
         }
     }
     $this->redirect($referer);
 }
Esempio n. 5
0
 public function deleteAction()
 {
     $json = array();
     $pathp = $this->getRequest()->getPost('path');
     if ($pathp !== null) {
         $path = rtrim($this->upload_folder . str_replace('../', '', $pathp), '/');
         if (!file_exists($path)) {
             $json['error'] = $this->translate('Path not found');
         }
         if (rtrim($path, '/') == rtrim($this->upload_folder, '/')) {
             $json['error'] = $this->translate('You can not delete the base path');
         }
     } else {
         $json['error'] = $this->translate('No path is selected');
     }
     if (!isset($json['error'])) {
         if (is_file($path)) {
             $images = new Helper_Images();
             $images->deleteImages($pathp);
         } elseif (is_dir($path)) {
             $this->recursiveDelete($path);
             $cache_folder = $this->upload_folder . DS . 'cache' . $pathp;
             $this->recursiveDelete($cache_folder);
         }
         $json['success'] = $this->translate('Deletion is successful');
     }
     $response = $this->getResponse();
     $response->addHeader('Cache-Control: no-cache, must-revalidate');
     $response->addHeader('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
     $response->addHeader('Content-type: application/json');
     $this->setInvokeArg('noViewRenderer', true);
     echo JO_Json::encode($json);
 }
Esempio n. 6
0
 public static function deleteUserImage($user_info)
 {
     $model_image = new Helper_Images();
     $model_image->deleteImages($user_info['avatar'], true);
 }
Esempio n. 7
0
 public static function deleteUser($user_id)
 {
     $db = JO_Db::getDefaultAdapter();
     $user_info = self::getUser($user_id);
     if (!$user_info) {
         return;
     }
     if ($user_info['store'] == 's3') {
         self::deleteImagesAmazon($user_info['avatar']);
     } else {
         if ($user_info['avatar']) {
             $model_image = new Helper_Images();
             $model_image->deleteImages($user_info['avatar']);
         }
     }
     $query = $db->select()->from('boards')->where('user_id = ?', (string) $user_id);
     $rows = $db->fetchAll($query);
     if ($rows) {
         foreach ($rows as $row) {
             Model_Boards::delete($row['board_id']);
         }
     }
     $db->query("DELETE FROM url_alias WHERE query = 'user_id=" . (string) $user_id . "'");
     $db->delete('users_boards', array('user_id = ?' => (string) $user_id));
     $db->delete('shared_content', array('user_id = ?' => (string) $user_id));
     $db->delete('users_following', array('user_id = ?' => (string) $user_id));
     $db->delete('users_following', array('following_id = ?' => (string) $user_id));
     $db->delete('users_following_ignore', array('user_id = ?' => (string) $user_id));
     $db->delete('users_following_ignore', array('following_id = ?' => (string) $user_id));
     $db->delete('users_following_user', array('user_id = ?' => (string) $user_id));
     $db->delete('users_following_user', array('following_id = ?' => (string) $user_id));
     $db->delete('users_history', array('from_user_id = ?' => (string) $user_id));
     $db->delete('users_history', array('to_user_id = ?' => (string) $user_id));
     $db->delete('users_agenda', array('user_id = ?' => (string) $user_id));
     $db->delete('users_activate', array('user_id = ?' => (string) $user_id));
     $db->delete('users_location', array('user_id = ?' => (string) $user_id));
     $db->delete('users_sports', array('user_id = ?' => (string) $user_id));
     $db->delete('users_messages', array('from_user_id = ?' => (string) $user_id));
     $db->delete('users_messages', array('to_user_id = ?' => (string) $user_id));
     $db->delete('users_mails', array('from_user_id = ?' => (string) $user_id));
     $db->delete('users_mails_to', array('user_id = ?' => (string) $user_id));
     $db->delete('users_likes', array('user_id = ?' => (string) $user_id));
     $db->delete('users', array('user_id = ?' => (string) $user_id));
 }
Esempio n. 8
0
 public static function delete($pin_id)
 {
     $db = JO_Db::getDefaultAdapter();
     $pin_info = self::getPin($pin_id);
     if (!$pin_info) {
         return false;
     }
     if ($pin_info['store'] == 's3') {
         self::deleteImagesAmazon($pin_info['image']);
     } else {
         $model_image = new Helper_Images();
         $model_image->deleteImages($pin_info['image']);
     }
     $comments = Model_Comments::getComments(array('filter_pin_id' => $pin_id));
     if ($comments) {
         foreach ($comments as $comment) {
             $db->delete('pins_comments', array('comment_id = ?' => $comment['comment_id']));
             $db->delete('pins_reports_comments', array('comment_id = ?' => $comment['comment_id']));
         }
     }
     $del = $db->delete('pins', array('pin_id = ?' => $pin_id));
     if (!$del) {
         return false;
     } else {
         $latest_pins = array();
         $pins_query = $db->select()->from('pins', array('pin_id', 'pin_id'))->where('user_id = ?', $pin_info['user_id'])->order('pin_id DESC')->limit(15);
         $latest = $db->fetchPairs($pins_query);
         if ($latest) {
             $latest_pins = $latest;
         }
         $update = array('pins' => new JO_Db_Expr('pins-1'), 'latest_pins' => implode(',', $latest_pins));
         $update['likes'] = new JO_Db_Expr('likes-' . (int) $db->fetchOne($db->select()->from('pins_likes', 'COUNT(like_id)')->where('pin_id = ?', $pin_id)));
         $db->update('users', $update, array('user_id=?' => $pin_info['user_id']));
         $latest_pins = array();
         $pins_query = $db->select()->from('pins', array('pin_id', 'pin_id'))->where('board_id = ?', $pin_info['board_id'])->order('pin_id DESC')->limit(15);
         $latest = $db->fetchPairs($pins_query);
         if ($latest) {
             $latest_pins = $latest;
         }
         $update = array('pins' => new JO_Db_Expr('pins-1'), 'latest_pins' => implode(',', $latest_pins));
         $update['latest_pins'] = implode(',', $latest_pins);
         $db->update('boards', $update, array('board_id=?' => $pin_info['board_id']));
         $db->delete('pins_invert', array('pin_id = ?' => $pin_id));
         $db->delete('pins_likes', array('pin_id = ?' => $pin_id));
         $db->delete('pins_reports', array('pin_id = ?' => $pin_id));
         $db->delete('pins_views', array('pin_id = ?' => $pin_id));
         $db->delete('users_history', array('pin_id = ?' => $pin_id));
         self::deleteCache($pin_info);
         return true;
     }
 }
Esempio n. 9
0
 public function deleteImageAction()
 {
     if (!WM_Users::allow('delete', $this->getRequest()->getController())) {
         $this->forward('error', 'noPermission');
     }
     $gallery_id = (int) $this->getRequest()->getRequest('id');
     $this->setInvokeArg('noViewRenderer', true);
     $image_id = $this->getRequest()->getPost('id');
     if ($gallery_id) {
         echo Model_Gallery::deleteImage($image_id);
     } else {
         $temporary_images = JO_Session::get('temporary_images');
         $temp = array();
         foreach ($temporary_images as $key => $image) {
             if ($key != $image_id) {
                 $temp[] = $image;
             } else {
                 $mi = new Helper_Images();
                 $mi->deleteImages($image['image']);
             }
         }
         echo 'ok';
         JO_Session::set('temporary_images', $temp);
     }
 }
Esempio n. 10
0
 public static function uploadUserAvatar($image, $user_id = 0)
 {
     if (($imageinfo = getimagesize($image)) !== false) {
         self::init();
         if (self::$error) {
             return false;
         }
         $added_date = time();
         $username = md5($user_id);
         $user_info = new Model_Users_User($user_id);
         if ($user_info->count()) {
             $added_date = $user_info['date_added'];
             $username = $user_info['username'];
         }
         $ext = strtolower(strrchr($image, "."));
         if (!$ext) {
             $mime_ext = explode('/', $imageinfo['mime']);
             if (isset($mime_ext[1])) {
                 $ext = '.' . $mime_ext[1];
             }
         }
         $name = $username . '_' . $user_id . $ext;
         $image_path = 'avatars/' . WM_Date::format($added_date, 'yy/mm/');
         if (!file_exists(BASE_PATH . '/uploads/cache_avatars/' . $image_path) || !is_dir(BASE_PATH . '/uploads/cache_avatars/' . $image_path)) {
             @mkdir(BASE_PATH . '/uploads/cache_avatars/' . $image_path, 0777, true);
         }
         $user_agent = ini_get('user_agent');
         ini_set('user_agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.9) Gecko/20071025 Firefox/2.0.0.9');
         if (!@copy($image, BASE_PATH . '/uploads/cache_avatars/' . $image_path . $name)) {
             self::$error = self::translate('Unable to upload to the local server!');
             return false;
         }
         ini_set('user_agent', $user_agent);
         $max_width = 0;
         $sizes = self::userThumbSizes();
         $pin_sizes = array();
         if ($sizes) {
             $model_images = new Helper_Images();
             foreach ($sizes as $size => $prefix) {
                 $sizes = explode('x', $size);
                 $pin_sizes[] = array((int) isset($sizes[0]) ? $sizes[0] : 0, (int) isset($sizes[1]) ? $sizes[1] : 0, basename($name, $ext) . $prefix . $ext);
                 $max_width = max($max_width, (int) isset($sizes[0]) ? $sizes[0] : 0);
             }
             if ($max_width) {
                 $thumb_a = $model_images->resizeWidth('/cache_avatars/' . $image_path . $name, $max_width);
                 $thumb_a1 = explode('/uploads/', $thumb_a);
                 if ($thumb_a1 && isset($thumb_a1[1]) && $thumb_a1[1]) {
                     self::upload(BASE_PATH . '/uploads/' . $thumb_a1[1], $image_path . $name);
                     if (self::$error) {
                         return false;
                     }
                     foreach ($pin_sizes as $s) {
                         if (self::$error) {
                             return false;
                         }
                         $thumb_b = '';
                         if ($s[0] && $s[1]) {
                             $thumb_b = $model_images->resize('/' . $thumb_a1[1], $s[0], $s[1], true);
                         } else {
                             if ($s[0] && !$s[1]) {
                                 $thumb_b = $model_images->resizeWidth('/' . $thumb_a1[1], $s[0]);
                             } else {
                                 if (!$s[0] && $s[1]) {
                                     $thumb_b = $model_images->resizeHeight('/' . $thumb_a1[1], $s[1]);
                                 }
                             }
                         }
                         $thumb_b1 = explode('/uploads/', $thumb_b);
                         if ($thumb_b1 && isset($thumb_b1[1]) && $thumb_b1[1]) {
                             self::upload(BASE_PATH . '/uploads/' . $thumb_b1[1], $image_path . $s[2]);
                             if (self::$error) {
                                 return false;
                             }
                         } else {
                             self::$error = self::translate('Unable to upload to the local server!');
                             return false;
                         }
                     }
                     $model_images->deleteImages('/' . $thumb_a1[1]);
                     $model_images->deleteImages('/cache_avatars/' . $image_path . $name);
                     return array('store' => 'Model_Upload_Amazons3', 'image' => $image_path . $name, 'width' => 0, 'height' => 0);
                 } else {
                     self::$error = self::translate('Unable to upload to the local server!');
                     return false;
                 }
             } else {
                 self::$error = self::translate('Missing images sizes!');
                 return false;
             }
         } else {
             self::$error = self::translate('Missing images sizes!');
             return false;
         }
     } else {
         self::$error = self::translate('Image format is not valid!');
         return false;
     }
     self::$error = self::translate('Unknown server error!');
     return false;
 }
Esempio n. 11
0
 public function upload_imagesAction()
 {
     $request = $this->getRequest();
     if (JO_Session::get('user[user_id]')) {
         $image = $request->getFile('file');
         if (!$image) {
             $this->view->error = $this->translate('There is no file selected');
         } else {
             $temporary = '/cache/review/';
             $upload_folder = BASE_PATH . $temporary;
             $upload = new Helper_Upload();
             $files_delete = glob($upload_folder . '*.*');
             $imageObject = new Helper_Images();
             if ($files_delete) {
                 for ($i = 0; $i < min(count($files_delete), 250); $i++) {
                     if (filemtime($files_delete[$i]) + 86400 < time()) {
                         $imageObject->deleteImages('/../' . $temporary . basename($files_delete[$i]));
                     }
                 }
             }
             $upload->setFile($image)->setExtension(array('.jpg', '.jpeg', '.png', '.gif'))->setUploadDir($upload_folder);
             $new_name = md5(time() . serialize($image));
             if ($upload->upload($new_name)) {
                 $info = $upload->getFileInfo();
                 if ($info) {
                     $files = JO_Session::get('gallery_upload_images');
                     if (!$files) {
                         $files = array();
                     }
                     $config_image_minimum_size = (int) Helper_Config::get('config_image_minimum_size');
                     if (!$config_image_minimum_size) {
                         $config_image_minimum_size = 80;
                     }
                     if (isset($info['image_dimension']['x']) && $info['image_dimension']['x'] >= $config_image_minimum_size && $info['image_dimension']['y'] >= $config_image_minimum_size) {
                         $imageObject->resize('/../' . $temporary . $info['name'], 75, 75, true);
                         $files[] = array('name' => $image['name'], 'tmp_name' => $info['name'], 'path' => $temporary);
                         JO_Session::set('gallery_upload_images', $files);
                         $this->view->success = 1;
                     } else {
                         $this->view->error = sprintf($this->translate('Photo size must be larger width and height of %s px'), $config_image_minimum_size);
                     }
                 } else {
                     $this->view->error = $this->translate('An unknown error');
                 }
             } else {
                 $this->view->error = $upload->getError();
             }
         }
     } else {
         $this->view->location = WM_Router::create($request->getBaseUrl() . '?controller=users&action=login');
     }
     echo $this->renderScript('json');
 }
Esempio n. 12
0
 public static function delete($event_id)
 {
     $db = JO_Db::getDefaultAdapter();
     $event_info = self::getEvent($event_id);
     if (!$event_info) {
         return false;
     }
     if ($event_info['store'] == 's3') {
         self::deleteImagesAmazon($event_info['image']);
     } else {
         $model_image = new Helper_Images();
         $model_image->deleteImages($event_info['image']);
     }
     $comments = Model_Events::getComments(array('filter_event_id' => $event_id));
     if ($comments) {
         foreach ($comments as $comment) {
             $db->delete('events_comments', array('comment_id = ?' => $comment['comment_id']));
             $db->delete('events_reports_comments', array('comment_id = ?' => $comment['comment_id']));
         }
     }
     $del = $db->delete('events', array('event_id = ?' => $event_id));
     if (!$del) {
         return false;
     } else {
         $db->delete('events_likes', array('event_id = ?' => $event_id));
         $db->delete('events_reports', array('event_id = ?' => $event_id));
         $db->delete('events_following', array('event_id = ?' => $event_id));
         $db->delete('users_history', array('pin_id = ?' => $event_id));
         self::deleteCache($event_info);
         return true;
     }
 }