mirror of
https://github.com/Karaka-Management/oms-News.git
synced 2026-02-17 08:58:42 +00:00
filter news based on visibility and publish date
This commit is contained in:
parent
f53d3b48b9
commit
f85cb59f07
|
|
@ -39,6 +39,17 @@ return [
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
|
'^.*/news/draft/list.*$' => [
|
||||||
|
[
|
||||||
|
'dest' => '\Modules\News\Controller\BackendController:viewNewsDraftList',
|
||||||
|
'verb' => RouteVerb::GET,
|
||||||
|
'permission' => [
|
||||||
|
'module' => BackendController::MODULE_NAME,
|
||||||
|
'type' => PermissionType::MODIFY,
|
||||||
|
'state' => PermissionState::NEWS,
|
||||||
|
],
|
||||||
|
],
|
||||||
|
],
|
||||||
'^.*/news/create.*$' => [
|
'^.*/news/create.*$' => [
|
||||||
[
|
[
|
||||||
'dest' => '\Modules\Editor\Controller\BackendController:setUpEditorEditor',
|
'dest' => '\Modules\Editor\Controller\BackendController:setUpEditorEditor',
|
||||||
|
|
|
||||||
|
|
@ -60,18 +60,21 @@ final class BackendController extends Controller implements DashboardElementInte
|
||||||
$view->setData('news',
|
$view->setData('news',
|
||||||
NewsArticleMapper::withConditional('language', $response->getHeader()->getL11n()->getLanguage())
|
NewsArticleMapper::withConditional('language', $response->getHeader()->getL11n()->getLanguage())
|
||||||
::withConditional('status', NewsStatus::VISIBLE, [NewsArticle::class])
|
::withConditional('status', NewsStatus::VISIBLE, [NewsArticle::class])
|
||||||
|
::withConditional('publish', new \DateTime('now'), [NewsArticle::class], '<=')
|
||||||
::getBeforePivot((int) ($request->getData('id') ?? 0), null, 25)
|
::getBeforePivot((int) ($request->getData('id') ?? 0), null, 25)
|
||||||
);
|
);
|
||||||
} elseif ($request->getData('ptype') === '+') {
|
} elseif ($request->getData('ptype') === '+') {
|
||||||
$view->setData('news',
|
$view->setData('news',
|
||||||
NewsArticleMapper::withConditional('language', $response->getHeader()->getL11n()->getLanguage())
|
NewsArticleMapper::withConditional('language', $response->getHeader()->getL11n()->getLanguage())
|
||||||
::withConditional('status', NewsStatus::VISIBLE, [NewsArticle::class])
|
::withConditional('status', NewsStatus::VISIBLE, [NewsArticle::class])
|
||||||
|
::withConditional('publish', new \DateTime('now'), [NewsArticle::class], '<=')
|
||||||
::getAfterPivot((int) ($request->getData('id') ?? 0), null, 25)
|
::getAfterPivot((int) ($request->getData('id') ?? 0), null, 25)
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
$view->setData('news',
|
$view->setData('news',
|
||||||
NewsArticleMapper::withConditional('language', $response->getHeader()->getL11n()->getLanguage())
|
NewsArticleMapper::withConditional('language', $response->getHeader()->getL11n()->getLanguage())
|
||||||
::withConditional('status', NewsStatus::VISIBLE, [NewsArticle::class])
|
::withConditional('status', NewsStatus::VISIBLE, [NewsArticle::class])
|
||||||
|
::withConditional('publish', new \DateTime('now'), [NewsArticle::class], '<=')
|
||||||
::getAfterPivot(0, null, 25)
|
::getAfterPivot(0, null, 25)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
@ -88,6 +91,7 @@ final class BackendController extends Controller implements DashboardElementInte
|
||||||
$view->setTemplate('/Modules/News/Theme/Backend/dashboard-news');
|
$view->setTemplate('/Modules/News/Theme/Backend/dashboard-news');
|
||||||
|
|
||||||
$news = NewsArticleMapper::withConditional('language', $response->getHeader()->getL11n()->getLanguage())
|
$news = NewsArticleMapper::withConditional('language', $response->getHeader()->getL11n()->getLanguage())
|
||||||
|
::withConditional('publish', new \DateTime('now'), [NewsArticle::class], '<=')
|
||||||
::getNewest(5);
|
::getNewest(5);
|
||||||
|
|
||||||
$view->addData('news', $news);
|
$view->addData('news', $news);
|
||||||
|
|
@ -130,9 +134,6 @@ final class BackendController extends Controller implements DashboardElementInte
|
||||||
PermissionType::MODIFY, $this->app->orgId, $this->app->appName, self::MODULE_NAME, PermissionState::NEWS, $article->getId())
|
PermissionType::MODIFY, $this->app->orgId, $this->app->appName, self::MODULE_NAME, PermissionState::NEWS, $article->getId())
|
||||||
);
|
);
|
||||||
|
|
||||||
$t = $this->app->accountManager->get($accountId)->hasPermission(
|
|
||||||
PermissionType::MODIFY, $this->app->orgId, $this->app->appName, self::MODULE_NAME, PermissionState::NEWS, $article->getId());
|
|
||||||
|
|
||||||
return $view;
|
return $view;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -155,6 +156,46 @@ final class BackendController extends Controller implements DashboardElementInte
|
||||||
$view->setTemplate('/Modules/News/Theme/Backend/news-archive');
|
$view->setTemplate('/Modules/News/Theme/Backend/news-archive');
|
||||||
$view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1000701001, $request, $response));
|
$view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1000701001, $request, $response));
|
||||||
|
|
||||||
|
if ($request->getData('ptype') === '-') {
|
||||||
|
$view->setData('news',
|
||||||
|
NewsArticleMapper::withConditional('status', NewsStatus::VISIBLE, [NewsArticle::class])
|
||||||
|
::withConditional('publish', new \DateTime('now'), [NewsArticle::class], '<=')
|
||||||
|
::getBeforePivot((int) ($request->getData('id') ?? 0), null, 25)
|
||||||
|
);
|
||||||
|
} elseif ($request->getData('ptype') === '+') {
|
||||||
|
$view->setData('news',
|
||||||
|
NewsArticleMapper::withConditional('status', NewsStatus::VISIBLE, [NewsArticle::class])
|
||||||
|
::withConditional('publish', new \DateTime('now'), [NewsArticle::class], '<=')
|
||||||
|
::getAfterPivot((int) ($request->getData('id') ?? 0), null, 25)
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
$view->setData('news', NewsArticleMapper::withConditional('status', NewsStatus::VISIBLE, [NewsArticle::class])
|
||||||
|
::withConditional('publish', new \DateTime('now'), [NewsArticle::class], '<=')
|
||||||
|
::getAfterPivot(0, null, 25));
|
||||||
|
}
|
||||||
|
|
||||||
|
return $view;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Routing end-point for application behaviour.
|
||||||
|
*
|
||||||
|
* @param RequestAbstract $request Request
|
||||||
|
* @param ResponseAbstract $response Response
|
||||||
|
* @param mixed $data Generic data
|
||||||
|
*
|
||||||
|
* @return RenderableInterface
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
* @codeCoverageIgnore
|
||||||
|
*/
|
||||||
|
public function viewNewsDraftList(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface
|
||||||
|
{
|
||||||
|
$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(1000701001, $request, $response));
|
||||||
|
|
||||||
if ($request->getData('ptype') === '-') {
|
if ($request->getData('ptype') === '-') {
|
||||||
$view->setData('news',
|
$view->setData('news',
|
||||||
NewsArticleMapper::getBeforePivot((int) ($request->getData('id') ?? 0), null, 25)
|
NewsArticleMapper::getBeforePivot((int) ($request->getData('id') ?? 0), null, 25)
|
||||||
|
|
|
||||||
61
Theme/Backend/news-draft.tpl.php
Normal file
61
Theme/Backend/news-draft.tpl.php
Normal file
|
|
@ -0,0 +1,61 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Orange Management
|
||||||
|
*
|
||||||
|
* PHP Version 7.4
|
||||||
|
*
|
||||||
|
* @package Modules\News
|
||||||
|
* @copyright Dennis Eichhorn
|
||||||
|
* @license OMS License 1.0
|
||||||
|
* @version 1.0.0
|
||||||
|
* @link https://orange-management.org
|
||||||
|
*/
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
use Modules\News\Models\NewsType;
|
||||||
|
use phpOMS\Uri\UriFactory;
|
||||||
|
|
||||||
|
/** @var \phpOMS\Views\View $this */
|
||||||
|
/** @var \Modules\News\Models\NewsArticle[] $newsList */
|
||||||
|
$articles = $this->getData('news') ?? [];
|
||||||
|
|
||||||
|
$previous = empty($newsList) ? '{/prefix}news/draft/list' : '{/prefix}news/draft/list?{?}&id=' . \reset($newsList)->getId() . '&ptype=-';
|
||||||
|
$next = empty($newsList) ? '{/prefix}news/draft/list' : '{/prefix}news/draft/list?{?}&id=' . \end($newsList)->getId() . '&ptype=+';
|
||||||
|
|
||||||
|
echo $this->getData('nav')->render(); ?>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xs-12">
|
||||||
|
<section class="portlet">
|
||||||
|
<div class="portlet-head"><?= $this->getHtml('Draft') ?><i class="fa fa-download floatRight download btn"></i></div>
|
||||||
|
<table id="newsDraftList" class="default">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<td><?= $this->getHtml('Type') ?><i class="sort-asc fa fa-chevron-up"></i><i class="sort-desc fa fa-chevron-down"></i>
|
||||||
|
<td class="wf-100"><?= $this->getHtml('Title') ?><i class="sort-asc fa fa-chevron-up"></i><i class="sort-desc fa fa-chevron-down"></i>
|
||||||
|
<td><?= $this->getHtml('Author') ?><i class="sort-asc fa fa-chevron-up"></i><i class="sort-desc fa fa-chevron-down"></i>
|
||||||
|
<td><?= $this->getHtml('Date') ?><i class="sort-asc fa fa-chevron-up"></i><i class="sort-desc fa fa-chevron-down"></i>
|
||||||
|
<tbody>
|
||||||
|
<?php $count = 0; foreach ($articles as $key => $news) : ++$count; $url = UriFactory::build('{/prefix}news/edit?{?}&id=' . $news->getId());
|
||||||
|
$color = 'darkred';
|
||||||
|
if ($news->getType() === NewsType::ARTICLE) { $color = 'green'; }
|
||||||
|
elseif ($news->getType() === NewsType::HEADLINE) { $color = 'purple'; }
|
||||||
|
elseif ($news->getType() === NewsType::LINK) { $color = 'yellow'; }
|
||||||
|
?>
|
||||||
|
<tr tabindex="0" data-href="<?= $url; ?>">
|
||||||
|
<td><span class="tag <?= $this->printHtml($color); ?>"><?= $this->getHtml('TYPE' . $news->getType()) ?></span></a>
|
||||||
|
<td><a href="<?= $url; ?>"><?= $this->printHtml($news->getTitle()); ?></a>
|
||||||
|
<td><a href="<?= $url; ?>"><?= $this->printHtml($news->getCreatedBy()->getName1()); ?></a>
|
||||||
|
<td><a href="<?= $url; ?>"><?= $this->printHtml($news->getPublish()->format('Y-m-d')); ?></a>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
<?php if ($count === 0) : ?>
|
||||||
|
<tr><td colspan="4" class="empty"><?= $this->getHtml('Empty', '0', '0'); ?>
|
||||||
|
<?php endif; ?>
|
||||||
|
</table>
|
||||||
|
<div class="portlet-foot">
|
||||||
|
<a class="button" href="<?= UriFactory::build($previous); ?>"><?= $this->getHtml('Previous', '0', '0'); ?></a>
|
||||||
|
<a class="button" href="<?= UriFactory::build($next); ?>"><?= $this->getHtml('Next', '0', '0'); ?></a>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
Loading…
Reference in New Issue
Block a user