Exemplo n.º 1
0
 public static function updateAll($data)
 {
     $db = JO_Db::getDefaultAdapter();
     if (is_array($data)) {
         $delete_pin_no_image = $delete_user_no_image = false;
         if (isset($data['images']['no_image']) && basename($data['images']['no_image']) != Helper_Config::get('no_image')) {
             $delete_pin_no_image = true;
         }
         if (isset($data['images']['no_avatar']) && basename($data['images']['no_avatar']) != Helper_Config::get('no_avatar')) {
             $delete_user_no_image = true;
         }
         foreach ($data as $group => $value) {
             $db->delete('system', array('`group` = ?' => $group));
             if (is_array($value)) {
                 foreach ($value as $key => $val) {
                     $serialize = false;
                     if (is_array($val)) {
                         $serialize = true;
                         $val = serialize($val);
                     }
                     $db->insert('system', array('group' => $group, 'key' => $key, 'value' => $val, 'system' => (int) ($group == 'config'), 'serialize' => $serialize));
                 }
             }
         }
         if ($delete_pin_no_image) {
             Helper_Db::query("TRUNCATE TABLE `pins_images`");
         }
         if ($delete_user_no_image) {
             Helper_Db::query("TRUNCATE TABLE `users_avatars`");
         }
     }
 }
Exemplo n.º 2
0
 public function __construct($data = array())
 {
     $db = JO_Db::getDefaultAdapter();
     try {
         $db->beginTransaction();
         $data['user_id'] = isset($data['user_id']) ? $data['user_id'] : JO_Session::get('user[user_id]');
         $data['public'] = isset($data['public']) ? (int) $data['public'] : 1;
         $data['date_added'] = date('Y-m-d H:i:s');
         $board_id = Helper_Db::create('boards', $data);
         if (!$board_id) {
             return $this;
         }
         Helper_Db::insert('users_boards', array('user_id' => isset($data['user_id']) ? (string) $data['user_id'] : JO_Session::get('user[user_id]'), 'board_id' => $board_id, 'is_author' => 1));
         if (isset($data['friends'])) {
             foreach ($data['friends'] as $fr) {
                 Helper_Db::insert('users_boards', array('user_id' => $fr, 'board_id' => $board_id));
             }
         }
         $config_private_boards = Helper_Config::get('config_private_boards');
         Helper_Db::update('users', array('boards' => new JO_Db_Expr("(SELECT COUNT(board_id) FROM boards WHERE user_id = '" . (isset($data['user_id']) ? (string) $data['user_id'] : JO_Session::get('user[user_id]')) . "' " . ($config_private_boards ? ' AND public = 1' : '') . ")")), array('user_id = ?' => isset($data['user_id']) ? (string) $data['user_id'] : JO_Session::get('user[user_id]')));
         ////autoseo
         new Model_Boards_Autoseo($board_id);
         $this->board_id = $board_id;
         $db->commit();
     } catch (JO_Exception $e) {
         $db->rollBack();
         $this->error = $e->getMessage();
     }
 }
Exemplo n.º 3
0
 public function __construct($to, $type, $pin_id = 0, $board_id = 0, $comment = '')
 {
     if ($to == JO_Session::get('user[user_id]')) {
         return;
     } else {
         if (!JO_Session::get('user[user_id]')) {
             return;
         }
     }
     $history_id = Helper_Db::insert('users_history', array('date_added' => new JO_Db_Expr('NOW()'), 'from_user_id' => (string) JO_Session::get('user[user_id]'), 'to_user_id' => (string) $to, 'history_action' => (int) $type, 'pin_id' => (string) $pin_id, 'board_id' => (string) $board_id, 'comment' => $comment));
     if ($history_id) {
         if (self::FOLLOW == $type) {
             Helper_Db::delete('users_history', array('to_user_id = ?' => (string) $to, 'from_user_id = ?' => (string) JO_Session::get('user[user_id]'), 'history_action = ?' => self::UNFOLLOW, 'board_id = ?' => (string) $board_id));
         } elseif (self::UNFOLLOW == $type) {
             Helper_Db::delete('users_history', array('to_user_id = ?' => (string) $to, 'from_user_id = ?' => (string) JO_Session::get('user[user_id]'), 'history_action = ?' => self::FOLLOW, 'board_id = ?' => (string) $board_id));
         } elseif (self::FOLLOW_USER == $type) {
             Helper_Db::delete('users_history', array('to_user_id = ?' => (string) $to, 'from_user_id = ?' => (string) JO_Session::get('user[user_id]'), 'history_action = ?' => self::UNFOLLOW_USER));
         } elseif (self::UNFOLLOW_USER == $type) {
             Helper_Db::delete('users_history', array('to_user_id = ?' => (string) $to, 'from_user_id = ?' => (string) JO_Session::get('user[user_id]'), 'history_action = ?' => self::FOLLOW_USER));
         } elseif (self::LIKEPIN == $type) {
             Helper_Db::delete('users_history', array('to_user_id = ?' => (string) $to, 'from_user_id = ?' => (string) JO_Session::get('user[user_id]'), 'history_action = ?' => self::UNLIKEPIN, 'pin_id = ?' => (string) $pin_id));
         } elseif (self::UNLIKEPIN == $type) {
             Helper_Db::delete('users_history', array('to_user_id = ?' => (string) $to, 'from_user_id = ?' => (string) JO_Session::get('user[user_id]'), 'history_action = ?' => self::LIKEPIN, 'pin_id = ?' => (string) $pin_id));
         }
     }
 }
Exemplo n.º 4
0
 public function __construct($board_id)
 {
     $db = JO_Db::getDefaultAdapter();
     try {
         $db->beginTransaction();
         $board_info = new Model_Boards_Board($board_id);
         if (!$board_info->count()) {
             return $this;
         }
         $result = null;
         if ($board_info['board_pins'] > 0) {
             $pins_query = $db->select()->from('pins')->where('board_id = ?', $board_id)->where('user_id = ?', $board_info['user_user_id']);
             $pins = $db->fetchAll($pins_query);
             if ($pins) {
                 foreach ($pins as $pin) {
                     $deleted = new Model_Pins_Delete($pin['pin_id']);
                     if (!$result) {
                         $result = $deleted;
                     }
                 }
             }
         }
         $res = Helper_Db::delete('users_following', array('board_id = ?' => $board_id));
         if (!$result) {
             $result = $res;
         }
         $res = Helper_Db::delete('users_following_ignore', array('board_id = ?' => $board_id));
         if (!$result) {
             $result = $res;
         }
         $res = Helper_Db::delete('users_boards', array('board_id = ?' => $board_id));
         if (!$result) {
             $result = $res;
         }
         $res = Helper_Db::delete('users_history', array('board_id = ?' => $board_id));
         if (!$result) {
             $result = $res;
         }
         $res = Helper_Db::delete('url_alias', array('query = ?' => 'board_id=' . $board_id));
         if (!$result) {
             $result = $res;
         }
         $res = Helper_Db::delete('boards', array('board_id = ?' => $board_id));
         if (!$result) {
             $result = $res;
         }
         $res = Helper_Db::update('users', array('boards' => new JO_Db_Expr("(SELECT COUNT(board_id) FROM boards WHERE user_id = '" . $board_info['user_user_id'] . "')")), array('user_id = ?' => $board_info['user_user_id']));
         if (!$result) {
             $result = $res;
         }
         if ($board_info['board_pins'] > 0) {
             ///////////////// update latest pins for user /////////////////////
             new Model_Users_UpdateLatestPins($board_info['user_user_id']);
         }
         $this->affected_rows = $result;
         $db->commit();
     } catch (JO_Exception $e) {
         $db->rollBack();
     }
 }
