public function deleteMultiAction() { $this->setInvokeArg('noViewRenderer', true); if (!WM_Users::allow('delete', $this->getRequest()->getController())) { echo $this->translate('You do not have permission to this action'); } else { $action_check = $this->getRequest()->getPost('action_check'); if ($action_check && is_array($action_check)) { foreach ($action_check as $record_id) { Model_Pins::delete($record_id); } } } }
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; }
public function deleteAction() { $request = $this->getRequest(); $pin_id = $request->getRequest('pin_id'); $pin_info = Model_Pins::getPin($pin_id); if (!$pin_info) { $this->forward('error', 'error404'); } if ($pin_info['user_id'] != JO_Session::get('user[user_id]')) { $this->redirect(WM_Router::create($request->getBaseUrl() . '?controller=pin&pin_id=' . $pin_info['pin_id'])); } else { if (Model_Pins::delete($pin_id)) { $this->redirect(WM_Router::create($request->getBaseUrl() . '?controller=boards&user_id=' . $pin_info['user_id'] . '&board_id=' . $pin_info['board_id'])); } else { $this->redirect(WM_Router::create($request->getBaseUrl() . '?controller=pin&action=edit&pin_id=' . $pin_info['pin_id'])); } } }