public static function admin($params) { $format = Utils::getFormat($params['args'], 0, 2); $app_url = Settings::getProtected('app_url'); $db = Settings::getProtected('db'); $user = User::getAuthenticatedUser(); // Make sure the user is at least creator or admin RoleController::forceClearance(array('system.creator', 'system.admin'), $user); // Get latest work for the user's projects $latestWorkList = $db->getAdminProjectsLatestWork($user->username, 5); $latestWork = array(); foreach ($latestWorkList as $work) { $qn = $work['queue_name']; $type = substr($qn, strpos($qn, '.') + 1, strpos($qn, ':') - strpos($qn, '.') - 1); $username = substr($qn, strpos($qn, ':') + 1); $item = new Item($work['item_id'], $work['project_slug']); $project = new Project($work['project_slug']); if ($item->project_type == 'system') { $transcriptURL = "{$app_url}/projects/" . $item->project_slug . "/items/" . $item->item_id . "/{$type}/{$username}"; $editURL = "{$app_url}/projects/" . $item->project_slug . "/items/" . $item->item_id . "/edit"; } else { $transcriptURL = "{$app_url}/" . $item->project_owner . "/projects/" . $item->project_slug . "/items/" . $item->item_id . "/{$type}/{$username}"; $editURL = "{$app_url}/" . $item->project_owner . "/projects/" . $item->project_slug . "/items/" . $item->item_id . "/edit"; } array_push($latestWork, array('item' => $item->getResponse(), 'project' => $project->getResponse(), 'type' => $type, 'username' => $username, 'date_completed' => $work['date_completed'], 'transcript_url' => $transcriptURL, 'edit_url' => $editURL)); } $newestMembers = $db->getNewestProjectMembers($user->username, 5); // Only get list of users if they're a site admin $users = array(); if ($user->role == 'admin') { $usernameList = $db->getUsers(); foreach ($usernameList as $username) { $tempUser = new User($username['username']); $tempUserArray = $tempUser->getResponse(); // Get list of projects they're working on $projects = $db->getUserProjectsWithStats($username['username']); $tempUserArray['projects'] = $projects; array_push($users, $tempUserArray); } } $response = array('page_title' => 'Admin Dashboard', 'user' => $user->getResponse(), 'latest_work' => $latestWork, 'newest_members' => $newestMembers, 'users' => $users); switch ($format) { case 'json': echo json_encode($response); break; case 'html': Template::render('admin_dashboard', $response); break; } }
public function LogoutAction() { Project::getSecurityManager()->logout(); Project::getResponse()->redirect(Project::getRequest()->createUrl(null, 'LoginForm')); }
public function checkForUserBans($user) { $banHistoryModel = new BanHistoryModel(); $paramModel = new ParamModel(); if ($user['banned'] || $banHistoryModel->isBanned($user['id'])) { // если забанен , проверить может уже все $t_ban_time_sec = $paramModel->getParam("UserController", "T_BAN_TIME_SEC"); if (time() > $user['banned_date'] + $t_ban_time_sec) { $this->load($user['id']); $this->banned = 0; $this->save(); $banHistoryModel->unban($user['id'], 1); } else { Project::getSecurityManager()->logout(); Project::getResponse()->redirect(Project::getRequest()->createUrl('User', 'Login', null, false) . "/error:ban/login:" . $user['login']); } } }
/** * Action: Оценка соц.позиции */ public function SocialVoteAddAction() { $v_request = Project::getRequest(); $v_sp_id = $v_request->getKeyByNumber(0); if ((int) $v_sp_id > 0) { $this->_SetVote($v_sp_id, $v_request->inp_criteria_id_1, $v_request->inp_select_1); $this->_SetVote($v_sp_id, $v_request->inp_criteria_id_2, $v_request->inp_select_2); $this->_SetVote($v_sp_id, $v_request->inp_criteria_id_3, $v_request->inp_select_3); // = Запись в таблицу локировки голосования $v_sp_votes_model = new SocialVotesModel(); $v_sp_votes_model->social_pos_id = $v_sp_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', 'SocialView', array($v_sp_id))); }
public function SaveSubjectAction() { $request = Project::getRequest(); $article_model = new ArticleModel(); if (count($article_model->loadByParentId(0, array(ARTICLE_COMPETITION_STATUS::NEW_ARTICLE), Project::getUser()->getDbUser()->id)) < 5) { $article_model->title = $request->title; $article_model->articles_tree_id = $request->parent_id; $article_model->user_id = Project::getUser()->getDbUser()->id; $article_model->rate_status = ARTICLE_COMPETITION_STATUS::NEW_ARTICLE; $article_model->creation_date = date("Y-m-d H:i:s"); $article_model->save(); } Project::getResponse()->redirect($request->createUrl('Article', 'CompetitionCatalog')); }
function CatalogDeleteTagAction() { $request = Project::getRequest(); $catalog_id = (int) $request->getKeyByNumber(0); $page_number = (int) $request->getKeyByNumber(1); $tag_page_number = (int) $request->getKeyByNumber(2); $tag_id = (int) $request->getKeyByNumber(3); $tag_model = new BlogTagModelSocieties(); $tag_model->delete($tag_id); Project::getResponse()->redirect($request->createUrl('BlogAdminSocieties', 'CatalogEdit', array($catalog_id, $page_number, $tag_page_number))); }
/** * Action: Импортирование закладок - процесс заливания */ public function BookmarksImportMakeAction() { $v_request = Project::getRequest(); $data = array(); //$this->_BaseSiteData($data); $data['action'] = 'BookmarksImportMake'; $data['import_make_url'] = $v_request->createUrl('Bookmarks', 'BookmarksImportMake'); // Процесс обработки файла // Проверка на ошибку if ($_FILES['inp_file']['error'] == UPLOAD_ERR_FORM_SIZE) { $this->_view->addFlashMessage(FM::ERROR, "Размер загружаемого файла слишком велик."); $this->BookmarksImportFormAction(); return; } if ($_FILES['inp_file']['error'] == 0 and $_FILES['inp_file']['size'] < self::C_MAX_FILE_UPLOAD_SIZE) { // Ошибок нет и размер в границах $v_return = $this->_ImportProcess($_FILES['inp_file']['tmp_name']); if ($v_return == 1) { $this->_view->addFlashMessage(FM::ERROR, "Загружаемый файл не является файлом закладок."); $this->BookmarksImportFormAction(); return; } $this->BookmarksImportFormAction(true); return; } Project::getResponse()->redirect($v_request->createUrl('Bookmarks', 'BookmarksUser')); }
public function SetCompetitionAction() { $request = Project::getRequest(); if ($request->sub == 0) { $id = (int) $request->getKeyByNumber(0); $article_tree_model = new ArticleTreeModel(); $data['node'] = $article_tree_model->load($id); $this->_view->SetCompetition($data); $this->_view->ajax(); } else { $article_comp_model = new ArticleCompetitionModel(); $articleTreeId = (int) $request->article_tree_id; $dataBegin = $request->data_begin; $dataEnd = $request->data_end; $art = $article_comp_model->loadWhere($articleTreeId, $dataBegin, $dataEnd); var_dump($art); if (count($art) <= 0) { $article_comp_model->id_article_tree = (int) $request->id; $article_comp_model->data_begin = $dataBegin; $article_comp_model->data_end = $dataEnd; $article_comp_model->reward = $request->reward; $article_comp_model->save(); } Project::getResponse()->redirect($request->createUrl('AdminArticle', 'ShowTree')); } }
public function DebateDelThemeAction() { $debateModel = new DebateModel(); $request = Project::getRequest(); $user = Project::getUser()->getDbUser(); $isAdmin = $user->user_type_id == 1 ? true : false; $theme_id = $request->theme_id; $theme = $debateModel->getThemeById($theme_id); if ($theme && ($isAdmin || $theme['user_id'] == $user->id)) { $debateModel->deleteTheme($theme_id); } Project::getResponse()->redirect(Project::getRequest()->createUrl('Debate', 'Debate')); }
protected function checkOfficeAccess() { if (!Project::getUser()->isMyArea()) { Project::getResponse()->redirect(Project::getRequest()->createUrl("User", "Profile")); } }
public function EditQuestionAction() { $request = Project::getRequest(); $id = $request->getKeyByNumber(0); $data = array(); if (!$request->getKeyByNumber(1)) { if ($id > 0) { $model = new QuestionModel(); $cat_model = new QuestionCatModel(); $tag_model = new QuestionTagModel(); $data['question'] = $model->load($id); $data['cat_list'] = $cat_model->loadAll(); $tags_model = new QuestionTagModel(); $tags = $tags_model->loadWhere(null, null, $id); foreach ($tags as $tag) { $data['tags'] .= $tag['name'] . ', '; } $data['tags'] = rtrim($data['tags'], ', '); $this->BaseAdminData(); $this->_view->EditQuestion($data); $this->_view->ajax(); } } else { if ($id > 0) { $model = new QuestionModel(); $model->load($id); $model->q_text = $request->question_text; $model->questions_cat_id = (int) $request->cat_id; $id = $model->save(); $tag_model = new QuestionTagModel(); $question_tag_model = new QTagModel(); $tags_ar = array(); $tags_ar = explode(",", $request->tags); foreach ($tags_ar as $tag) { $tag = trim($tag); if (count($tag_model->loadByName($tag)) > 0) { if (count($question_tag_model->loadWhere($id, $tag_model->id)) <= 0) { $question_tag_model->question_id = $id; $question_tag_model->question_tag_id = $tag_model->id; $question_tag_model->save(); $question_tag_model->clear(); } } else { $tag_model->name = $tag; $tag_id = $tag_model->save(); $tag_model->clear(); $question_tag_model->question_id = $id; $question_tag_model->question_tag_id = $tag_id; $question_tag_model->save(); $question_tag_model->clear(); } } } Project::getResponse()->Redirect($request->createUrl('AdminQuestionAnswer', 'QuestionList')); } }
public function EditCommentAction() { $request = Project::getRequest(); $user = Project::getUser()->getDbUser(); $isAdmin = $user->user_type_id == 1 ? true : false; $item_name = $request->item_name; switch ($item_name) { case 'article': $item_controller = 'Article'; $item_action = 'ArticleView'; break; case 'questions': $item_controller = 'QuestionAnswer'; $item_action = 'ViewQuestion'; break; case 'photo': $item_controller = 'Photo'; $item_action = 'View'; break; case 'bookmarks': $item_controller = 'Bookmarks'; $item_action = 'BookmarksView'; break; case 'social': $item_controller = 'Social'; $item_action = 'SocialView'; break; case 'blog': $item_controller = 'Blog'; $item_action = 'Comments'; break; } $comment_model = new CommentModel($item_name . '_comment', $item_name . '_id', $request->comment_id); if ($request->change_comment && ($isAdmin || $comment_model->user_id == $user->id)) { $warning_id = 0; if ($request->warning_text) { $warningModel = new WarningModel(); $warning_id = $warningModel->add($comment_model->user_id, $request->warning_text); } $comment_model->editComment($comment_model->user_id, $warning_id, $request->editCommentArea, (int) $isAdmin); } Project::getResponse()->redirect($request->createUrl($item_controller, $item_action, array($request->element_id))); }
function ActionDeleteAction() { if ($this->request->id) { $a = new ActionModel(); $a->delete($this->request->id); } Project::getResponse()->redirect($this->request->createUrl('Dev', 'Actions', array('cid' => $this->request->cid))); }
public function addDesktopAction() { $v_request = Project::getRequest(); $v_session = Project::getSession(); if ($v_request->action == 'change') { $userModel = new UserModel(); $desktops = unserialize($userModel->getDesktops()); $desktops[$v_request->d] = $v_request->vklad_name; $desktops = serialize($desktops); $userModel->addDesktop($desktops); } elseif ($v_request->action == 'del') { $userModel = new UserModel(); $desktops = unserialize($userModel->getDesktops()); unset($desktops[$v_request->d]); $desktops = serialize($desktops); $userModel->addDesktop($desktops); } else { $request_keys = $v_request->getKeys(); $userModel = new UserModel(); $desktops = unserialize($userModel->getDesktops()); //$desktops[] = $v_request['tab_name']; $desktops[] = 'Новая вкладка'; $desktops = serialize($desktops); $userModel->addDesktop($desktops); } if ($v_request->d) { Project::getResponse()->redirect(Project::getRequest()->createUrl("Index", "Index", array('d' => $v_request->d))); } else { Project::getResponse()->redirect(Project::getRequest()->createUrl("Index", "Index")); } }
public function DeleteAction() { $request = Project::getRequest(); $user_id = (int) Project::getUser()->getDbUser()->id; $question_model = new QuestionModel(); $question_model->load($request->getKeyByNumber(0)); if ($question_model->user_id == $user_id) { $question_model->delete($request->getKeyByNumber(0)); } Project::getResponse()->redirect($request->createUrl('QuestionAnswer', 'UserQuestions')); }
public static function import($params) { $appUrl = Settings::getProtected('app_url'); $themeRoot = Settings::getProtected('theme_root'); $format = Utils::getFormat($params['args'], 1, 3); $projectType = Utils::getProjectType($params['args']); $projectSlug = $projectType == 'system' ? $params['args'][0] : $params['args'][2]; $user = User::getAuthenticatedUser(); // Load the project $project = new Project($projectSlug); RoleController::forceClearance(array('project.admin', 'project.owner', 'system.admin'), $user, array('project' => $project)); if ($project->title == '') { Utils::redirectToDashboard('', 'Error loading project.'); } if ($project->type == 'system') { $projectUrl = "projects/" . $project->slug; } else { if ($project->type == 'user') { $projectUrl = "users/" . $project->owner . "/projects/" . $project->slug; } } $project->getItems(); $projectArray = $project->getResponse(); $projectArray['items'] = $project->items; $projectArray['url'] = "{$appUrl}/{$projectUrl}"; switch ($params['method']) { // GET: Get transcript import page case 'GET': $response = array('page_title' => 'Import Transcript', 'user' => $user->getResponse(), 'project' => $projectArray); switch ($format) { case 'json': echo json_encode(array('status' => 'success', 'response' => $response)); break; case 'html': Template::render('import', $response); break; } break; // POST: Update transcripts for items // POST: Update transcripts for items case 'POST': $template = Utils::POST('template'); $transcript = Utils::POST('transcript'); $items = Utils::POST('items'); $projectSlug = Utils::POST('projectSlug'); $status = 'success'; // Split the transcript $splitTranscripts = TranscriptController::splitTranscript($transcript, $template); // Make sure the number of items still matches, otherwise return error if (count($splitTranscripts) != count($items)) { $status = 'error'; } // Update each item's transcript for ($i = 0; $i < count($items); $i++) { $item = new Item($items[$i], $projectSlug); $item->transcript = $splitTranscripts[$i]; if (!$item->save()) { $status = 'error'; break; } } echo json_encode(array('status' => $status)); break; } }
function DeleteParamAction() { $request = Project::getRequest(); $model = new ParamModel(); $model->delete($request->id); Project::getResponse()->redirect($request->createUrl('AdminParameter', 'EditGroup', array('id' => $request->cid))); }
public static function itemProof($params) { $i18n = Settings::getProtected('i18n'); $format = Utils::getFormat($params['args'], 0, 2); $projectType = Utils::getProjectType($params['args']); $projectSlugIndex = $projectType == 'system' ? 0 : 2; $projectSlug = $params['args'][$projectSlugIndex]; $project = new Project($projectSlug); $itemIndex = $projectType == 'system' ? 1 : 3; $itemId = $params['args'][$itemIndex]; $proofTypeIndex = $projectType == 'system' ? 2 : 4; $proofType = $params['args'][$proofTypeIndex]; $role = $proofType . "er"; $proofUserIndex = $projectType == 'system' ? 3 : 5; $proofUser = array_key_exists($proofUserIndex, $params['args']) ? $params['args'][$proofUserIndex] : ''; $owner = $projectType == 'user' ? $params['args'][1] : ''; $user = User::getAuthenticatedUser(); switch ($params['method']) { // GET: Get proof/review/edit page for this item case 'GET': // Make sure they have access to the item if ($proofType == 'edit' || $proofUser != '') { // For editing an item or a specific proof/review, user must be project admin or site admin RoleController::forceClearance(array('project.admin', 'project.owner', 'system.admin'), $user, array('project' => $project)); } else { // User has to be a member of the project if (!$user->isMember($projectSlug, $role)) { Utils::redirectToDashboard("", $i18n->t("error.not_a_member")); return; } } // If we're looking at an existing proof/review, load it for that user // Otherwise load it for the existing user $username = $proofUser != '' ? $proofUser : $user->username; // Load the item $itemObj = new Item($itemId, $projectSlug, $username, $proofType); // Make sure it exists (if it fails, it'll return a boolean) if ($itemObj->item_id == -1) { Utils::redirectToDashboard("", $i18n->t("error.nonexistent_item")); return; } $alreadyFinished = false; $moreToProof = false; if ($proofType != 'edit' && $proofUser == '') { // If it's not in their current queue, they're editing it after finishing it // TODO: Make this part more elegant $userCurrentQueue = new Queue("user.{$proofType}:{$user->username}", false); $userCurrentQueueItems = $userCurrentQueue->getItems(); if (!in_array($itemObj, $userCurrentQueueItems)) { $alreadyFinished = true; } // And if it's not in their full queue, they never had it and shouldn't be allowed to proof it $userQueue = new Queue("user.{$proofType}:{$user->username}", false, array('include-removed' => true)); $userQueueItems = $userQueue->getItems(); if (!in_array($itemObj, $userQueueItems)) { Utils::redirectToDashboard("", $i18n->t("error.insufficient_rights")); return; } // See if there are any items left for us to proof $queue = new Queue("project.{$proofType}:{$projectSlug}"); foreach ($queue->getItems() as $item) { if (!in_array($item, $userQueueItems)) { $moreToProof = true; break; } } } $item = array(); $item['id'] = $itemId; $item['title'] = $itemObj->title; // If the user has a transcript for this item, load it instead if ($itemObj->userTranscript && trim($itemObj->userTranscript['transcript']) != '') { $transcript = trim($itemObj->userTranscript['transcript']); } else { $transcript = trim($itemObj->transcript); } $item['transcript'] = stripslashes($transcript); // Get fields, if any if ($itemObj->userTranscript && trim($itemObj->userTranscript['fields']) != '') { $itemFields = json_decode(trim($itemObj->userTranscript['fields']), true); } else { $itemFields = array(); } $item['fields'] = $itemFields; // Prepare the URL $appUrl = Settings::getProtected('app_url'); if ($projectType == 'system') { $projectUrl = "projects/{$projectSlug}"; } else { if ($projectType == 'user') { $projectUrl = "users/{$owner}/{$projectSlug}"; } } $item['href'] = $projectUrl . "/" . $itemObj->href; // Get template type $templateType = $itemObj->type; // Get project fields and parse out $fields = array(); $fieldsText = trim($project->fields); if ($fieldsText != '') { $fieldsLines = explode("\n", $fieldsText); foreach ($fieldsLines as $line) { $fieldLabel = ''; $fieldType = ''; $fieldValues = array(); // Split it by label and type/parameters list($fieldLabel, $fieldSettings) = array_map('trim', explode(":", $line)); if (strpos($fieldSettings, ' - ') == FALSE) { $fieldType = trim($fieldSettings); } else { list($fieldType, $fieldValueStr) = array_map('trim', explode(" - ", $fieldSettings)); $fieldValues = explode(" | ", $fieldValueStr); } // Reformat the field ID $fieldId = str_replace(" ", "_", strtolower($fieldLabel)); $field = array('id' => $fieldId, 'label' => $fieldLabel, 'type' => $fieldType, 'values' => $fieldValues); array_push($fields, $field); } } // Get any editor-specific config settings $editors = Settings::getProtected('editors'); $editorOptions = array_key_exists($templateType, $editors) ? $editors[$templateType] : array(); $pageTitle = ucfirst($proofType) . " " . $item['title']; if ($proofUser) { $pageTitle .= " ({$proofUser})"; } $pageTitle .= " | " . $project->title; // Display the template $options = array('page_title' => $pageTitle, 'user' => $user->getResponse(), 'item' => $item, 'project' => $project->getResponse(), 'more_to_proof' => $moreToProof, 'already_finished' => $alreadyFinished, 'editor_options' => $editorOptions, 'editor_type' => $templateType, 'proof_user' => $proofUser, 'proof_type' => $proofType, 'fields' => $fields, 'css' => array("editors/{$templateType}/{$templateType}.css"), 'js' => array("editors/{$templateType}/{$templateType}.js")); Template::render("editors/{$templateType}", $options); break; } }
public function ListSaveAction() { $request_user_id = (int) Project::getUser()->getShowedUser()->id; $user_id = (int) Project::getUser()->getDbUser()->id; $login = Project::getUser()->getDbUser()->login; $request = Project::getRequest(); if ($user_id !== $request_user_id) { // Can't save somebody's album $this->ListAction(); return; } $album = USER_UPLOAD_DIR . DIRECTORY_SEPARATOR . $login . DIRECTORY_SEPARATOR . 'album' . DIRECTORY_SEPARATOR; $thumbs = $album . 'thumbs' . DIRECTORY_SEPARATOR; $images = $album . 'images' . DIRECTORY_SEPARATOR; clearstatcache(); if (is_array($request->album_id)) { foreach ($request->album_id as $album_id) { $album_model = new AlbumModel(); $album_model->load($album_id); // Проверка, является ли пользователем владельцем альбома if ((int) $album_model->id > 0 && (int) $album_model->user_id === $user_id) { if (isset($request->delete[$album_id])) { // Delete album $photo_model = new PhotoModel(); $list = $photo_model->loadByAlbum($album_id); foreach ($list as $item) { $f = $thumbs . $item['path']; if (file_exists($f) && is_file($f)) { unlink($f); } $f = $images . $item['thumbnail']; if (file_exists($f) && is_file($f)) { unlink($f); } $photo_model->delete($item['id']); } $album_model->delete($album_id); } else { $album_model->is_onmain = isset($request->is_onmain[$album_id]) ? 1 : 0; $album_model->access = isset($request->album_access[$album_id]) ? $request->album_access[$album_id] : ACCESS::MYSELF; $album_model->name = isset($request->album_name[$album_id]) ? $request->album_name[$album_id] : $album_model->name; $album_model->save(); } } } } Project::getResponse()->redirect($request->createUrl('Album', 'List')); }
public function SubscribeNewsAction() { $request = Project::getRequest(); if ($request->subscribe) { $newsModel = new NewsModel(); $user = Project::getUser()->getDbUser(); $newsModel->setNewsSubscribe($user->id, $request->news_tree_feeds); } Project::getResponse()->redirect(Project::getRequest()->createUrl('News', 'News')); }
public function AddEntityAction() { $request = Project::getRequest(); $this->setViewVars(); $this->setFormParams(); $geo_type = new GeoTypeModel(); $geo_type->load($this->session->geo_type_id); $this->_view->assign('geo_type_name', $geo_type->name); $city = new CityModel(); $city->load($this->session->city_id); $this->_view->assign('city_name', $city->name); $country = new CountryModel(); $country->load($this->session->country_id); $this->_view->assign('country_name', $country->name); $place = new GeoPlaceModel(); $place->loadById($this->session->geo_place_id); $this->_view->assign('place_name', $place->name); // Creating type if ($request->create_type) { $this->_view->clearFlashMessages(); if ($request->type_name) { // Creating type $obj = new GeoSubtypeModel(); $obj->name = htmlspecialchars($request->type_name); $obj->geo_type_id = $this->session->geo_type_id; $obj->save(); Project::getResponse()->redirect(Project::getRequest()->createUrl("Places", "Index")); } else { $this->_view->addFlashMessage(FM::ERROR, 'Введите название типа'); } } // Creating place if ($request->create_place) { $this->_view->clearFlashMessages(); if ($request->place_name) { // Creating type $obj = new GeoPlaceModel(); $obj->name = htmlspecialchars($request->place_name); $obj->geo_subtype_id = $this->session->geo_subtype_id; $obj->city_id = $this->session->city_id; $obj->user_id = $this->user->id; $obj->creation_date = date("Y-m-d H:i:s"); $obj->save(); Project::getResponse()->redirect(Project::getRequest()->createUrl("Places", "Index")); } else { $this->_view->addFlashMessage(FM::ERROR, 'Введите название места'); } } // Adding place to user if ($request->create_object_at_user) { $obj = new UsersGeoPlaceModel(); $obj->user_id = $this->user->id; $obj->geo_place_id = $this->session->geo_place_id; $obj->date_start = htmlspecialchars($request->year_begin); $obj->date_end = htmlspecialchars($request->year_end); $obj->surname = htmlspecialchars($request->surname); $obj->save(); Project::getResponse()->redirect(Project::getRequest()->createUrl("Places", "Index")); } // Editing place at user if ($request->edit_object_at_user) { $obj = new UsersGeoPlaceModel(); $obj->load($request->id); $obj->date_start = htmlspecialchars($request->year_begin); $obj->date_end = htmlspecialchars($request->year_end); $obj->surname = htmlspecialchars($request->surname); $obj->save(); Project::getResponse()->redirect(Project::getRequest()->createUrl("Places", "Index")); } $this->_view->ListPlaces(); $this->_view->parse(); }
function DoSubscribeAction() { $request = Project::getRequest(); $request_user_id = (int) Project::getUser()->getShowedUser()->id; $user_id = (int) Project::getUser()->getDbUser()->id; if ($user_id) { $subscribeModel = new BlogSubscribeModel(); $subscribe_id = $subscribeModel->isSubscribed($user_id, $request->tree_id); $subscribeModel->load($subscribe_id); if ($subscribeModel->id) { $subscribeModel->delete($subscribe_id); } else { $subscribeModel->user_id = $user_id; $subscribeModel->ub_tree_id = $request->tree_id; $subscribeModel->save(); } } Project::getResponse()->redirect($_SERVER['HTTP_REFERER']); }
public function messageDeleteAction() { $model = new GroupsModel(); $model->deleteMessage($this->request['mid']); Project::getResponse()->redirect(Project::getRequest()->createUrl('Groups', 'messagesView') . '/pid:' . $this->request['pid'] . '/tid:' . $this->request['tid']); }
public function ChangeRelationAction() { $request = Project::getRequest(); $relation = new RelationsModel(); $user = Project::getUser()->getShowedUser(); $relation->setRelation($this->_view->current_user->id, $user->id, $request->relation_text); // Send message $m = new MessagesController(); $m->sendMessage('Отношение', 'Пользователь ' . $this->_view->current_user->login . ' указал свое отношение к вам. Чтобы просмотреть что именно было указано, <a href="' . $request->createUrl('User', 'Profile', null, $this->_view->current_user->login) . '">перейдите в профиль пользователя ' . $this->_view->current_user->login . '</a>.', $this->_view->current_user->id, $user->id, 0, 0, 0, 1); // ------------ Project::getResponse()->redirect(Project::getRequest()->createUrl("User", "Profile")); }
public function SaveAction() { $request_user_id = (int) Project::getUser()->getShowedUser()->id; $user_id = (int) Project::getUser()->getDbUser()->id; $login = Project::getUser()->getDbUser()->login; $request = Project::getRequest(); $album = USER_UPLOAD_DIR . DIRECTORY_SEPARATOR . $login . DIRECTORY_SEPARATOR . 'album' . DIRECTORY_SEPARATOR; $thumbs = $album . 'thumbs' . DIRECTORY_SEPARATOR; $images = $album . 'images' . DIRECTORY_SEPARATOR; clearstatcache(); $album_id = 0; if (is_array($request->photo_id)) { foreach ($request->photo_id as $photo_id) { $photo_id = (int) $photo_id; $photo_model = new PhotoModel(); $photo_model->load($photo_id); // Проверка, является ли пользователем владельцем альбома if ((int) $photo_model->id > 0 && (int) $photo_model->user_id === $user_id) { if (isset($request->photo_del[$photo_id])) { // Delete album $f = $thumbs . $photo_model->path; if (file_exists($f) && is_file($f)) { unlink($f); } $f = $images . $photo_model->thumbnail; if (file_exists($f) && is_file($f)) { unlink($f); } $photo_model->delete($photo_id); } else { $photo_model->is_rating = isset($request->is_rating[$photo_id]) ? 1 : 0; $photo_model->is_onmain = isset($request->is_onmain[$photo_id]) ? 1 : 0; $photo_model->access = (int) $request->photo_access[$photo_id]; $photo_model->name = isset($request->photo_name[$photo_id]) ? $request->photo_name[$photo_id] : $photo_model->name; $photo_model->save(); if ($album_id == 0) { $album_id = (int) $photo_model->album_id; } } } } } if ($album_id > 0) { $album_model = new AlbumModel(); $album_model->load($album_id); $album_model->thumbnail_id = (int) $request->thumb_photo; $album_model->save(); } Project::getResponse()->redirect($this->getAlbumUrl($album_id, $login)); }
public function FriendAction() { $request = Project::getRequest(); $this->_view->clearFlashMessages(); $user = Project::getUser()->getDbUser(); $userModel = new UserModel(); $friendModel = new FriendModel(); $messagesModel = new MessagesModel(); $isDefAction = true; //$this -> _view -> addFlashMessage(FM::ERROR, "Выберите из списка друзей или введите имя вручную"); if ($request->messageAction == "changeGroup") { $group_id = $request->group_id; $friendGroup = $friendModel->getFriendGroupById($group_id); if ($friendGroup) { $isDefAction = false; if ($request->save_group) { $group_name = $request->group_name; if (!$friendModel->isDublicateGroup($user->id, htmlspecialchars($group_name))) { $friendModel->changeOneValue('friend_group', $group_id, 'name', htmlspecialchars($group_name)); Project::getResponse()->redirect(Project::getRequest()->createUrl('Messages', 'Friend')); } else { $this->_view->addFlashMessage(FM::ERROR, "Группа с таким именем уже существует"); } } elseif ($request->del_group) { $friendModel->changeFriendsGroup($user->id, $group_id, 0); $friendModel->delOneRecord('friend_group', $group_id); Project::getResponse()->redirect(Project::getRequest()->createUrl('Messages', 'Friend')); } else { $group_name = $friendGroup['name']; } $this->_view->assign('pageAction', 'changeGroup'); $this->_view->assign('groupName', $group_name); } $this->_view->assign('group_id', $group_id); } elseif ($request->messageAction == "changeFriend") { $friend_table_id = $request->friend_table_id; $friend = $friendModel->getFriendById($friend_table_id); if ($friend) { if ($request->save_friend) { $friendModel->load($friend_table_id); $friendModel->group_id = $request->group_id; $friendModel->note = htmlspecialchars($request->note); $friendModel->save(); Project::getResponse()->redirect(Project::getRequest()->createUrl('Messages', 'Friend')); } $isDefAction = false; $this->_view->assign('pageAction', 'changeFriend'); $this->_view->assign('friend', $friend); $this->_view->assign('aFriendGroups', $friendModel->getUserFriendGroups($user->id)); } } elseif ($request->messageAction == "addGroupFriend") { if ($request->add_group) { if (!$friendModel->isDublicateGroup($user->id, htmlspecialchars($request->group_name))) { $friendModel->addFriendGroup($user->id, $request->group_name, null); Project::getResponse()->redirect(Project::getRequest()->createUrl('Messages', 'Friend')); } else { $this->_view->addFlashMessage(null, "Группа с таким именем уже существует"); } } elseif ($request->add_friend) { $friend = $userModel->getUserByLogin($request->friend_name); if ($friend && $friendModel->isFriend($user->id, $friend['id'])) { $this->_view->addFlashMessage(FM::ERROR, "Этот пользователь уже добавлен в Ваши друзья"); } elseif ($friend) { $friendModel->load(0); $friendModel->friend_id = $friend['id']; $friendModel->user_id = $user->id; $friendModel->group_id = 0; $friendModel->save(); Project::getResponse()->redirect(Project::getRequest()->createUrl('Messages', 'Friend')); } else { $this->_view->addFlashMessage(FM::ERROR, "Пользователя с таким именем нет"); } } } if ($isDefAction) { $this->_view->assign('pageAction', 'main'); } $aGroupMessagesCount = array(); $aGroupMessagesCount['all'] = array("new" => $messagesModel->getCountMessagesToUser($user->id, -1, 1, 0), "read" => $messagesModel->getCountMessagesToUser($user->id, -1, 1, 1)); $this->_view->assign('aGroupMessagesCount', $aGroupMessagesCount); $aFriendGroups = $friendModel->getUserFriendGroups($user->id); $this->_view->assign('tab_list', TabController::getOwnTabs(false, true, false, false, false, false, false, false, false, false)); $this->_view->assign('aFriendGroups', $aFriendGroups); $this->_view->assign('user_id', $user->id); $this->_view->FriendPage(); $this->_view->parse(); }