mirror of
https://github.com/Karaka-Management/oms-News.git
synced 2026-02-04 11:18:39 +00:00
Merge branch 'develop' of https://github.com/Karaka-Management/oms-News into develop
This commit is contained in:
commit
ab5fe55f01
|
|
@ -145,7 +145,7 @@ final class ApiController extends Controller
|
|||
public function apiNewsCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
|
||||
{
|
||||
if (!empty($val = $this->validateNewsCreate($request))) {
|
||||
$response->set('news_create', new FormValidation($val));
|
||||
$response->data['news_create'] = new FormValidation($val);
|
||||
$response->header->status = RequestStatusCode::R_400;
|
||||
|
||||
return;
|
||||
|
|
@ -154,7 +154,7 @@ final class ApiController extends Controller
|
|||
$newsArticle = $this->createNewsArticleFromRequest($request);
|
||||
$this->createModel($request->header->account, $newsArticle, NewsArticleMapper::class, 'news', $request->getOrigin());
|
||||
|
||||
if (!empty($request->getFiles())
|
||||
if (!empty($request->files)
|
||||
|| !empty($request->getDataJson('media'))
|
||||
) {
|
||||
$this->createNewsMedia($newsArticle, $request);
|
||||
|
|
@ -180,7 +180,7 @@ final class ApiController extends Controller
|
|||
/** @var \Modules\Admin\Models\Account $account */
|
||||
$account = AccountMapper::get()->where('id', $request->header->account)->execute();
|
||||
|
||||
if (!empty($uploadedFiles = $request->getFiles())) {
|
||||
if (!empty($uploadedFiles = $request->files)) {
|
||||
$uploaded = $this->app->moduleManager->get('Media')->uploadFiles(
|
||||
names: [],
|
||||
fileNames: [],
|
||||
|
|
@ -328,7 +328,7 @@ final class ApiController extends Controller
|
|||
$newsArticle->title = $request->getDataString('title') ?? '';
|
||||
$newsArticle->plain = $request->getDataString('plain') ?? '';
|
||||
$newsArticle->content = Markdown::parse($request->getDataString('plain') ?? '');
|
||||
$newsArticle->setLanguage(\strtolower($request->getDataString('lang') ?? $request->getLanguage()));
|
||||
$newsArticle->setLanguage(\strtolower($request->getDataString('lang') ?? $request->header->l11n->language));
|
||||
$newsArticle->setType($request->getDataInt('type') ?? NewsType::ARTICLE);
|
||||
$newsArticle->setStatus($request->getDataInt('status') ?? NewsStatus::VISIBLE);
|
||||
$newsArticle->isFeatured = $request->getDataBool('featured') ?? true;
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ final class BackendController extends Controller implements DashboardElementInte
|
|||
$view = new View($this->app->l11nManager, $request, $response);
|
||||
|
||||
$view->setTemplate('/Modules/News/Theme/Backend/news-dashboard');
|
||||
$view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1000601001, $request, $response));
|
||||
$view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1000601001, $request, $response);
|
||||
|
||||
$mapperQuery = NewsArticleMapper::getAll()
|
||||
->with('createdBy')
|
||||
|
|
@ -62,8 +62,8 @@ final class BackendController extends Controller implements DashboardElementInte
|
|||
->with('tags/title')
|
||||
->where('status', NewsStatus::VISIBLE)
|
||||
->where('publish', new \DateTime('now'), '<=')
|
||||
->where('language', $response->getLanguage())
|
||||
->where('tags/title/language', $response->getLanguage());
|
||||
->where('language', $response->header->l11n->language)
|
||||
->where('tags/title/language', $response->header->l11n->language);
|
||||
|
||||
/** @var \Modules\News\Models\NewsArticle[] $objs */
|
||||
$objs = [];
|
||||
|
|
@ -72,19 +72,19 @@ final class BackendController extends Controller implements DashboardElementInte
|
|||
$objs = $mapperQuery->where('id', $request->getDataInt('id') ?? 0, '<')
|
||||
->limit(25)->execute();
|
||||
|
||||
$view->setData('news', $objs);
|
||||
$view->data['news'] = $objs;
|
||||
} elseif ($request->getData('ptype') === 'n') {
|
||||
/** @var \Modules\News\Models\NewsArticle[] $objs */
|
||||
$objs = $mapperQuery->where('id', $request->getDataInt('id') ?? 0, '>')
|
||||
->limit(25)->execute();
|
||||
|
||||
$view->setData('news', $objs);
|
||||
$view->data['news'] = $objs;
|
||||
} else {
|
||||
/** @var \Modules\News\Models\NewsArticle[] $objs */
|
||||
$objs = $mapperQuery->where('id', 0, '>')
|
||||
->limit(25)->execute();
|
||||
|
||||
$view->setData('news', $objs);
|
||||
$view->data['news'] = $objs;
|
||||
}
|
||||
|
||||
$ids = [];
|
||||
|
|
@ -103,7 +103,7 @@ final class BackendController extends Controller implements DashboardElementInte
|
|||
$seen[] = $seenObject->news;
|
||||
}
|
||||
|
||||
$view->setData('seen', $seen);
|
||||
$view->data['seen'] = $seen;
|
||||
|
||||
return $view;
|
||||
}
|
||||
|
|
@ -124,13 +124,13 @@ final class BackendController extends Controller implements DashboardElementInte
|
|||
->with('tags/title')
|
||||
->where('status', NewsStatus::VISIBLE)
|
||||
->where('publish', new \DateTime('now'), '<=')
|
||||
->where('language', $response->getLanguage())
|
||||
->where('tags/title/language', $response->getLanguage())
|
||||
->where('language', $response->header->l11n->language)
|
||||
->where('tags/title/language', $response->header->l11n->language)
|
||||
->where('id', 0, '>')
|
||||
->limit(5)
|
||||
->execute();
|
||||
|
||||
$view->addData('news', $news);
|
||||
$view->data['news'] = $news;
|
||||
|
||||
return $view;
|
||||
}
|
||||
|
|
@ -163,8 +163,8 @@ final class BackendController extends Controller implements DashboardElementInte
|
|||
->with('tags/title')
|
||||
->where('status', NewsStatus::VISIBLE)
|
||||
->where('publish', new \DateTime('now'), '<=')
|
||||
->where('language', $response->getLanguage())
|
||||
->where('tags/title/language', $response->getLanguage())
|
||||
->where('language', $response->header->l11n->language)
|
||||
->where('tags/title/language', $response->header->l11n->language)
|
||||
->where('id', (int) $request->getData('id'))
|
||||
->execute();
|
||||
|
||||
|
|
@ -195,11 +195,10 @@ final class BackendController extends Controller implements DashboardElementInte
|
|||
}
|
||||
|
||||
$view->setTemplate('/Modules/News/Theme/Backend/news-single');
|
||||
$view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1000601001, $request, $response));
|
||||
$view->addData('news', $article);
|
||||
$view->addData('editable', $this->app->accountManager->get($accountId)->hasPermission(
|
||||
PermissionType::MODIFY, $this->app->unitId, $this->app->appId, self::NAME, PermissionCategory::NEWS, $article->id)
|
||||
);
|
||||
$view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1000601001, $request, $response);
|
||||
$view->data['news'] = $article;
|
||||
$view->data['editable'] = $this->app->accountManager->get($accountId)->hasPermission(
|
||||
PermissionType::MODIFY, $this->app->unitId, $this->app->appId, self::NAME, PermissionCategory::NEWS, $article->id);
|
||||
|
||||
// allow comments
|
||||
if (!$article->comments !== null
|
||||
|
|
@ -208,8 +207,8 @@ final class BackendController extends Controller implements DashboardElementInte
|
|||
$commentCreateView = new \Modules\Comments\Theme\Backend\Components\Comment\CreateView($this->app->l11nManager, $request, $response);
|
||||
$commentListView = new \Modules\Comments\Theme\Backend\Components\Comment\ListView($this->app->l11nManager, $request, $response);
|
||||
|
||||
$view->addData('commentCreate', $commentCreateView);
|
||||
$view->addData('commentList', $commentListView);
|
||||
$view->data['commentCreate'] = $commentCreateView;
|
||||
$view->data['commentList'] = $commentListView;
|
||||
}
|
||||
|
||||
return $view;
|
||||
|
|
@ -232,7 +231,7 @@ final class BackendController extends Controller implements DashboardElementInte
|
|||
$view = new View($this->app->l11nManager, $request, $response);
|
||||
|
||||
$view->setTemplate('/Modules/News/Theme/Backend/news-archive');
|
||||
$view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1000601001, $request, $response));
|
||||
$view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1000601001, $request, $response);
|
||||
|
||||
$mapperQuery = NewsArticleMapper::getAll()
|
||||
->with('createdBy')
|
||||
|
|
@ -240,24 +239,18 @@ final class BackendController extends Controller implements DashboardElementInte
|
|||
->with('tags/title')
|
||||
->where('status', NewsStatus::VISIBLE)
|
||||
->where('publish', new \DateTime('now'), '<=')
|
||||
->where('language', $response->getLanguage())
|
||||
->where('tags/title/language', $response->getLanguage());
|
||||
->where('language', $response->header->l11n->language)
|
||||
->where('tags/title/language', $response->header->l11n->language);
|
||||
|
||||
if ($request->getData('ptype') === 'p') {
|
||||
$view->setData('news',
|
||||
$mapperQuery->where('id', $request->getDataInt('id') ?? 0, '<')
|
||||
->limit(25)->execute()
|
||||
);
|
||||
$view->data['news'] = $mapperQuery->where('id', $request->getDataInt('id') ?? 0, '<')
|
||||
->limit(25)->execute();
|
||||
} elseif ($request->getData('ptype') === 'n') {
|
||||
$view->setData('news',
|
||||
$mapperQuery->where('id', $request->getDataInt('id') ?? 0, '>')
|
||||
->limit(25)->execute()
|
||||
);
|
||||
$view->data['news'] = $mapperQuery->where('id', $request->getDataInt('id') ?? 0, '>')
|
||||
->limit(25)->execute();
|
||||
} else {
|
||||
$view->setData('news',
|
||||
$mapperQuery->where('id', 0, '>')
|
||||
->limit(25)->execute()
|
||||
);
|
||||
$view->data['news'] = $mapperQuery->where('id', 0, '>')
|
||||
->limit(25)->execute();
|
||||
}
|
||||
|
||||
return $view;
|
||||
|
|
@ -280,18 +273,14 @@ final class BackendController extends Controller implements DashboardElementInte
|
|||
$view = new View($this->app->l11nManager, $request, $response);
|
||||
|
||||
$view->setTemplate('/Modules/News/Theme/Backend/news-draft');
|
||||
$view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1000601001, $request, $response));
|
||||
$view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1000601001, $request, $response);
|
||||
|
||||
if ($request->getData('ptype') === 'p') {
|
||||
$view->setData('news',
|
||||
NewsArticleMapper::getAll()->where('id', $request->getDataInt('id') ?? 0, '<')->where('status', NewsStatus::DRAFT)->limit(25)->execute()
|
||||
);
|
||||
$view->data['news'] = NewsArticleMapper::getAll()->where('id', $request->getDataInt('id') ?? 0, '<')->where('status', NewsStatus::DRAFT)->limit(25)->execute();
|
||||
} elseif ($request->getData('ptype') === 'n') {
|
||||
$view->setData('news',
|
||||
NewsArticleMapper::getAll()->where('id', $request->getDataInt('id') ?? 0, '>')->where('status', NewsStatus::DRAFT)->limit(25)->execute()
|
||||
);
|
||||
$view->data['news'] = NewsArticleMapper::getAll()->where('id', $request->getDataInt('id') ?? 0, '>')->where('status', NewsStatus::DRAFT)->limit(25)->execute();
|
||||
} else {
|
||||
$view->setData('news', NewsArticleMapper::getAll()->where('id', 0, '>')->where('status', NewsStatus::DRAFT)->limit(25)->execute());
|
||||
$view->data['news'] = NewsArticleMapper::getAll()->where('id', 0, '>')->where('status', NewsStatus::DRAFT)->limit(25)->execute();
|
||||
}
|
||||
|
||||
return $view;
|
||||
|
|
@ -314,16 +303,16 @@ final class BackendController extends Controller implements DashboardElementInte
|
|||
$view = new View($this->app->l11nManager, $request, $response);
|
||||
|
||||
$view->setTemplate('/Modules/News/Theme/Backend/news-create');
|
||||
$view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1000601001, $request, $response));
|
||||
$view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1000601001, $request, $response);
|
||||
|
||||
$editor = new \Modules\Editor\Theme\Backend\Components\Editor\BaseView($this->app->l11nManager, $request, $response);
|
||||
$view->addData('editor', $editor);
|
||||
$view->data['editor'] = $editor;
|
||||
|
||||
$accGrpSelector = new \Modules\Profile\Theme\Backend\Components\AccountGroupSelector\BaseView($this->app->l11nManager, $request, $response);
|
||||
$view->addData('accGrpSelector', $accGrpSelector);
|
||||
$view->data['accGrpSelector'] = $accGrpSelector;
|
||||
|
||||
$tagSelector = new \Modules\Tag\Theme\Backend\Components\TagSelector\BaseView($this->app->l11nManager, $request, $response);
|
||||
$view->addData('tagSelector', $tagSelector);
|
||||
$view->data['tagSelector'] = $tagSelector;
|
||||
|
||||
return $view;
|
||||
}
|
||||
|
|
@ -345,18 +334,18 @@ final class BackendController extends Controller implements DashboardElementInte
|
|||
$view = new View($this->app->l11nManager, $request, $response);
|
||||
|
||||
$view->setTemplate('/Modules/News/Theme/Backend/news-create');
|
||||
$view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1000601001, $request, $response));
|
||||
$view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1000601001, $request, $response);
|
||||
|
||||
$editor = new \Modules\Editor\Theme\Backend\Components\Editor\BaseView($this->app->l11nManager, $request, $response);
|
||||
$view->addData('editor', $editor);
|
||||
$view->data['editor'] = $editor;
|
||||
|
||||
$accGrpSelector = new \Modules\Profile\Theme\Backend\Components\AccountGroupSelector\BaseView($this->app->l11nManager, $request, $response);
|
||||
$view->addData('accGrpSelector', $accGrpSelector);
|
||||
$view->data['accGrpSelector'] = $accGrpSelector;
|
||||
|
||||
$tagSelector = new \Modules\Tag\Theme\Backend\Components\TagSelector\BaseView($this->app->l11nManager, $request, $response);
|
||||
$view->addData('tagSelector', $tagSelector);
|
||||
$view->data['tagSelector'] = $tagSelector;
|
||||
|
||||
$view->addData('news', NewsArticleMapper::get()->where('id', $request->getDataInt('id') ?? 0)->execute());
|
||||
$view->data['news'] = NewsArticleMapper::get()->where('id', $request->getDataInt('id') ?? 0)->execute();
|
||||
|
||||
return $view;
|
||||
}
|
||||
|
|
@ -378,7 +367,7 @@ final class BackendController extends Controller implements DashboardElementInte
|
|||
$view = new View($this->app->l11nManager, $request, $response);
|
||||
|
||||
$view->setTemplate('/Modules/News/Theme/Backend/news-analysis');
|
||||
$view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1000601001, $request, $response));
|
||||
$view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1000601001, $request, $response);
|
||||
|
||||
return $view;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -173,18 +173,6 @@ class NewsArticle implements \JsonSerializable
|
|||
$this->publish = new \DateTime('now');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get id
|
||||
*
|
||||
* @return int
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function getId() : int
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get news language
|
||||
*
|
||||
|
|
|
|||
|
|
@ -48,15 +48,4 @@ class NewsSeen
|
|||
$this->seenAt = new \DateTime('now');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get id
|
||||
*
|
||||
* @return int
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function getId() : int
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ use phpOMS\Uri\UriFactory;
|
|||
* @var \phpOMS\Views\View $this
|
||||
*/
|
||||
|
||||
$newsList = $this->getData('news') ?? [];
|
||||
$newsList = $this->data['news'] ?? [];
|
||||
?>
|
||||
<div id="news-dashboard" class="col-xs-12 col-md-6" draggable="true">
|
||||
<div class="portlet">
|
||||
|
|
|
|||
|
|
@ -14,5 +14,5 @@ declare(strict_types=1);
|
|||
|
||||
// @todo: stats: published timeline, published by tags, published by author
|
||||
|
||||
echo $this->getData('nav')->render(); ?>
|
||||
echo $this->data['nav']->render(); ?>
|
||||
|
||||
|
|
|
|||
|
|
@ -16,12 +16,12 @@ use phpOMS\Uri\UriFactory;
|
|||
|
||||
/** @var \phpOMS\Views\View $this */
|
||||
/** @var \Modules\News\Models\NewsArticle[] $newsList */
|
||||
$newsList = $this->getData('news') ?? [];
|
||||
$newsList = $this->data['news'] ?? [];
|
||||
|
||||
$previous = empty($newsList) ? 'news/archive' : 'news/archive?{?}&id=' . \reset($newsList)->id . '&ptype=p';
|
||||
$next = empty($newsList) ? 'news/archive' : 'news/archive?{?}&id=' . \end($newsList)->id . '&ptype=n';
|
||||
|
||||
echo $this->getData('nav')->render(); ?>
|
||||
echo $this->data['nav']->render(); ?>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ $isNewArticle = $news->id === 0;
|
|||
$languages = \phpOMS\Localization\ISO639Enum::getConstants();
|
||||
|
||||
/** @var \phpOMS\Views\View $this */
|
||||
echo $this->getData('nav')->render(); ?>
|
||||
echo $this->data['nav']->render(); ?>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-md-9">
|
||||
|
|
|
|||
|
|
@ -17,13 +17,13 @@ use phpOMS\Utils\Parser\Markdown\Markdown;
|
|||
|
||||
/** @var \phpOMS\Views\View $this */
|
||||
/** @var \Modules\News\Models\NewsArticle[] $newsList */
|
||||
$newsList = $this->getData('news');
|
||||
$seen = $this->getData('seen') ?? [];
|
||||
$newsList = $this->data['news'];
|
||||
$seen = $this->data['seen'] ?? [];
|
||||
|
||||
$previous = empty($newsList) ? 'news/dashboard' : 'news/dashboard?{?}&id=' . \reset($newsList)->id . '&ptype=p';
|
||||
$next = empty($newsList) ? 'news/dashboard' : 'news/dashboard?{?}&id=' . \end($newsList)->id . '&ptype=n';
|
||||
|
||||
echo $this->getData('nav')->render(); ?>
|
||||
echo $this->data['nav']->render(); ?>
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<?php foreach ($newsList as $news) :
|
||||
|
|
|
|||
|
|
@ -16,12 +16,12 @@ use phpOMS\Uri\UriFactory;
|
|||
|
||||
/** @var \phpOMS\Views\View $this */
|
||||
/** @var \Modules\News\Models\NewsArticle[] $newsList */
|
||||
$newsList = $this->getData('news') ?? [];
|
||||
$newsList = $this->data['news'] ?? [];
|
||||
|
||||
$previous = empty($newsList) ? 'news/archive' : 'news/archive?{?}&id=' . \reset($newsList)->id . '&ptype=p';
|
||||
$next = empty($newsList) ? 'news/archive' : 'news/archive?{?}&id=' . \end($newsList)->id . '&ptype=n';
|
||||
|
||||
echo $this->getData('nav')->render(); ?>
|
||||
echo $this->data['nav']->render(); ?>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
|
|
|
|||
|
|
@ -16,10 +16,10 @@ use Modules\Comments\Models\CommentListStatus;
|
|||
use phpOMS\Uri\UriFactory;
|
||||
|
||||
/** @var \Modules\News\Models\NewsArticle $news */
|
||||
$news = $this->getData('news');
|
||||
$news = $this->data['news'];
|
||||
|
||||
/** @var bool $editable */
|
||||
$editable = $this->getData('editable');
|
||||
$editable = $this->data['editable'];
|
||||
|
||||
/** @var \Modules\Tag\Models\Tag[] $tags */
|
||||
$tags = $news->getTags();
|
||||
|
|
@ -27,7 +27,7 @@ $tags = $news->getTags();
|
|||
$profile = UriFactory::build('profile/single?{?}&id=' . $news->createdBy->id);
|
||||
|
||||
/** @var \phpOMS\Views\View $this */
|
||||
echo $this->getData('nav')->render(); ?>
|
||||
echo $this->data['nav']->render(); ?>
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<section class="portlet">
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user