<?php
class UnnamedController extends BaseController {
public function indexAction() {
}
public function authAction() {
$form = new Contrario\Forms\RifiksForm();
if ($this->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();
}
}