request->isPost() and $this->security->checkToken()) { if ($form->isValid($this->request->getPost()) and $this->request->getPost('password') == $this->config->application->password) { $this->session->set('password', $this->request->getPost('password')); $this->response->redirect('rifiks'); $this->view->disable(); } else { $this->response->redirect('rifiks'); $this->view->disable(); } } else { $this->response->redirect('rifiks'); $this->view->disable(); } } public function autAction() { $form = new Contrario\Forms\RifiksForm(); $this->view->form = $form; } public function exitAction() { $this->session->remove('password'); $this->response->redirect(); $this->view->disable(); } public function addAction() { $form = new Contrario\Forms\AddForm(); $this->view->form = $form; } public function addPAction() { $form = new Contrario\Forms\AddForm(); if ($this->request->isPost() and $this->security->checkToken()) { if ($form->isValid($this->request->getPost())) { foreach ($this->request->getUploadedFiles() as $file2) $file=$file2; $file->getName = time().$file->getName(); if(in_array(strtolower($file->getExtension()), ['jpg', 'jpeg', 'png', 'gif', 'bmp', 'ico']) and in_array($file->getRealType(), ['image/jpg', 'image/jpeg', 'image/png', 'image/gif', 'image/bmp', 'image/ico'])) { $blog = new Blogs(); $blog->name = $this->request->getPost('name', 'string'); $blog->text = $this->request->getPost('text', 'string'); $blog->time = (string) \Contrario\Carbon::now(); $blog->autor = 1; $blog->preview = $file->getName; $blog->category = $this->request->getPost('category', 'int'); if($blog->save()) { foreach ($this->cached->queryKeys() as $key) $this->cached->delete($key); $file->moveTo($_SERVER['DOCUMENT_ROOT'].'/public/images/previews/'.$file->getName); $this->response->redirect(); $this->view->disable(); } else foreach ($blog->getMessages() as $message) { $this->flash->error($message); $this->response->redirect('rifiks/add'); $this->view->disable(); } } else { $this->flash->error("Расширение выгруженного файла не соотвествует условию. (['jpg', 'jpeg', 'png', 'gif', 'bmp', 'ico'])"); $this->response->redirect('rifiks/add'); $this->view->disable(); } } else { foreach ($form->getMessages() as $message) { $this->flash->error($message); } $this->response->redirect('rifiks/add'); $this->view->disable(); } } else { $this->response->redirect(); $this->view->disable(); } } public function editBlogsAction(){ $this->view->setVars([ 'blogs' => Blogs::find() ]); } public function editBlogAction(){ $form = new Contrario\Forms\EditBlogForm(); $blog = Blogs::findFirstById($this->dispatcher->getParam('blog')); if(!$blog){ $this->response->redirect('rifiks/editBlogs/'); $this->view->disable(); } $this->view->setVars([ 'blog' => $blog ]); $this->view->form = $form; } public function editBlogYAction(){ $form = new Contrario\Forms\EditBlogForm(); if ($this->request->isPost() and $this->security->checkToken()) { if ($form->isValid($this->request->getPost())) { $file = $this->request->getUploadedFiles()[0]; $file->getName = time().$file->getName(); $blog = Blogs::findFirstById($this->request->getPost('id', 'int')); $blog->name = $this->request->getPost('name', 'string'); $blog->text = $this->request->getPost('text', 'string'); if($file){ if(in_array(strtolower($file->getExtension()), ['jpg', 'jpeg', 'png', 'gif', 'bmp', 'ico']) and in_array($file->getRealType(), ['image/jpg', 'image/jpeg', 'image/png', 'image/gif', 'image/bmp', 'image/ico'])){ unlink($_SERVER['DOCUMENT_ROOT'].'/public/images/previews/'.$blog->preview); $blog->preview = $file->getName; $file->moveTo($_SERVER['DOCUMENT_ROOT'].'/public/images/previews/'.$file->getName); } else { $this->flash->error('Ошибка загрузки файла, файл имеет неверное расширение, ну или это шелл.'); $this->response->redirect('rifiks/editBlog/'.$this->request->getPost('id', 'int').'/'); $this->view->disable(); } } $blog->category = $this->request->getPost('category', 'int'); if($blog->save()) { foreach ($this->cached->queryKeys() as $key) $this->cached->delete($key); $this->response->redirect('blog/'.$this->request->getPost('id', 'int').'/'); $this->view->disable(); } else foreach ($blog->getMessages() as $message) { $this->flash->error($message); $this->response->redirect('rifiks/editBlog/'.$this->request->getPost('id', 'int').'/'); $this->view->disable(); } } else { foreach ($form->getMessages() as $message) $this->flash->error($message); $this->response->redirect('rifiks/editBlog/'.$this->request->getPost('id', 'int').'/'); $this->view->disable(); } } } public function AddCategoryAction(){ $form = new Contrario\Forms\AddCategoryForm(); $this->view->form = $form; } public function AddCAction(){ $form = new Contrario\Forms\AddCategoryForm(); if ($this->request->isPost() and $this->security->checkToken()) { if ($form->isValid($this->request->getPost())) { $category = new Categories(); $category->name = $this->request->getPost('name', 'string'); $category->text = $this->request->getPost('text', 'string'); if($category->save()) { $this->cached->delete('categories.cache'); $this->response->redirect(); $this->view->disable(); } else foreach ($category->getMessages() as $message) { $this->flash->error($message); $this->response->redirect('rifiks/addCategory'); $this->view->disable(); } } else { foreach ($form->getMessages() as $message) $this->flash->error($message); $this->response->redirect('rifiks/addCategory'); $this->view->disable(); } } } public function editCategoriesAction(){ $this->view->setVars([ 'categories' => Categories::find() ]); } public function editCategoryAction(){ $form = new Contrario\Forms\EditCategoryForm(); $category = Categories::findFirstById($this->dispatcher->getParam('category')); if(!$category){ $this->response->redirect('rifiks/editCategories/'); $this->view->disable(); } $this->view->setVars([ 'category' => $category, 'blogs' => Blogs::findByCategory($this->dispatcher->getParam('category')) ]); $this->view->form = $form; } public function editCategoryNAction(){ $form = new Contrario\Forms\EditCategoryForm(); if ($this->request->isPost() and $this->security->checkToken()) { if ($form->isValid($this->request->getPost())) { $category = Categories::findFirstById($this->request->getPost('id', 'int')); $category->name = $this->request->getPost('name', 'string'); $category->text = $this->request->getPost('text', 'string'); if($category->save()) { foreach ($this->cached->queryKeys() as $key) $this->cached->delete($key); $this->response->redirect('category/'.$this->request->getPost('id', 'int').'/'); $this->view->disable(); } else foreach ($blog->getMessages() as $message) { $this->flash->error($message); $this->response->redirect('rifiks/editCategory/'.$this->request->getPost('id', 'int').'/'); $this->view->disable(); } } else { foreach ($form->getMessages() as $message) $this->flash->error($message); $this->response->redirect('rifiks/editCategory/'.$this->request->getPost('id', 'int').'/'); $this->view->disable(); } } } public function cacheDeleteAction(){ foreach ($this->cached->queryKeys() as $key) $this->cached->delete($key); $this->response->redirect('rifiks'); $this->view->disable(); } }