Exemplo n.º 5
0
 public function stats()
 {
     $db = JO_Db::getDefaultAdapter();
     Helper_Db::delete('statistics', array());
     Helper_Db::query("INSERT INTO `statistics`(`id`, `total`, `type`) SELECT DATE_FORMAT(`date_added`, '%Y%m'),COUNT(pin_id),1 FROM pins GROUP BY DATE_FORMAT(`date_added`, '%Y%m');");
     Helper_Db::query("INSERT INTO `statistics`(`id`, `total`, `type`) SELECT DATE_FORMAT(`date_added`, '%Y%m'),COUNT(user_id),2 FROM users GROUP BY DATE_FORMAT(`date_added`, '%Y%m');");
     Helper_Db::query("INSERT INTO `statistics`(`id`, `total`, `type`) SELECT DATE_FORMAT(`date_added`, '%Y%m'),COUNT(board_id),3 FROM boards GROUP BY DATE_FORMAT(`date_added`, '%Y%m');");
 }
Exemplo n.º 6
0
 public function __construct($user_id)
 {
     $db = JO_Db::getDefaultAdapter();
     $user_info = new Model_Users_User($user_id);
     if ($user_info->count()) {
         $config_private_boards = Helper_Config::get('config_private_boards');
         Helper_Db::update('users', array('pins' => new JO_Db_Expr('(SELECT COUNT(DISTINCT pin_id) FROM pins WHERE user_id = users.user_id ' . ($config_private_boards ? ' AND (public = 1 OR user_id = users.user_id)' : '') . ')'), 'boards' => new JO_Db_Expr('(SELECT COUNT(DISTINCT board_id) FROM boards WHERE user_id = users.user_id ' . ($config_private_boards ? ' AND (public = 1 OR user_id = users.user_id)' : '') . ')'), 'likes' => new JO_Db_Expr('(SELECT COUNT(DISTINCT pin_id) FROM pins_likes WHERE user_id = users.user_id)'), 'following' => new JO_Db_Expr('( (SELECT COUNT(DISTINCT following_id) FROM users_following_user WHERE user_id = users.user_id AND following_id != users.user_id LIMIT 1) + (SELECT COUNT(DISTINCT following_id) FROM users_following WHERE user_id = users.user_id AND following_id != users.user_id LIMIT 1) )'), 'followers' => new JO_Db_Expr('( (SELECT COUNT(DISTINCT user_id) FROM users_following_user WHERE following_id = users.user_id AND user_id != users.user_id LIMIT 1) + (SELECT COUNT(DISTINCT user_id) FROM users_following WHERE following_id = users.user_id AND user_id != users.user_id LIMIT 1) )'), 'latest_pins' => new JO_Db_Expr('( SUBSTRING_INDEX( (SELECT GROUP_CONCAT(pin_id ORDER BY `pin_id` DESC) FROM `pins` WHERE user_id = users.user_id), \',\', 15 ) )')), array('user_id = ?' => $user_id));
     }
 }
Exemplo n.º 7
0
 public function __construct($data)
 {
     $comment_id = Helper_Db::create('pins_comments', $data);
     if (!$comment_id) {
         return $this;
     }
     Helper_Db::update('pins', array('comments' => new JO_Db_Expr("(SELECT COUNT(comment_id) FROM pins_comments WHERE pin_id = '" . (string) $data['pin_id'] . "')"), 'latest_comments' => new JO_Db_Expr("(SELECT GROUP_CONCAT(comment_id ORDER BY comment_id ASC) FROM (SELECT comment_id FROM pins_comments WHERE pin_id = '" . (string) $data['pin_id'] . "' ORDER BY comment_id ASC LIMIT 4) AS tmp)")), array('pin_id = ?' => $data['pin_id']));
     $this->comment_id = $comment_id;
 }
Exemplo n.º 8
0
 public static function addMedia($data = array())
 {
     $db = JO_Db::getDefaultAdapter();
     $media_id = self::existMedia($data['md5key']);
     if ($media_id) {
         return $media_id;
     }
     return Helper_Db::insert('instagram_media', array('user_id' => $data['user_id'], 'instagram_media_id' => $data['instagram_media_id'], 'width' => $data['width'], 'height' => $data['height'], 'media' => $data['media'], 'instagram_profile_id' => $data['instagram_profile_id'], 'md5key' => $data['md5key'], 'title' => $data['title'], 'pin_id' => $data['pin_id'], 'from' => $data['from']));
 }
Exemplo n.º 9
0
 public function indexAction()
 {
     if (JO_Registry::get('isMobile')) {
         $request = $this->getRequest();
         $this->noLayout(true);
         $this->noViewRenderer(true);
         $model = new Model_Users_UsersIds(array('start' => 0, 'limit' => 300));
         if ($model->count()) {
             $users = array_rand((array) $model, min(10, $model->count()));
             $following = new Model_Users_Following();
             $ok = false;
             if ($users) {
                 if (is_array($users)) {
                     foreach ($users as $user) {
                         Helper_Db::insert('users_following_user', array('user_id' => (string) JO_Session::get('user[user_id]'), 'following_id' => (string) $user));
                     }
                 } else {
                     Helper_Db::insert('users_following_user', array('user_id' => (string) JO_Session::get('user[user_id]'), 'following_id' => (string) $users));
                 }
             }
         }
         new Model_Users_Edit(JO_Session::get('user[user_id]'), array('first_login' => 0));
         $this->redirect(WM_Router::create($request->getBaseUrl() . '?controller=index'));
     } else {
         $request = $this->getRequest();
         $this->view->total_following = Model_Boards_Follow::totalBoardFollow(JO_Session::get('user[user_id]'));
         if ($this->view->total_following >= 5) {
             $this->redirect(WM_Router::create($request->getBaseUrl() . '?controller=welcome&action=second'));
         }
         //////////// Categories ////////////
         $this->view->categories = array();
         /* v2.2 */
         $config_enable_follow_private_profile = '';
         if (Helper_Config::get('config_enable_follow_private_profile')) {
             $config_enable_follow_private_profile = ' AND user_id IN (SELECT user_id FROM users WHERE public = 1)';
         }
         /* v2.2 */
         $categories = Model_Categories::getCategories(array('filter_status' => 1, 'where' => new JO_Db_Expr('category.category_id IN (SELECT category_id FROM boards WHERE category_id = category.category_id AND pins > 0 ' . $config_enable_follow_private_profile . ')')));
         $model_images = new Helper_Images();
         foreach ($categories as $category) {
             if ($category['image']) {
                 $category['thumb'] = $model_images->resize($category['image'], 113, 113, true);
             } else {
                 $category['thumb'] = $model_images->resize(Helper_Config::get('no_image'), 113, 113);
             }
             $this->view->categories[] = $category;
         }
         $this->view->load_boards = WM_Router::create($this->getRequest()->getBaseUrl() . '?controller=welcome&action=boards');
         $this->view->next_step = WM_Router::create($request->getBaseUrl() . '?controller=welcome&action=second');
         //call header and footer childrens
         $this->view->children = array('header_part' => 'layout/header_part', 'footer_part' => 'layout/footer_part');
     }
 }
