public static function create($data) { $db = JO_Db::getDefaultAdapter(); $rows = self::describeTable('users'); $date_added = WM_Date::format(time(), 'yy-mm-dd H:i:s'); $data['date_added'] = $date_added; $data['status'] = 1; $data['last_action_datetime'] = $date_added; $data['ip_address'] = JO_Request_Server::encode_ip(JO_Request::getInstance()->getClientIp()); $insert = array(); $avatar = ''; foreach ($rows as $row) { if (array_key_exists($row, $data)) { if ($row == 'avatar') { if ($data[$row]) { $avatar = $data[$row]; } else { //$insert[$row] = $data[$row]; } } elseif ($row == 'password') { $insert[$row] = md5($data[$row]); } elseif ($row == 'location') { if ($data[$row] != "Introduce tu ubicación") { $insert[$row] = $data[$row]; } } elseif ($row == 'firstname') { $insert[$row] = self::quotesFix($data[$row]); } elseif ($row == 'description') { $insert[$row] = self::quotesFix($data[$row]); } else { $insert[$row] = $data[$row]; } } } if (!$insert) { return false; } $insert['new_email'] = $insert['email']; $insert['store'] = JO_Registry::get('default_upload_method'); if (!$insert['store']) { $insert['store'] = 'locale'; } $db->insert('users', $insert); $user_id = $db->lastInsertId(); if (!$user_id) { return false; } if ($avatar) { ///// upload images $front = JO_Front::getInstance(); $request = JO_Request::getInstance(); $upload_model = Helper_Pin::formatUploadModule(JO_Registry::get('default_upload_method')); $upload_model_file = $front->getModuleDirectoryWithDefault($request->getModule()) . '/' . $front->classToFilename($upload_model); if (!file_exists($upload_model_file)) { $upload_model = Helper_Pin::formatUploadModule('locale'); $upload_model_file = $front->getModuleDirectoryWithDefault($request->getModule()) . '/' . $front->classToFilename($upload_model); } $image = false; if (file_exists($upload_model_file)) { $image = call_user_func(array($upload_model, 'uploadUserAvatar'), $avatar, $user_id); } if ($image) { $db->update('users', array('avatar' => $image['image'], 'store' => $image['store'], 'height' => $image['height'], 'width' => $image['width']), array('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')); $total_boards = 0; if (is_array(JO_Registry::forceGet('default_boards'))) { foreach (JO_Registry::get('default_boards') as $def) { $res = Model_Boards::createBoard(array('category_id' => $def['category_id'], 'title' => $def['title'], 'user_id' => (string) $user_id)); if ($res) { $total_boards++; } } $db->update('users', array('boards' => $total_boards), array('user_id = ?' => (string) $user_id)); } if (isset($data['delete_email']) && $data['delete_email']) { $db->delete('shared_content', array('email = ?' => $data['delete_email'])); } if (isset($data['delete_code']) && $data['delete_code']) { $db->delete('invate_facebook', array('if_id = ?' => (string) $data['delete_code'])); } if (isset($data['following_user']) && $data['following_user'] && $data['following_user'] != -1) { if ($db->insert('users_following_user', array('user_id' => (string) $user_id, 'following_id' => (string) $data['following_user']))) { /*$db->update('users', array( 'following' => new JO_Db_Expr('following+1') ), array('user_id = ?' => (string)$user_id)); $db->update('users', array( 'followers' => new JO_Db_Expr('followers+1') ), array('user_id = ?' => (string)$data['following_user']));*/ } if ($db->insert('users_following_user', array('user_id' => (string) $data['following_user'], 'following_id' => (string) $user_id))) { /*$db->update('users', array( 'following' => new JO_Db_Expr('following+1') ), array('user_id = ?' => (string)$data['following_user'])); $db->update('users', array( 'followers' => new JO_Db_Expr('followers+1') ), array('user_id = ?' => (string)$user_id));*/ } } $db->update('users', array('boards' => new JO_Db_Expr('(SELECT COUNT(DISTINCT board_id) FROM boards 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)'), '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)')), array('user_id = ?' => (string) $user_id)); if (isset($data['facebook_session']) && $data['facebook_session']) { $db->update('users', array('facebook_session' => is_array($data['facebook_session']) ? serialize($data['facebook_session']) : ''), array('user_id = ?' => (string) $user_id)); } return $user_id; }
public function createAction() { $request = $this->getRequest(); // if(!$request->isXmlHttpRequest()) { // $this->forward('error', 'error404'); // } if ($request->isPost()) { if (JO_Session::get('user[user_id]')) { if (trim($request->getPost('newboard'))) { if (trim($request->getPost('newboard')) != $this->translate('Nombre de la carpeta') && trim($request->getPost('newboard')) != $this->translate('Create New Board')) { if (trim($request->getPost('category_id'))) { $data = Model_Boards::createBoard(array('title' => trim($request->getPost('newboard')), 'category_id' => $request->getPost('category_id'), 'friends' => $request->getPost('friends'))); if ($data) { if (is_array($request->getPost('friends'))) { foreach ($request->getPost('friends') as $fr) { $this->view->uinfo = Model_Users::getUser($fr); $this->view->board_href = $data['href'] = WM_Router::create($request->getBaseUrl() . '?controller=boards&action=view&user_id=' . JO_Session::get('user[user_id]') . '&board_id=' . $data['board_id']); $this->view->board_name = trim($request->getPost('newboard')); $this->view->author_href = $data['href'] = WM_Router::create($request->getBaseUrl() . '?controller=users&action=profile&user_id=' . JO_Session::get('user[user_id]')); $this->view->author_name = JO_Session::get('firstname') . ' ' . JO_Session::get('lastname'); // print_R(JO_Session::getAll()); $result = Model_Email::send($this->view->uinfo['email'], JO_Registry::get('noreply_mail'), $this->translate('You have been invited to pin on ' . trim($request->getPost('newboard'))), $this->view->render('board_invite', 'mail')); } } Model_History::addHistory(0, Model_History::ADDBOARD, 0, $data['board_id']); $data['href'] = WM_Router::create($request->getBaseUrl() . '?controller=boards&action=view&user_id=' . JO_Session::get('user[user_id]') . '&board_id=' . $data['board_id']); $this->view->data = $data; } else { $this->view->error = $this->translate('There was a problem with the record. Please try again!'); } } else { $this->view->error = $this->translate('Debe seleccionar una categoría para la carpeta'); } } else { $this->view->error = $this->translate('Board name must not be empty!'); } } else { $this->view->error = $this->translate('Board name must not be empty!'); } } else { $this->view->error = 'error login'; } echo $this->renderScript('json'); } else { $avatar = Helper_Uploadimages::avatar(JO_Session::get('user'), '_A'); $this->view->avatar = $avatar['image']; $this->view->fullname = JO_Session::get('user[fullname]'); $this->view->userhref = WM_Router::create($request->getBaseUrl() . '?controller=users&action=profile&user_id=' . JO_Session::get('user[user_id]')); $this->view->friends_href = WM_Router::create($request->getBaseUrl() . '?controller=users&action=friends'); $this->view->form_action = WM_Router::create($request->getBaseUrl() . '?controller=boards&action=create'); //////////// Categories //////////// $this->view->categories = array(); $categories = Model_Categories::getCategories(array('filter_status' => 1)); foreach ($categories as $category) { $category['subcategories'] = Model_Categories::getSubcategories($category['category_id']); $this->view->categories[] = $category; } $this->view->popup_main_box = $this->view->render('popup_form', 'boards'); $this->setViewChange('form'); if ($request->isXmlHttpRequest()) { $this->view->popup = true; echo $this->view->popup_main_box; $this->noViewRenderer(true); } else { $this->view->children = array('header_part' => 'layout/header_part', 'footer_part' => 'layout/footer_part', 'left_part' => 'layout/left_part'); } } }