misuzu/public/manage/news/post.php

75 lines
2.3 KiB
PHP
Raw Normal View History

2019-06-09 22:10:59 +00:00
<?php
namespace Misuzu;
use Misuzu\News\NewsCategory;
use Misuzu\News\NewsPost;
use Misuzu\News\NewsPostNotFoundException;
2019-06-09 22:10:59 +00:00
require_once '../../../misuzu.php';
if(!perms_check_user(MSZ_PERMS_NEWS, user_session_current('user_id'), MSZ_PERM_NEWS_MANAGE_POSTS)) {
echo render_error(403);
return;
}
$postId = (int)filter_input(INPUT_GET, 'p', FILTER_SANITIZE_NUMBER_INT);
if($postId > 0)
try {
$postInfo = NewsPost::byId($postId);
Template::set('post_info', $postInfo);
} catch(NewsPostNotFoundException $ex) {
echo render_error(404);
return;
}
$categories = NewsCategory::all(null, true);
2019-06-09 22:10:59 +00:00
2019-12-11 18:10:54 +00:00
if(!empty($_POST['post']) && CSRF::validateRequest()) {
if(!isset($postInfo)) {
$postInfo = new NewsPost;
$isNew = true;
}
2019-06-09 22:10:59 +00:00
$currentUserId = user_session_current('user_id');
$postInfo->setTitle( $_POST['post']['title'])
->setText($_POST['post']['text'])
->setCategoryId($_POST['post']['category'])
->setFeatured(!empty($_POST['post']['featured']));
if(!empty($isNew))
$postInfo->setUserId($currentUserId);
$postInfo->save();
2019-06-09 22:10:59 +00:00
audit_log(
empty($isNew)
2019-06-09 22:10:59 +00:00
? MSZ_AUDIT_NEWS_POST_EDIT
: MSZ_AUDIT_NEWS_POST_CREATE,
$currentUserId,
[$postInfo->getId()]
2019-06-09 22:10:59 +00:00
);
if(!empty($isNew)) {
if($postInfo->isFeatured()) {
$twitterApiKey = Config::get('twitter.api.key', Config::TYPE_STR);
$twitterApiSecret = Config::get('twitter.api.secret', Config::TYPE_STR);
$twitterToken = Config::get('twitter.token.key', Config::TYPE_STR);
$twitterTokenSecret = Config::get('twitter.token.secret', Config::TYPE_STR);
if(!empty($twitterApiKey) && !empty($twitterApiSecret)
&& !empty($twitterToken) && !empty($twitterTokenSecret)) {
Twitter::init($twitterApiKey, $twitterApiSecret, $twitterToken, $twitterTokenSecret);
$url = url('news-post', ['post' => $postInfo->getId()]);
Twitter::sendTweet("News :: {$postInfo->getTitle()}\nhttps://{$_SERVER['HTTP_HOST']}{$url}");
}
2019-06-09 22:10:59 +00:00
}
header('Location: ' . url('manage-news-post', ['post' => $postInfo->getId()]));
return;
}
2019-06-09 22:10:59 +00:00
}
Template::render('manage.news.post', [
'categories' => $categories,
]);