Exemplo n.º 10
0
 public function updateStat()
 {
     /*Helper_Db::update('users', array(
     				'following' => new JO_Db_Expr('( (SELECT COUNT(DISTINCT following_id) FROM users_following_user WHERE user_id = users.user_id AND following_id != users.user_id LIMIT 1) + (SELECT COUNT(DISTINCT user_id) FROM users_following WHERE user_id = users.user_id AND following_id != users.user_id LIMIT 1) )')
     		), array('user_id = ?' => (string)$this->user_id2));
     		Helper_Db::update('users', array(
     				'followers' => new JO_Db_Expr('( (SELECT COUNT(DISTINCT user_id) FROM users_following_user WHERE following_id = users.user_id AND user_id != users.user_id LIMIT 1) + (SELECT COUNT(DISTINCT user_id) FROM users_following WHERE following_id = users.user_id AND user_id != users.user_id LIMIT 1) )')
     		), array('user_id = ?' => (string)$this->user_id));*/
     Helper_Db::update('users', array('following' => new JO_Db_Expr('( (SELECT COUNT(DISTINCT following_id) FROM users_following_user WHERE user_id = users.user_id AND following_id != users.user_id LIMIT 1) + (SELECT COUNT(DISTINCT following_id) FROM users_following WHERE user_id = users.user_id AND following_id != users.user_id LIMIT 1) )'), 'followers' => new JO_Db_Expr('( (SELECT COUNT(DISTINCT user_id) FROM users_following_user WHERE following_id = users.user_id AND user_id != users.user_id LIMIT 1) + (SELECT COUNT(DISTINCT user_id) FROM users_following WHERE following_id = users.user_id AND user_id != users.user_id LIMIT 1) )')), array('user_id = ?' => (string) $this->user_id2));
     Helper_Db::update('users', array('following' => new JO_Db_Expr('( (SELECT COUNT(DISTINCT following_id) FROM users_following_user WHERE user_id = users.user_id AND following_id != users.user_id LIMIT 1) + (SELECT COUNT(DISTINCT following_id) FROM users_following WHERE user_id = users.user_id AND following_id != users.user_id LIMIT 1) )'), 'followers' => new JO_Db_Expr('( (SELECT COUNT(DISTINCT user_id) FROM users_following_user WHERE following_id = users.user_id AND user_id != users.user_id LIMIT 1) + (SELECT COUNT(DISTINCT user_id) FROM users_following WHERE following_id = users.user_id AND user_id != users.user_id LIMIT 1) )')), array('user_id = ?' => (string) $this->user_id));
     Helper_Db::update('boards', array('followers' => new JO_Db_Expr('( (SELECT COUNT(DISTINCT user_id) FROM users_following_user WHERE following_id = boards.user_id AND user_id != boards.user_id LIMIT 1) + (SELECT COUNT(DISTINCT user_id) FROM users_following WHERE following_id = boards.user_id AND user_id != boards.user_id LIMIT 1) - (SELECT COUNT(DISTINCT user_id) FROM users_following_ignore WHERE following_id = boards.user_id AND board_id = boards.board_id AND user_id != boards.user_id LIMIT 1) )')), array('user_id = ?' => (string) $this->user_id));
 }
Exemplo n.º 11
0
 public function __construct($board_id)
 {
     $db = JO_Db::getDefaultAdapter();
     $board_info = new Model_Boards_Board($board_id);
     if (!$board_info->count()) {
         return $this;
     }
     if (($cleared = trim($this->clear($board_info['board_title']))) != '') {
         $slug = $uniqueSlug = $cleared;
     } else {
         $slug = $uniqueSlug = 'user-board';
     }
     Helper_Db::delete('url_alias', array('query = ?' => 'board_id=' . $board_id));
     $uniqueSlug = $this->renameIfExist($uniqueSlug);
     Helper_Db::insert('url_alias', array('query' => 'board_id=' . (int) $board_id, 'keyword' => $uniqueSlug, 'path' => $uniqueSlug, 'route' => 'boards/view'));
 }
Exemplo n.º 12
0
 public function __construct($user_id)
 {
     $db = JO_Db::getDefaultAdapter();
     $user_info = new Model_Users_User($user_id);
     if (!$user_info->count()) {
         return $this;
     }
     if (($cleared = trim($this->clear($user_info['username']))) != '') {
         $slug = $uniqueSlug = $cleared;
     } else {
         $slug = $uniqueSlug = 'user';
     }
     Helper_Db::delete('url_alias', array('query = ?' => 'user_id=' . $user_id));
     $uniqueSlug = $this->renameIfExist($uniqueSlug);
     $res = Helper_Db::insert('url_alias', array('query' => 'user_id=' . (int) $user_id, 'keyword' => $uniqueSlug, 'path' => $uniqueSlug, 'route' => 'users/profile'));
     $this->affected_rows = $res;
 }
Exemplo n.º 13
0
 public function __construct($ids = array(), $page = 1)
 {
     $db = JO_Db::getDefaultAdapter();
     try {
         $db->beginTransaction();
         $result = 0;
         $plus = (int) (Helper_Config::get('config_front_limit') * $page) - Helper_Config::get('config_front_limit');
         if (is_array($ids)) {
             foreach ($ids as $sort_order => $id) {
                 $result += Helper_Db::update('boards', array('sort_order' => (int) ($sort_order + $plus)), array('board_id = ?' => (string) $id, 'user_id = ?' => JO_Session::get('user[user_id]')));
             }
         }
         $this->affected_rows = $result;
         $db->commit();
     } catch (JO_Exception $e) {
         $db->rollBack();
     }
 }
Exemplo n.º 14
0
 public function unlike()
 {
     if ($this->pin && $this->total) {
         $db = JO_Db::getDefaultAdapter();
         try {
             $db->beginTransaction();
             $result = Helper_Db::delete('pins_likes', array('pin_id = ?' => (string) $this->pin['pin_pin_id'], 'user_id = ?' => (string) JO_Session::get('user[user_id]')));
             if ($result) {
                 $user_id = JO_Session::get('user[user_id]');
                 Helper_Db::update('pins', array('likes' => new JO_Db_Expr('(' . $db->select()->from('pins_likes', 'COUNT(like_id)')->where('pin_id = ?', (string) $this->pin['pin_pin_id'])->limit(1) . ')')), array('pin_id = ?' => (string) $this->pin['pin_pin_id']));
                 Helper_Db::update('users', array('likes' => new JO_Db_Expr('(' . $db->select()->from('pins_likes', 'COUNT(like_id)')->where('user_id = ?', (string) $user_id)->limit(1) . ')')), array('user_id = ?' => (string) $user_id));
             }
             $db->commit();
             return $result;
         } catch (JO_Exception $e) {
             $db->rollBack();
         }
     }
     return false;
 }
