/** * Action: Открытие формы создания соц.позиции */ public function SocialPosAddAction() { $v_request = Project::getRequest(); $data = array(); $data['action'] = 'SocialPosAdd'; $v_current_userID = Project::getUser()->getDbUser()->id; // ID залогиненного пользователя $v_sp_model = new SocialModel(); $data['arr_social_tree_criteria'] = $v_sp_model->loadTreeCriteria(); $data['arr_categories'] = $v_sp_model->loadCategories(); //$this->_BaseSiteData($data); if ($v_request->btn_submit == null) { // -- Открытие формы для создания $country_model = new CountryModel(); $country_list = $country_model->loadAll(); $this->_get_categories($data, $v_categoryID); $change_country_param = AjaxRequest::getJsonParam("Social", "ChangeCountry", array('#id#')); $this->_view->assign('country_list', $country_list); $this->_view->assign('change_country_param', $change_country_param); $this->_view->__set('product_places', $v_sp_model->getProductPlaces()); $this->_view->assign('tab_list', TabController::getSocialTabs(false, false, false, true)); // Show tabs $this->_view->Social_PosAdd($data); $this->_view->parse(); } else { // -- Анализ данных и сохранение if ($v_request->inp_sp_name == "" or $v_request->inp_sp_comment == "") { // -- Данные неполные $data['inp_sp_name'] = $v_request->inp_sp_name; $data['inp_sp_comment'] = $v_request->inp_sp_comment; $this->_view->Social_PosAdd($data); $this->_view->addFlashMessage(FM::ERROR, 'Поля " * " должны быть заполнены'); $this->_view->assign('tab_list', TabController::getSocialTabs(false, false, false, true)); // Show tabs $this->_view->parse(); } else { // -- Сохранение данных $v_model = new SocialModel(); $v_model->social_tree_id = $v_request->inp_sp_category; $v_model->user_id = $v_current_userID; $v_model->name = $v_request->inp_sp_name; $v_model->creation_date = date("Y-m-d H:i:s"); if ($v_request->type_prod) { $v_model->id_product = $v_request->id_product; } if ($v_request->type_place) { $country_model = new CountryModel(); $state_model = new StateModel(); $city_model = new CityModel(); $country = $country_model->getCountryNameById($v_request->country); if ($country) { $country .= ', '; } $state = $state_model->getStateNameById($v_request->select_social_state); if ($state) { $state .= ', '; } $city = $city_model->getCityNameById($v_request->select_social_city); if ($city) { $city .= ', '; } $street = $v_request->street; if ($street) { $street .= ', '; } $house = $v_request->house; if ($house) { $house .= ', '; } $address = urlencode($country . $state . $city . $street . $house); //echo $address; $Coords = file_get_contents('http://maps.google.com/maps/geo?q=' . $address . '&output=csv&key=ABQIAAAAIMN2iaCMFuGQ7iw1w3khQhRJcbERdBxj2ey4tItiMN02nh3_tBSPZ_cpbhowAtSVcVvvdpej4XMW1Q'); //home ABQIAAAAIMN2iaCMFuGQ7iw1w3khQhR-v9yHoD50evrZ-pbO1wgn-sHpRBTCwGDBW1h8fK3f31phKFZTanuxDA //site ABQIAAAAIMN2iaCMFuGQ7iw1w3khQhRJcbERdBxj2ey4tItiMN02nh3_tBSPZ_cpbhowAtSVcVvvdpej4XMW1Q list($status, $Zoom, $Xcoord, $Ycoord) = split(',', $Coords); if ($status == 200) { $v_model->Xcoord = $Xcoord; $v_model->Ycoord = $Ycoord; $v_model->Zoom = $Zoom; } } $v_new_id = $v_model->save(); // -- Сохранение коммента $v_comment_model = new SocialCommentModel(); $v_comment_model->addComment(Project::getUser()->getDbUser()->id, 0, 0, $v_new_id, $v_request->inp_sp_comment, 0, 0); // -- Сохранения связи соц.позиции и критериев $this->_SetVote($v_new_id, $v_request->inp_num_criteria_1, $v_request->inp_select_1); $this->_SetVote($v_new_id, $v_request->inp_num_criteria_2, $v_request->inp_select_2); $this->_SetVote($v_new_id, $v_request->inp_num_criteria_3, $v_request->inp_select_3); // = Запись в таблицу локировки голосования $v_sp_votes_model = new SocialVotesModel(); $v_sp_votes_model->social_pos_id = $v_new_id; $v_sp_votes_model->user_id = (int) Project::getUser()->getDbUser()->id; $v_sp_votes_model->ip = $_SERVER['REMOTE_ADDR']; $v_sp_votes_model->save(); Project::getResponse()->redirect($v_request->createUrl('Social', 'SocialUserList')); } } }
public function DeleteCommentAction() { $request = Project::getRequest(); $request_user_id = (int) Project::getUser()->getShowedUser()->id; $user = Project::getUser()->getDbUser(); $isAdmin = $user->user_type_id == 1 ? true : false; $user_id = (int) Project::getUser()->getDbUser()->id; $item_id = $request->getKeyByNumber(0); $comment_id = $request->getKeyByNumber(1); $item_name = $request->getKeyByNumber(2); $comment_model = new CommentModel($item_name . '_comment', $item_name . '_id', $comment_id); switch ($item_name) { case 'article': $item_model = new ArticleModel(); $item_controller = 'Article'; $item_action = 'ArticleView'; $item_name_id = $comment_model->article_id; break; case 'questions': $item_model = new QuestionModel(); $item_controller = 'QuestionAnswer'; $item_action = 'ViewQuestion'; $item_name_id = $comment_model->questions_id; break; case 'photo': $item_model = new PhotoModel(); $item_controller = 'Photo'; $item_action = 'View'; $item_name_id = $comment_model->photo_id; break; case 'bookmarks': $item_model = new BookmarksModel(); $item_controller = 'Bookmarks'; $item_action = 'BookmarksView'; $item_name_id = $comment_model->bookmarks_id; break; case 'social': $item_model = new SocialModel(); $item_controller = 'Social'; $item_action = 'SocialView'; $item_name_id = $comment_model->social_id; break; case 'blog': $item_model = new SocialModel(); $item_controller = 'Blog'; $item_action = 'Comments'; $item_name_id = $comment_model->blog_id; break; } $item_model->load($item_id); if ($comment_model->id > 0 && $item_model->id > 0 && $item_name_id == $item_model->id) { if ($comment_model->user_id == $user_id || $item_model->user_id == $user_id || $isAdmin) { $comment_model->delete($comment_model->user_id, $comment_id); $item_model->comments--; $item_model->save(); } } Project::getResponse()->redirect($request->createUrl($item_controller, $item_action, array($item_model->id))); }