コード例 #1
0
 /**
  * Создание категории
  */
 public function edit($id)
 {
     if (!User::isAdmin()) {
         App::abort('403');
     }
     if (!($category = Category::find_by_id($id))) {
         App::abort('default', 'Категория не найдена!');
     }
     if (Request::isMethod('post')) {
         $category->token = Request::input('token', true);
         $category->parent_id = Request::input('parent_id');
         $category->name = Request::input('name');
         $category->slug = Request::input('slug');
         $category->description = Request::input('description');
         $category->sort = Request::input('sort');
         if ($category->save()) {
             App::setFlash('success', 'Категория успешно изменена!');
             App::redirect('/category');
         } else {
             App::setFlash('danger', $category->getErrors());
             App::setInput($_POST);
         }
     }
     $categories = Category::getAll();
     App::view('categories.edit', compact('category', 'categories'));
 }
コード例 #2
0
ファイル: HomeController.php プロジェクト: visavi/rotorcms
 /**
  * Обратная связь
  */
 public function contact()
 {
     $request = Request::input('request');
     if (Request::isMethod('post')) {
         $email = Request::input('email');
         $name = Request::input('name');
         $message = Request::input('message');
         $captcha = Request::input('captcha');
         $errors = [];
         if (!App::isMail($email)) {
             $errors['email'] = 'Неверный формат адреса email';
         }
         if (!$name) {
             $errors['name'] = 'Небходимо заполнить имя отправителя';
         }
         if (!$message) {
             $errors['message'] = 'Необходимо заполнить текст сообщения';
         }
         if ($captcha != $_SESSION['captcha']) {
             $errors['captcha'] = 'Неверный проверочный код';
         }
         if (!$errors) {
             $message = nl2br(e($message));
             $to = [env('SITE_EMAIL') => env('SITE_ADMIN')];
             $subject = 'Новое письмо с сайта';
             $body = App::view('mailer.contact', compact('subject', 'message', 'request'), true);
             $headers['from'] = [$email => $name];
             // Отправка письма
             App::sendMail($to, $subject, $body, $headers);
             App::setFlash('success', 'Письмо успешно отправлено!');
             App::redirect('/');
         } else {
             App::setFlash('danger', $errors);
             App::setInput($_POST);
             App::redirect('/contact');
         }
     }
     App::view('pages.contact', compact('request'));
 }
コード例 #3
0
ファイル: UserController.php プロジェクト: visavi/rotorcms
 /**
  * Сброс пароля
  */
 public function reset()
 {
     if (User::check()) {
         App::abort(403);
     }
     $key = Request::input('key');
     $errors = [];
     if (!$key) {
         $errors['key'] = 'Отсутствует ключ для сброса пароля';
     }
     if (!$errors && !($user = User::find_by_reset_code($key))) {
         $errors['email'] = 'Пользователь с данным ключем не найден';
     }
     if (!$errors) {
         if (Request::isMethod('post')) {
             $new_password = Request::input('password');
             $user->new_password = $new_password;
             $user->updated_at = new Datetime();
             if ($user->save()) {
                 $user->update_attribute('reset_code', null);
                 App::setFlash('success', 'Новый пароль успешно сохранен!');
                 App::redirect('/');
             } else {
                 App::setFlash('danger', $errors);
                 App::setInput($_POST);
             }
             App::redirect('/reset');
         }
         App::view('users.reset');
     } else {
         App::setFlash('danger', $errors);
         App::redirect('/');
     }
 }
コード例 #4
0
ファイル: NewsController.php プロジェクト: visavi/rotorcms
 /**
  * Создание комментария
  */
 public function createComment($id)
 {
     if (!($news = News::find_by_id($id))) {
         App::abort('default', 'Данной новости не существует!');
     }
     $comment = new Comment();
     $comment->token = Request::input('token', true);
     $comment->user_id = User::get('id');
     $comment->relate_type = 'News';
     $comment->relate_id = $news->id;
     $comment->text = Request::input('text');
     $comment->ip = App::getClientIp();
     $comment->brow = App::getUserAgent();
     if ($comment->save()) {
         App::setFlash('success', 'Сообщение успешно добавлено!');
     } else {
         App::setFlash('danger', $comment->getErrors());
         App::setInput($_POST);
     }
     App::redirect('/news/' . $id);
 }
コード例 #5
0
 /**
  * Ответ на сообщение для администрации
  */
 public function reply($id)
 {
     if (!User::isAdmin()) {
         App::abort(403);
     }
     if (!($guest = Guestbook::find_by_id($id))) {
         App::abort('default', 'Сообщение не найдено!');
     }
     if (Request::isMethod('post')) {
         $guest->scenario = 'reply';
         $guest->token = Request::input('token', true);
         $guest->reply = Request::input('text');
         if ($guest->save()) {
             App::setFlash('success', 'Ответ успешно добавлен!');
             App::redirect('/guestbook');
         } else {
             App::setFlash('danger', $guest->getErrors());
             App::setInput($_POST);
         }
     }
     App::view('guestbook.reply', compact('guest'));
 }
コード例 #6
0
ファイル: User.php プロジェクト: visavi/rotorcms
 /**
  * Авторизация через социальные сети
  * @param string $token идентификатор Ulogin
  */
 public static function socialLogin($token)
 {
     $curl = new Curl();
     $network = $curl->get('http://ulogin.ru/token.php', ['token' => $token, 'host' => $_SERVER['HTTP_HOST']]);
     if ($network && empty($network->error)) {
         $_SESSION['social'] = $network;
         $social = Social::find_by_network_and_uid($network->network, $network->uid);
         if ($social && $social->user()) {
             //$_SESSION['ip'] = Registry::get('ip');
             $_SESSION['id'] = $social->user()->id;
             $_SESSION['pass'] = md5(env('APP_KEY') . $social->user()->password);
             App::setFlash('success', 'Добро пожаловать, ' . e($social->user()->login) . '!');
             App::redirect('/');
         }
     }
 }
コード例 #7
0
ファイル: ForumController.php プロジェクト: visavi/rotorcms
 /**
  * Создание сообщения
  */
 public function createPost($id)
 {
     if (!($topic = Topic::find_by_id($id))) {
         App::abort('default', 'Данной темы не существует!');
     }
     $post = new Post();
     $post->token = Request::input('token', true);
     $post->forum_id = $topic->forum()->id;
     $post->topic_id = $topic->id;
     $post->user_id = User::get('id');
     $post->text = Request::input('text');
     $post->ip = App::getClientIp();
     $post->brow = App::getUserAgent();
     if ($post->save()) {
         $post->topic->update_attribute('post_last_id', $post->id);
         $post->topic->forum->update_attribute('topic_last_id', $topic->id);
         App::setFlash('success', 'Сообщение успешно добавлено!');
     } else {
         App::setFlash('danger', $post->getErrors());
         App::setInput($_POST);
     }
     /* Последняя страница в теме */
     $page = ceil($topic->postCount() / Setting::get('posts_per_page'));
     App::redirect('/topic/' . $id . '?page=' . $page);
 }