Exemplo n.º 15
0
 public static function generateSourceQuery($source_id)
 {
     $info = new Model_Sources_Source($source_id);
     if (!$info->count()) {
         return;
     }
     if (trim($info['source'])) {
         $slug = $uniqueSlug = self::clear($info['source']);
     } else {
         $slug = $uniqueSlug = 'source';
     }
     $index = 1;
     Helper_Db::delete('url_alias', array('query = ?' => 'source_id=' . $source_id));
     while (self::getTotalKey($uniqueSlug)) {
         $uniqueSlug = $slug . '-' . $index++;
     }
     if (Helper_Db::insert('url_alias', array('query' => 'source_id=' . (int) $source_id, 'keyword' => $uniqueSlug, 'path' => $uniqueSlug, 'route' => 'source/index'))) {
         return $uniqueSlug;
     } else {
         return false;
     }
 }
Exemplo n.º 16
0
 public function __construct($email = null)
 {
     if ($email) {
         $db = JO_Db::getDefaultAdapter();
         $query = $db->select()->from('users')->where('email = ?', (string) $email)->limit(1);
         $this->is_user = $db->fetchRow($query);
         if ($this->is_user) {
             return $this;
         }
         $query = $db->select()->from('shared_content')->where('email = ?', (string) $email)->limit(1);
         $key = $db->fetchRow($query);
         if ($key) {
             $this->key = $key['key'];
             return $this;
         }
         $key = md5(time() . mt_rand());
         $last = Helper_Db::insert('shared_content', array('user_id' => JO_Session::get('user[user_id]'), 'date_added' => new JO_Db_Expr('NOW()'), 'key' => $key, 'email' => $email, 'send' => 1));
         if ($last) {
             $this->key = $key;
             return $this;
         }
     }
 }
Exemplo n.º 17
0
 public function __construct($comment_id)
 {
     $db = JO_Db::getDefaultAdapter();
     try {
         $db->beginTransaction();
         $info = self::getComment($comment_id);
         if ($info) {
             $result = Helper_Db::delete('pins_comments', array('comment_id = ?' => $comment_id));
             $res = Helper_Db::delete('pins_reports_comments', array('comment_id = ?' => $comment_id));
             if (!$result) {
                 $result = $res;
             }
             $res = Helper_Db::update('pins', array('comments' => new JO_Db_Expr("(SELECT COUNT(comment_id) FROM pins_comments WHERE pin_id = '" . (string) $info['pin_id'] . "')"), 'latest_comments' => new JO_Db_Expr("(SELECT GROUP_CONCAT(comment_id ORDER BY comment_id ASC) FROM (SELECT comment_id FROM pins_comments WHERE pin_id = '" . (string) $info['pin_id'] . "' ORDER BY comment_id ASC LIMIT 4) AS tmp)")), array('pin_id = ?' => (string) $info['pin_id']));
             if (!$result) {
                 $result = $res;
             }
             $this->affected_rows = $result;
         }
         $db->commit();
     } catch (JO_Exception $e) {
         $db->rollBack();
     }
 }
Exemplo n.º 18
0
 public static function uninstall($name)
 {
     return Helper_Db::delete('extensions', array('code = ?' => $name));
 }
Exemplo n.º 19
0
 public static function editeSource($source_id, $data)
 {
     if (($data['source'] = JO_Validate::validateHost($data['source'])) === false) {
         return false;
     }
     return Helper_Db::update('pins_sources', array('source' => $data['source']), array('source_id = ?' => $source_id)) === false ? false : true;
 }
Exemplo n.º 20
0
 public function __construct($pin_id, $data = array())
 {
     $db = JO_Db::getDefaultAdapter();
     try {
         $db->beginTransaction();
         $pin_info = new Model_Pins_Pin($pin_id);
         if (!$pin_info->count()) {
             return $this;
         }
         $pin_info = $pin_info->data;
         if (isset($data['board_id'])) {
             $board_info = new Model_Boards_Board($data['board_id']);
             if ($board_info->count()) {
                 $data['board_id'] = $board_info['board_board_id'];
                 $data['category_id'] = $board_info['board_category_id'];
                 $data['public'] = $board_info['board_public'];
             } else {
                 $data['board_id'] = 0;
             }
         }
         $data['likes'] = new JO_Db_Expr('(SELECT COUNT(DISTINCT user_id) FROM pins_likes WHERE pin_id = pins.pin_id)');
         $data['comments'] = new JO_Db_Expr('(SELECT COUNT(DISTINCT comment_id) FROM pins_comments WHERE pin_id = pins.pin_id)');
         $data['date_modified'] = WM_Date::format(time(), 'yy-mm-dd H:i:s');
         $data['source_id'] = 0;
         //sorce
         if (isset($data['from']) && $data['from']) {
             $source = new Model_Sources_GetSourceByUrl($data['from']);
             if ($source->source_id) {
                 $data['source_id'] = $source->source_id;
             }
         }
         $data['from_md5'] = md5(isset($data['from']) ? $data['from'] : time());
         /* price */
         //$data['price'] = 0;
         if (isset($data['price']) && $data['price']) {
             $currencies = WM_Currency::getCurrencies();
             $price_left = array();
             $price_right = array();
             if ($currencies) {
                 foreach ($currencies as $currency) {
                     if (trim($currency['symbol_left'])) {
                         $price_left[] = preg_quote(trim($currency['symbol_left']));
                     }
                     if (trim($currency['symbol_right'])) {
                         $price_right[] = preg_quote(trim($currency['symbol_right']));
                     }
                 }
                 if ($price_left) {
                     if (preg_match('/(' . implode('|', $price_left) . ')([\\s]{0,2})?(?:(?:\\d{1,5}(?:\\,\\d{3})+)|(?:\\d+))(?:\\.\\d{2})?/', $data['price'], $match)) {
                         $price_tmp = trim(str_replace(trim($match[1]), '', $match[0]));
                         $currency = self::getCurrencyBySimbol(trim($match[1]));
                         if ($currency) {
                             $data['price'] = round($price_tmp / $currency, 4);
                         }
                     }
                 }
                 if (!$data['price'] && $price_right) {
                     if (preg_match('/(?:(?:\\d{1,5}(?:\\,\\d{3})+)|(?:\\d+))(?:\\.\\d{2})?([\\s]{0,2})?(' . implode('|', $price_right) . ')/', $data['price'], $match)) {
                         $price_tmp = trim(str_replace(trim($match[2]), '', $match[0]));
                         $currency = self::getCurrencyBySimbol(trim($match[2]));
                         if ($currency) {
                             $data['price'] = round($price_tmp / $currency, 4);
                         }
                     }
                 }
             }
         }
         /* end price */
         $from = isset($data['from']) ? $data['from'] : time();
         $data['is_video'] = isset($data['is_video']) && $data['is_video'] == 'true' ? 1 : 0;
         if (!$data['is_video']) {
             $auto = new Helper_AutoEmbed();
             if ($auto->parseUrl($from)) {
                 $data['is_video'] = 1;
             }
         }
         /* is video */
         ///////////////// Event onComplete /////////////////////
         $on_add_call = Helper_Config::get('pin_onbefore_edit');
         if ($on_add_call) {
             foreach ($on_add_call as $call) {
                 call_user_func($call, $data);
             }
         }
         //edit pin
         $result = Helper_Db::update('pins', $data, array('pin_id = ?' => $pin_id));
         ///////////////// update latest pins for board /////////////////////
         if (isset($data['board_id']) && $data['board_id'] && $pin_info['pin_board_id'] != $data['board_id']) {
             new Model_Boards_UpdateLatestPins($data['board_id']);
             new Model_Boards_UpdateLatestPins($pin_info['pin_board_id']);
             $board_info = new Model_Boards_Board($data['board_id']);
             if ($board_info->count()) {
                 if ($board_info['board_cover'] == $pin_id) {
                     $res = Helper_Db::update('boards', array('cover' => 0), array('board_id = >' => $pin_info['pin_board_id']));
                     if (!$result && $res) {
                         $result = $res;
                     }
                 }
             }
         }
         ///////////////// update latest pins for user /////////////////////
         new Model_Users_UpdateLatestPins($pin_info['pin_user_id']);
         ///////////////// Word for search index's /////////////////////
         $spl = JO_Utf8::str_word_split(strip_tags(html_entity_decode($data['description'], ENT_QUOTES, 'utf-8')), self::$searchWordLenght);
         $words = array();
         foreach ($spl as $word) {
             $word = mb_strtolower($word, 'utf-8');
             if (!in_array($word, self::blackWordsDictionary()) && $word[0] . $word[1] != '&#') {
                 $words[$word] = $word;
             }
         }
         ///////////////// Word for search index's insert /////////////////////
         Helper_Db::delete('pins_invert', array('pin_id = ?' => $pin_id));
         foreach ($words as $word => $data1) {
             $dic_id = $db->fetchOne($db->select()->from('pins_dictionary', 'dic_id')->where('word = ?', $word));
             if (!$dic_id) {
                 $dic_id = Helper_Db::insert('pins_dictionary', array('word' => $word));
             }
             if ($dic_id) {
                 $res = Helper_Db::insert('pins_invert', array('pin_id' => $pin_id, 'dic_id' => $dic_id));
                 if (!$result && $res) {
                     $result = $res;
                 }
             }
         }
         ///////////////// Extension on edit //////////////////
         $extensions = Model_Extensions::getByMethod('pin_onedit');
         if ($extensions) {
             $front = JO_Front::getInstance();
             foreach ($extensions as $id => $ext) {
                 $pin_data_ext = call_user_func(array($front->formatModuleName('model_' . $ext . '_pin'), 'onedit'), $pin_id, $data);
                 if ($pin_data_ext && is_array($pin_data_ext)) {
                     $data = array_merge(data, $pin_data_ext);
                 }
             }
         }
         ///////////////// Event onComplete /////////////////////
         $trigger = new Helper_Triggers_PinOnEdit();
         $trigger->bind($pin_id);
         $this->affected_rows = $result;
         $db->commit();
     } catch (JO_Exception $e) {
         echo $e;
         exit;
         $db->rollBack();
     }
 }
Exemplo n.º 21
0
 public function __construct($pin_id)
 {
     $db = JO_Db::getDefaultAdapter();
     try {
         $db->beginTransaction();
         $pin_info = new Model_Pins_Pin($pin_id);
         if (!$pin_info->count()) {
             return $this;
         }
         $pin_info = $pin_info->data;
         $result = null;
         if ($pin_info['pin_image']) {
             $res = Helper_Db::create('pins_images_for_delete', array('pin_id' => $pin_info['pin_pin_id'], 'date_added' => $pin_info['pin_date_added'], 'image' => $pin_info['pin_image'], 'store' => $pin_info['pin_store'], 'gallery_id' => 0));
             if (!$result) {
                 $result = $res;
             }
         }
         $gallery = new Model_Pins_Gallery($pin_info['pin_pin_id']);
         if ($gallery->count()) {
             foreach ($gallery->data as $gal) {
                 $res = Helper_Db::create('pins_images_for_delete', array('pin_id' => $gal['pin_id'], 'date_added' => $pin_info['pin_date_added'], 'image' => $gal['image'], 'store' => $gal['store'], 'gallery_id' => $gal['gallery_id']));
                 if (!$result) {
                     $result = $res;
                 }
             }
         }
         if ($pin_info['pin_comments']) {
             $comments = Model_Comments::getComments2(array('filter_pin_id' => $pin_id));
             foreach ($comments as $comment) {
                 $del = new Model_Pins_DeleteComment($comment['comment_id']);
                 if (!$result) {
                     $result = $del->affected_rows;
                 }
             }
         }
         $res = Helper_Db::delete('pins', array('pin_id = ?' => $pin_id));
         if (!$result) {
             $result = $res;
         }
         $res = Helper_Db::delete('pins_invert', array('pin_id = ?' => $pin_id));
         if (!$result) {
             $result = $res;
         }
         if ($pin_info['pin_likes']) {
             $res = Helper_Db::delete('pins_likes', array('pin_id = ?' => $pin_id));
             if (!$result) {
                 $result = $res;
             }
         }
         $res = Helper_Db::delete('pins_reports', array('pin_id = ?' => $pin_id));
         if (!$result) {
             $result = $res;
         }
         $res = Helper_Db::delete('pins_views', array('pin_id = ?' => $pin_id));
         if (!$result) {
             $result = $res;
         }
         $res = Helper_Db::delete('users_history', array('pin_id = ?' => $pin_id));
         if (!$result) {
             $result = $res;
         }
         $res = Helper_Db::delete('pins_images', array('pin_id = ?' => $pin_id));
         if (!$result) {
             $result = $res;
         }
         $res = Helper_Db::update('users', array('likes' => new JO_Db_Expr('(' . $db->select()->from('pins_likes', 'COUNT(like_id)')->where('pin_id IN (?)', new JO_Db_Expr('(' . $db->select()->from('pins', 'pin_id')->where('user_id = ?', $pin_info['user_user_id']) . ')'))->limit(1) . ')')), array('user_id=?' => $pin_info['user_user_id']));
         if (!$result) {
             $result = $res;
         }
         ///////////////// update latest pins for user and board /////////////////////
         new Model_Users_UpdateLatestPins($pin_info['user_user_id']);
         new Model_Boards_UpdateLatestPins($pin_info['board_board_id']);
         ///////////////// Extension on delete //////////////////
         $extensions = Model_Extensions::getByMethod('pin_ondelete');
         if ($extensions) {
             $front = JO_Front::getInstance();
             foreach ($extensions as $id => $ext) {
                 $res = call_user_func(array($front->formatModuleName('model_' . $ext . '_pin'), 'ondelete'), $pin_id);
                 if (!$result) {
                     $result = $res;
                 }
             }
         }
         $this->affected_rows = $result;
         $db->commit();
     } catch (JO_Exception $e) {
         $db->rollBack();
     }
 }
Exemplo n.º 22
0
 public function __construct($data)
 {
     $db = JO_Db::getDefaultAdapter();
     try {
         $db->beginTransaction();
         $date_added = WM_Date::format(time(), 'yy-mm-dd H:i:s');
         $data['date_added'] = $date_added;
         $data['last_login'] = $date_added;
         $data['status'] = 1;
         $data['last_action_datetime'] = $date_added;
         $data['ip_address'] = JO_Request_Server::encode_ip(JO_Request::getInstance()->getClientIp());
         $data['new_email'] = $data['email'];
         $data['store'] = JO_Registry::get('default_upload_method');
         if (!$data['store']) {
             $data['store'] = 'Model_Upload_Locale';
         }
         /*$avatar = '';
         		if(isset($data['avatar']) && $data['avatar']) {
         			$avatar = $data['avatar'];
         			$data['avatar'] = '';
         		}*/
         $rows = Helper_Db::describeTable('users');
         $insert = array();
         $avatar = '';
         foreach ($rows as $row => $def) {
             if (isset($data[$row])) {
                 if (in_array($row, array('password', 'new_password'))) {
                     if ($data[$row]) {
                         if ($data[$row] instanceof JO_Db_Expr) {
                             $insert[$row] = $data[$row];
                         } else {
                             $insert[$row] = md5($data[$row]);
                         }
                     } else {
                         $insert[$row] = '';
                     }
                 } elseif ($row == 'avatar') {
                     $avatar = $data[$row];
                     $data[$row] = '';
                 } else {
                     $insert[$row] = $data[$row];
                 }
             } else {
                 $insert[$row] = $def;
             }
         }
         //create user
         $user_id = Helper_Db::create('users', $insert);
         if (!$user_id) {
             return $this;
         }
         //upload avatar
         if ($avatar) {
             $method_for_upload = Helper_Config::get('file_upload_method');
             if ($method_for_upload) {
                 $image = call_user_func(array($method_for_upload, 'uploadUserAvatar'), $avatar, $user_id);
                 $error = call_user_func(array($method_for_upload, 'getError'));
                 if ($error) {
                     $this->error[] = $error;
                 }
                 if ($image && isset($image['image']) && $image['image']) {
                     Helper_Db::update('users', array('avatar' => $image['image'], 'store' => $image['store'], 'height' => $image['height'], 'width' => $image['width']), array('user_id = ?' => (string) $user_id));
                 }
             }
         }
         //create user alias
         new Model_Users_Autoseo($user_id);
         /*Helper_Db::insert('url_alias', array(
         				'query' => 'user_id=' . (string)$user_id,
         				'keyword' => $data['username'],
         				'path' => $data['username'],
         				'route' => 'users/profile'
         		));*/
         //add default boards
         if (is_array(Helper_Config::get('default_boards'))) {
             foreach (Helper_Config::get('default_boards') as $def) {
                 new Model_Boards_Create(array('category_id' => $def['category_id'], 'title' => $def['title'], 'user_id' => (string) $user_id));
             }
         }
         //set following
         $config_private_boards = Helper_Config::get('config_private_boards');
         if (isset($data['following_user']) && $data['following_user'] && $data['following_user'] != -1) {
             Helper_Db::insert('users_following_user', array('user_id' => (string) $user_id, 'following_id' => (string) $data['following_user']));
             Helper_Db::insert('users_following_user', array('user_id' => (string) $data['following_user'], 'following_id' => (string) $user_id));
             //update following user info
             Helper_Db::update('users', array('pins' => new JO_Db_Expr('(SELECT COUNT(DISTINCT pin_id) FROM pins WHERE user_id = users.user_id ' . ($config_private_boards ? ' AND public = 1' : '') . ')'), 'boards' => new JO_Db_Expr('(SELECT COUNT(DISTINCT board_id) FROM boards WHERE user_id = users.user_id ' . ($config_private_boards ? ' AND public = 1' : '') . ')'), 'likes' => new JO_Db_Expr('(SELECT COUNT(DISTINCT pin_id) FROM pins_likes WHERE user_id = users.user_id)'), 'following' => new JO_Db_Expr('( (SELECT COUNT(DISTINCT following_id) FROM users_following_user WHERE user_id = users.user_id AND following_id != users.user_id LIMIT 1) + (SELECT COUNT(DISTINCT user_id) FROM users_following WHERE user_id = users.user_id AND following_id != users.user_id LIMIT 1) )'), 'followers' => new JO_Db_Expr('( (SELECT COUNT(DISTINCT user_id) FROM users_following_user WHERE following_id = users.user_id AND user_id != users.user_id LIMIT 1) + (SELECT COUNT(DISTINCT user_id) FROM users_following WHERE following_id = users.user_id AND user_id != users.user_id LIMIT 1) )')), array('user_id = ?' => (string) $data['following_user']));
         }
         //update user info
         Helper_Db::update('users', array('pins' => new JO_Db_Expr('(SELECT COUNT(DISTINCT pin_id) FROM pins WHERE user_id = users.user_id ' . ($config_private_boards ? ' AND public = 1' : '') . ')'), 'boards' => new JO_Db_Expr('(SELECT COUNT(DISTINCT board_id) FROM boards WHERE user_id = users.user_id ' . ($config_private_boards ? ' AND public = 1' : '') . ')'), 'likes' => new JO_Db_Expr('(SELECT COUNT(DISTINCT pin_id) FROM pins_likes WHERE user_id = users.user_id)'), 'following' => new JO_Db_Expr('( (SELECT COUNT(DISTINCT following_id) FROM users_following_user WHERE user_id = users.user_id AND following_id != users.user_id LIMIT 1) + (SELECT COUNT(DISTINCT following_id) FROM users_following WHERE user_id = users.user_id AND following_id != users.user_id LIMIT 1) )'), 'followers' => new JO_Db_Expr('( (SELECT COUNT(DISTINCT user_id) FROM users_following_user WHERE following_id = users.user_id AND user_id != users.user_id LIMIT 1) + (SELECT COUNT(DISTINCT user_id) FROM users_following WHERE following_id = users.user_id AND user_id != users.user_id LIMIT 1) )')), array('user_id = ?' => (string) $user_id));
         $this->user_id = $user_id;
         $db->commit();
     } catch (JO_Exception $e) {
         $this->error[] = $e->getMessage();
         $db->rollBack();
     }
 }
Exemplo n.º 23
0
 public function installAction()
 {
     Model_Extensions_Install::install('facebook');
     if (!Model_Extensions_Install::tableExists('oauth_facebook')) {
         Helper_Db::query("CREATE TABLE IF NOT EXISTS oauth_facebook (\r\n\t\t\t\tid BIGINT(20) AUTO_INCREMENT,\r\n\t\t\t\temail VARCHAR(120),\r\n\t\t\t\toauth_uid BIGINT(20),\r\n\t\t\t\tuser_id BIGINT(20),\r\n\t\t\t\taccess_token VARCHAR(200),\r\n\t\t\t\ttimeline TINYINT(1),\r\n\t\t\t\tPRIMARY KEY (`id`),\r\n\t\t\t\tKEY `oauth_uid` (`oauth_uid`),\r\n\t\t\t\tKEY `user_id` (`user_id`)\r\n\t\t\t\t) ENGINE=InnoDB;");
     }
     if (!Model_Extensions_Install::tableExists('invate_facebook')) {
         Helper_Db::query("CREATE TABLE IF NOT EXISTS `invate_facebook` (\r\n\t\t\t  `if_id` bigint(20) NOT NULL AUTO_INCREMENT,\r\n\t\t\t  `user_id` bigint(20) NOT NULL,\r\n\t\t\t  `code` varchar(32) COLLATE utf8_unicode_ci NOT NULL,\r\n\t\t\t  `facebook_id` bigint(20) NOT NULL,\r\n\t\t\t  PRIMARY KEY (`if_id`),\r\n\t\t\t  KEY `user_id` (`user_id`,`code`)\r\n\t\t\t) ENGINE=InnoDB;");
     }
     $this->redirect($this->getRequest()->getBaseUrl() . $this->getRequest()->getModule() . '/modules_oauth_facebook');
 }
Exemplo n.º 24
0
 public function deleteDataByUserId($user_id)
 {
     $db = JO_Db::getDefaultAdapter();
     return Helper_Db::delete('oauth_instagram', array('user_id = ?' => (string) $user_id));
 }
Exemplo n.º 25
0
 public static function edit($user_id, $data)
 {
     $db = JO_Db::getDefaultAdapter();
     $rows = self::describeTable('users');
     $user_info_get = self::getUser($user_id);
     $date_added = WM_Date::format($user_info_get['date_added'], 'yy-mm-dd H:i:s');
     $update = array();
     $avatar = '';
     foreach ($rows as $row) {
         if (array_key_exists($row, $data)) {
             if ($row == 'avatar') {
                 if ($data[$row]) {
                     JO_Session::clear('upload_avatar');
                     $avatar = $data[$row];
                 } else {
                     //$update[$row] = $data[$row];
                 }
             } elseif ($row == 'password' || $row == 'new_password') {
                 $update[$row] = md5($data[$row]);
             } else {
                 $update[$row] = $data[$row];
             }
         }
     }
     if (!$update) {
         if (!$avatar) {
             return false;
         }
     }
     $rebuild = $result = $db->update('users', $update, array('user_id = ?' => (string) $user_id));
     if ($avatar) {
         $image = false;
         //$error = false;
         $method_for_upload = Helper_Config::get('file_upload_method');
         if ($method_for_upload) {
             $image = call_user_func(array($method_for_upload, 'uploadUserAvatar'), $avatar, $user_id);
             //$error = call_user_func(array($upload_model, 'getError') );
         }
         if ($image) {
             $result = $db->update('users', array('avatar' => $image['image'], 'store' => $image['store'], 'height' => $image['height'], 'width' => $image['width'], 'last_action_datetime' => new JO_Db_Expr('NOW()')), array('user_id = ?' => (string) $user_id));
             $db->delete('users_avatars', array('user_id = ?' => (string) $user_id));
             if ($user_info_get && $user_info_get['avatar']) {
                 if ($user_info_get['avatar'] != $image['image']) {
                     call_user_func(array($user_info_get['store'], 'deleteUserImage'), $user_info_get);
                 }
             }
             if (!$rebuild) {
                 $rebuild = $result;
             }
         }
     }
     if (isset($data['username'])) {
         $db->query("DELETE FROM url_alias WHERE query = 'user_id=" . (string) $user_id . "'");
         $db->insert('url_alias', array('query' => 'user_id=' . (string) $user_id, 'keyword' => $data['username'], 'path' => $data['username'], 'route' => 'users/profile'));
     }
     if ($rebuild) {
         $total = $db->update('pins', array('date_modified' => WM_Date::format(time(), 'yy-mm-dd H:i:s')), array('user_id = ? OR (pin_id IN (SELECT DISTINCT pin_id FROM pins_comments WHERE user_id = ?))' => (string) $user_id));
     }
     $config_private_boards = Helper_Config::get('config_private_boards');
     Helper_Db::update('users', array('pins' => new JO_Db_Expr('(SELECT COUNT(DISTINCT pin_id) FROM pins WHERE user_id = users.user_id ' . ($config_private_boards ? ' AND public = 1' : '') . ')'), 'boards' => new JO_Db_Expr('(SELECT COUNT(DISTINCT board_id) FROM boards WHERE user_id = users.user_id ' . ($config_private_boards ? ' AND public = 1' : '') . ')'), 'likes' => new JO_Db_Expr('(SELECT COUNT(DISTINCT pin_id) FROM pins_likes WHERE user_id = users.user_id)'), 'following' => new JO_Db_Expr('( (SELECT COUNT(DISTINCT following_id) FROM users_following_user WHERE user_id = users.user_id AND following_id != users.user_id LIMIT 1) + (SELECT COUNT(DISTINCT following_id) FROM users_following WHERE user_id = users.user_id AND following_id != users.user_id LIMIT 1) )'), 'followers' => new JO_Db_Expr('( (SELECT COUNT(DISTINCT user_id) FROM users_following_user WHERE following_id = users.user_id AND user_id != users.user_id LIMIT 1) + (SELECT COUNT(DISTINCT user_id) FROM users_following WHERE following_id = users.user_id AND user_id != users.user_id LIMIT 1) )'), 'latest_pins' => new JO_Db_Expr('( SUBSTRING_INDEX( (SELECT GROUP_CONCAT(pin_id ORDER BY `pin_id` DESC) FROM `pins` WHERE user_id = users.user_id), \',\', 15 ) )')), array('user_id = ?' => $user_id));
     return true;
 }
Exemplo n.º 26
0
 public function deleteByUserId($user_id)
 {
     return Helper_Db::delete('oauth_instagram', array('user_id = ?' => $user_id));
 }
Exemplo n.º 27
0
 public function editDescriptionAction()
 {
     $request = $this->getRequest();
     if (!JO_Session::get('user[user_id]')) {
         if ($request->isXmlHttpRequest()) {
             $this->view->redirect = WM_Router::create($request->getBaseUrl() . '?controller=users&action=login');
         } else {
             $this->redirect(WM_Router::create($request->getBaseUrl() . '?controller=users&action=login'));
         }
     } else {
         $result = Helper_Db::update('users', array('description' => $request->getPost('description')), array('user_id = ?' => (string) JO_Session::get('user[user_id]')));
         if ($result) {
             $this->view->ok = $request->getPost('description');
         } else {
             $this->view->error = $this->translate('There was a problem with the record. Please try again!');
         }
     }
     echo $this->renderScript('json');
 }
Exemplo n.º 28
0
 public function __construct($user_id, $data = array())
 {
     $db = JO_Db::getDefaultAdapter();
     try {
         $db->beginTransaction();
         $user_info_get = new Model_Users_User($user_id);
         if (!$user_info_get) {
             return $this;
         }
         $rows = Helper_Db::describeTable('users');
         $update = array();
         $avatar = '';
         foreach ($rows as $row => $def) {
             if (isset($data[$row])) {
                 if (in_array($row, array('password', 'new_password'))) {
                     if ($data[$row]) {
                         if ($data[$row] instanceof JO_Db_Expr) {
                             $update[$row] = $data[$row];
                         } else {
                             $update[$row] = md5($data[$row]);
                         }
                     } else {
                         $update[$row] = '';
                     }
                 } elseif ($row == 'avatar') {
                     $avatar = $data[$row];
                     unset($data[$row]);
                 } else {
                     $update[$row] = $data[$row];
                 }
             }
         }
         if (count($update) == 0 && $avatar == '') {
             return $this;
         }
         $result = Helper_Db::update('users', $update, array('user_id = ?' => (string) $user_id));
         //add user avatar
         if ($avatar) {
             $image = false;
             $method_for_upload = Helper_Config::get('file_upload_method');
             if ($method_for_upload) {
                 $image = call_user_func(array($method_for_upload, 'uploadUserAvatar'), $avatar, $user_id);
             }
             $error = call_user_func(array($method_for_upload, 'getError'));
             if (!$error && $image && isset($image['image']) && $image['image']) {
                 $res = Helper_Db::update('users', array('avatar' => $image['image'], 'store' => $image['store'], 'height' => $image['height'], 'width' => $image['width'], 'last_action_datetime' => new JO_Db_Expr('NOW()')), array('user_id = ?' => (string) $user_id));
                 if (!$result) {
                     $result = $res;
                 }
                 Helper_Db::delete('users_avatars', array('user_id = ?' => (string) $user_id));
                 if ($user_info_get && $user_info_get['avatar']) {
                     if ($user_info_get['avatar'] != $image['image']) {
                         call_user_func(array($user_info_get['store'], 'deleteUserImage'), $user_info_get);
                     }
                 }
             }
         }
         if (isset($data['username'])) {
             $result = new Model_Users_Autoseo($user_id);
             if (!$result->affected_rows) {
                 $result = $res;
             }
         }
         $config_private_boards = Helper_Config::get('config_private_boards');
         $res = Helper_Db::update('users', array('pins' => new JO_Db_Expr('(SELECT COUNT(DISTINCT pin_id) FROM pins WHERE user_id = users.user_id ' . ($config_private_boards ? ' AND (public = 1 OR user_id = users.user_id)' : '') . ')'), 'boards' => new JO_Db_Expr('(SELECT COUNT(DISTINCT board_id) FROM boards WHERE user_id = users.user_id ' . ($config_private_boards ? ' AND (public = 1 OR user_id = users.user_id)' : '') . ')'), 'likes' => new JO_Db_Expr('(SELECT COUNT(DISTINCT pin_id) FROM pins_likes WHERE user_id = users.user_id)'), 'following' => new JO_Db_Expr('( (SELECT COUNT(DISTINCT following_id) FROM users_following_user WHERE user_id = users.user_id AND following_id != users.user_id LIMIT 1) + (SELECT COUNT(DISTINCT following_id) FROM users_following WHERE user_id = users.user_id AND following_id != users.user_id LIMIT 1) )'), 'followers' => new JO_Db_Expr('( (SELECT COUNT(DISTINCT user_id) FROM users_following_user WHERE following_id = users.user_id AND user_id != users.user_id LIMIT 1) + (SELECT COUNT(DISTINCT user_id) FROM users_following WHERE following_id = users.user_id AND user_id != users.user_id LIMIT 1) )'), 'latest_pins' => new JO_Db_Expr('( SUBSTRING_INDEX( (SELECT GROUP_CONCAT(pin_id ORDER BY `pin_id` DESC) FROM `pins` WHERE user_id = users.user_id), \',\', 15 ) )')), array('user_id = ?' => (string) $user_id));
         if (!$result) {
             $result = $res;
         }
         $this->affected_rows = $result;
         $db->commit();
     } catch (JO_Exception $e) {
         $db->rollBack();
     }
 }
Exemplo n.º 29
0
 public static function delete($board_id)
 {
     $board_info = self::getBoard($board_id);
     if (!$board_info) {
         return;
     }
     $deleted_pins = 0;
     $db = JO_Db::getDefaultAdapter();
     $pins_query = $db->select()->from('pins')->where('board_id = ?', $board_id);
     $pins = $db->fetchAll($pins_query);
     if ($pins) {
         foreach ($pins as $pin) {
             $deleted = Model_Pins::delete($pin['pin_id']);
             if ($deleted) {
                 $deleted_pins++;
             }
         }
     }
     $db->delete('users_following', array('board_id = ?' => $board_id));
     $db->delete('users_following_ignore', array('board_id = ?' => $board_id));
     $del_boards = $db->delete('boards', array('board_id = ?' => $board_id));
     $db->delete('users_boards', array('board_id = ?' => $board_id));
     $db->delete('users_history', array('board_id = ?' => $board_id));
     $db->query("DELETE FROM url_alias WHERE query = 'board_id=" . $board_id . "'");
     /*$update = array(
     			'boards' => new JO_Db_Expr("(SELECT COUNT(board_id) FROM boards WHERE user_id = '".$board_info['user_id']."')")
     		);*/
     //$db->update('users', $update, array('user_id=?'=>$board_info['user_id']));
     Helper_Db::update('users', array('pins' => new JO_Db_Expr('(SELECT COUNT(DISTINCT pin_id) FROM pins WHERE user_id = users.user_id)'), 'boards' => new JO_Db_Expr('(SELECT COUNT(DISTINCT board_id) FROM boards WHERE user_id = users.user_id)'), 'likes' => new JO_Db_Expr('(SELECT COUNT(DISTINCT pin_id) FROM pins_likes WHERE user_id = users.user_id)'), 'following' => new JO_Db_Expr('( (SELECT COUNT(DISTINCT following_id) FROM users_following_user WHERE user_id = users.user_id AND following_id != users.user_id LIMIT 1) + (SELECT COUNT(DISTINCT user_id) FROM users_following WHERE user_id = users.user_id AND following_id != users.user_id LIMIT 1) )'), 'followers' => new JO_Db_Expr('( (SELECT COUNT(DISTINCT user_id) FROM users_following_user WHERE following_id = users.user_id AND user_id != users.user_id LIMIT 1) + (SELECT COUNT(DISTINCT user_id) FROM users_following WHERE following_id = users.user_id AND user_id != users.user_id LIMIT 1) )')), array('user_id=?' => $board_info['user_id']));
     Model_Users::updateLatestPins($board_info['user_id']);
     return $del_boards;
 }
Exemplo n.º 30
0
 public function setCache($key, $data)
 {
     $db = JO_Db::getDefaultAdapter();
     Helper_Db::delete('cache_index', array('start_limit = ?' => $key));
     return Helper_Db::insert('cache_index', array('start_limit' => $key, 'data' => $data));
 }