mirror of
https://github.com/Karaka-Management/oms-News.git
synced 2026-02-12 14:58:41 +00:00
make id public, organigram impl. media password/encryption, settings bug fix, Money->FloatInt change, ...
This commit is contained in:
parent
95fb269fd5
commit
a4d9f7f05e
|
|
@ -198,22 +198,22 @@ final class ApiController extends Controller
|
|||
foreach ($uploaded as $media) {
|
||||
$this->createModelRelation(
|
||||
$request->header->account,
|
||||
$news->getId(),
|
||||
$media->getId(),
|
||||
$news->id,
|
||||
$media->id,
|
||||
NewsArticleMapper::class,
|
||||
'media',
|
||||
'',
|
||||
$request->getOrigin()
|
||||
);
|
||||
|
||||
$accountPath = '/Accounts/' . $account->getId() . ' ' . $account->login
|
||||
$accountPath = '/Accounts/' . $account->id . ' ' . $account->login
|
||||
. '/News/'
|
||||
. $news->createdAt->format('Y') . '/' . $news->createdAt->format('m')
|
||||
. '/' . $news->getId();
|
||||
. '/' . $news->id;
|
||||
|
||||
$ref = new Reference();
|
||||
$ref->name = $media->name;
|
||||
$ref->source = new NullMedia($media->getId());
|
||||
$ref->source = new NullMedia($media->id);
|
||||
$ref->createdBy = new NullAccount($request->header->account);
|
||||
$ref->setVirtualPath($accountPath);
|
||||
|
||||
|
|
@ -222,19 +222,19 @@ final class ApiController extends Controller
|
|||
if ($collection === null) {
|
||||
$collection = MediaMapper::getParentCollection($path)->limit(1)->execute();
|
||||
|
||||
if ($collection instanceof NullCollection) {
|
||||
if ($collection->id === 0) {
|
||||
$collection = $this->app->moduleManager->get('Media')->createRecursiveMediaCollection(
|
||||
$accountPath,
|
||||
$request->header->account,
|
||||
__DIR__ . '/../../../Modules/Media/Files/Accounts/' . $account->getId() . '/News/' . $news->createdAt->format('Y') . '/' . $news->createdAt->format('m') . '/' . $news->getId()
|
||||
__DIR__ . '/../../../Modules/Media/Files/Accounts/' . $account->id . '/News/' . $news->createdAt->format('Y') . '/' . $news->createdAt->format('m') . '/' . $news->id
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
$this->createModelRelation(
|
||||
$request->header->account,
|
||||
$collection->getId(),
|
||||
$ref->getId(),
|
||||
$collection->id,
|
||||
$ref->id,
|
||||
CollectionMapper::class,
|
||||
'sources',
|
||||
'',
|
||||
|
|
@ -249,7 +249,7 @@ final class ApiController extends Controller
|
|||
foreach ($mediaFiles as $media) {
|
||||
$this->createModelRelation(
|
||||
$request->header->account,
|
||||
$news->getId(),
|
||||
$news->id,
|
||||
(int) $media,
|
||||
NewsArticleMapper::class,
|
||||
'media',
|
||||
|
|
@ -273,7 +273,7 @@ final class ApiController extends Controller
|
|||
if ($collection === null) {
|
||||
$collection = MediaMapper::getParentCollection($path)->limit(1)->execute();
|
||||
|
||||
if ($collection instanceof NullCollection) {
|
||||
if ($collection->id === 0) {
|
||||
$collection = $this->app->moduleManager->get('Media')->createRecursiveMediaCollection(
|
||||
$path,
|
||||
$request->header->account,
|
||||
|
|
@ -284,8 +284,8 @@ final class ApiController extends Controller
|
|||
|
||||
$this->createModelRelation(
|
||||
$request->header->account,
|
||||
$collection->getId(),
|
||||
$ref->getId(),
|
||||
$collection->id,
|
||||
$ref->id,
|
||||
CollectionMapper::class,
|
||||
'sources',
|
||||
'',
|
||||
|
|
@ -310,7 +310,7 @@ final class ApiController extends Controller
|
|||
. $news->createdAt->format('Y') . '/'
|
||||
. $news->createdAt->format('m') . '/'
|
||||
. $news->createdAt->format('d') . '/'
|
||||
. $news->getId();
|
||||
. $news->id;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -337,7 +337,7 @@ final class ApiController extends Controller
|
|||
|
||||
// allow comments
|
||||
if ($request->hasData('allow_comments')
|
||||
&& !(($commentApi = $this->app->moduleManager->get('Comments')) instanceof NullModule)
|
||||
&& ($commentApi = $this->app->moduleManager->get('Comments'))::ID > 0
|
||||
) {
|
||||
/** @var \Modules\Comments\Controller\ApiController $commentApi */
|
||||
$commnetList = $commentApi->createCommentList();
|
||||
|
|
|
|||
|
|
@ -91,7 +91,7 @@ final class BackendController extends Controller implements DashboardElementInte
|
|||
|
||||
$ids = [];
|
||||
foreach ($objs as $news) {
|
||||
$ids[] = $news->getId();
|
||||
$ids[] = $news->id;
|
||||
}
|
||||
|
||||
/** @var \Modules\News\Models\NewsSeen[] $seenObjects */
|
||||
|
|
@ -171,9 +171,9 @@ final class BackendController extends Controller implements DashboardElementInte
|
|||
|
||||
$accountId = $request->header->account;
|
||||
|
||||
if ($article->createdBy->getId() !== $accountId
|
||||
if ($article->createdBy->id !== $accountId
|
||||
&& !$this->app->accountManager->get($accountId)->hasPermission(
|
||||
PermissionType::READ, $this->app->unitId, $this->app->appId, self::NAME, PermissionCategory::NEWS, $article->getId())
|
||||
PermissionType::READ, $this->app->unitId, $this->app->appId, self::NAME, PermissionCategory::NEWS, $article->id)
|
||||
) {
|
||||
$view->setTemplate('/Web/Backend/Error/403_inline');
|
||||
$response->header->status = RequestStatusCode::R_403;
|
||||
|
|
@ -186,7 +186,7 @@ final class BackendController extends Controller implements DashboardElementInte
|
|||
->where('seenBy', $request->header->account)
|
||||
->execute();
|
||||
|
||||
if ($seen instanceof NullNewsSeen) {
|
||||
if ($seen->id === 0) {
|
||||
$seen = new NewsSeen();
|
||||
$seen->seenBy = (int) $request->header->account;
|
||||
$seen->news = (int) $request->getData('id');
|
||||
|
|
@ -199,12 +199,12 @@ final class BackendController extends Controller implements DashboardElementInte
|
|||
$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->getId())
|
||||
PermissionType::MODIFY, $this->app->unitId, $this->app->appId, self::NAME, PermissionCategory::NEWS, $article->id)
|
||||
);
|
||||
|
||||
// allow comments
|
||||
if (!$article->comments !== null
|
||||
&& !($this->app->moduleManager->get('Comments') instanceof NullModule)
|
||||
&& $this->app->moduleManager->get('Comments')::ID > 0
|
||||
) {
|
||||
$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);
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ class NewsArticle implements \JsonSerializable
|
|||
* @var int
|
||||
* @since 1.0.0
|
||||
*/
|
||||
protected int $id = 0;
|
||||
public int $id = 0;
|
||||
|
||||
/**
|
||||
* Title.
|
||||
|
|
@ -71,7 +71,7 @@ class NewsArticle implements \JsonSerializable
|
|||
* @var int
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private int $type = NewsType::ARTICLE;
|
||||
public int $type = NewsType::ARTICLE;
|
||||
|
||||
/**
|
||||
* News status.
|
||||
|
|
@ -79,7 +79,7 @@ class NewsArticle implements \JsonSerializable
|
|||
* @var int
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private int $status = NewsStatus::DRAFT;
|
||||
public int $status = NewsStatus::DRAFT;
|
||||
|
||||
/**
|
||||
* Language.
|
||||
|
|
@ -87,7 +87,7 @@ class NewsArticle implements \JsonSerializable
|
|||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private string $language = ISO639x1Enum::_EN;
|
||||
public string $language = ISO639x1Enum::_EN;
|
||||
|
||||
/**
|
||||
* Unit
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ class NewsSeen
|
|||
* @var int
|
||||
* @since 1.0.0
|
||||
*/
|
||||
protected int $id = 0;
|
||||
public int $id = 0;
|
||||
|
||||
public \DateTime $seenAt;
|
||||
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ $newsList = $this->getData('news') ?? [];
|
|||
<?php
|
||||
$count = 0;
|
||||
foreach ($newsList as $key => $news) : ++$count;
|
||||
$url = UriFactory::build('{/base}/news/article?{?}&id=' . $news->getId());
|
||||
$url = UriFactory::build('{/base}/news/article?{?}&id=' . $news->id);
|
||||
$color = 'darkred';
|
||||
|
||||
if ($news->getType() === NewsType::ARTICLE) { $color = 'green'; }
|
||||
|
|
|
|||
|
|
@ -18,8 +18,8 @@ use phpOMS\Uri\UriFactory;
|
|||
/** @var \Modules\News\Models\NewsArticle[] $newsList */
|
||||
$newsList = $this->getData('news') ?? [];
|
||||
|
||||
$previous = empty($newsList) ? 'news/archive' : 'news/archive?{?}&id=' . \reset($newsList)->getId() . '&ptype=p';
|
||||
$next = empty($newsList) ? 'news/archive' : 'news/archive?{?}&id=' . \end($newsList)->getId() . '&ptype=n';
|
||||
$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(); ?>
|
||||
|
||||
|
|
@ -84,12 +84,12 @@ echo $this->getData('nav')->render(); ?>
|
|||
$count = 0;
|
||||
|
||||
foreach ($newsList as $key => $news) : ++$count;
|
||||
$url = UriFactory::build('{/base}/news/article?{?}&id=' . $news->getId());
|
||||
$url = UriFactory::build('{/base}/news/article?{?}&id=' . $news->id);
|
||||
?>
|
||||
<tr tabindex="0" data-href="<?= $url; ?>">
|
||||
<td><span class="tag"><?= $this->getHtml('TYPE' . $news->getType()); ?></span></a>
|
||||
<td><a href="<?= $url; ?>"><?= $this->printHtml($news->title); ?></a>
|
||||
<td><a class="content" href="<?= UriFactory::build('{/base}/profile/single?{?}&for=' . $news->createdBy->getId()); ?>"><?= $this->printHtml($news->createdBy->name2 . ', ' . $news->createdBy->name1); ?></a>
|
||||
<td><a class="content" href="<?= UriFactory::build('{/base}/profile/single?{?}&for=' . $news->createdBy->id); ?>"><?= $this->printHtml($news->createdBy->name2 . ', ' . $news->createdBy->name1); ?></a>
|
||||
<td><a href="<?= $url; ?>"><?= $this->printHtml($news->publish->format('Y-m-d')); ?></a>
|
||||
<?php endforeach; ?>
|
||||
<?php if ($count === 0) : ?>
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ use phpOMS\Uri\UriFactory;
|
|||
|
||||
/** @var \Modules\News\Models\NewsArticle $news */
|
||||
$news = $this->getData('news') ?? new NullNewsArticle();
|
||||
$isNewArticle = $news instanceof NullNewsArticle;
|
||||
$isNewArticle = $news->id === 0;
|
||||
$languages = \phpOMS\Localization\ISO639Enum::getConstants();
|
||||
|
||||
/** @var \phpOMS\Views\View $this */
|
||||
|
|
|
|||
|
|
@ -20,19 +20,19 @@ use phpOMS\Utils\Parser\Markdown\Markdown;
|
|||
$newsList = $this->getData('news');
|
||||
$seen = $this->getData('seen') ?? [];
|
||||
|
||||
$previous = empty($newsList) ? 'news/dashboard' : 'news/dashboard?{?}&id=' . \reset($newsList)->getId() . '&ptype=p';
|
||||
$next = empty($newsList) ? 'news/dashboard' : 'news/dashboard?{?}&id=' . \end($newsList)->getId() . '&ptype=n';
|
||||
$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(); ?>
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<?php foreach ($newsList as $news) :
|
||||
$url = UriFactory::build('{/base}/news/article?id=' . $news->getId());
|
||||
$profile = UriFactory::build('profile/single?{?}&id=' . $news->createdBy->getId());
|
||||
$url = UriFactory::build('{/base}/news/article?id=' . $news->id);
|
||||
$profile = UriFactory::build('profile/single?{?}&id=' . $news->createdBy->id);
|
||||
?>
|
||||
<div class="portlet">
|
||||
<div class="portlet-head">
|
||||
<?= !($isSeen = \in_array($news->getId(), $seen)) ? '<strong>' : ''; ?>
|
||||
<?= !($isSeen = \in_array($news->id, $seen)) ? '<strong>' : ''; ?>
|
||||
<a href="<?= $url; ?>"><?= $this->printHtml($news->title); ?></a>
|
||||
<span class="floatRight">
|
||||
<a class="content" href="<?= $profile; ?>"><?= $this->printHtml($this->renderUserName('%3$s %2$s %1$s', [$news->createdBy->name1, $news->createdBy->name2, $news->createdBy->name3, $news->createdBy->login ?? ''])); ?>
|
||||
|
|
|
|||
|
|
@ -18,8 +18,8 @@ use phpOMS\Uri\UriFactory;
|
|||
/** @var \Modules\News\Models\NewsArticle[] $newsList */
|
||||
$newsList = $this->getData('news') ?? [];
|
||||
|
||||
$previous = empty($newsList) ? 'news/archive' : 'news/archive?{?}&id=' . \reset($newsList)->getId() . '&ptype=p';
|
||||
$next = empty($newsList) ? 'news/archive' : 'news/archive?{?}&id=' . \end($newsList)->getId() . '&ptype=n';
|
||||
$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(); ?>
|
||||
|
||||
|
|
@ -84,12 +84,12 @@ echo $this->getData('nav')->render(); ?>
|
|||
$count = 0;
|
||||
|
||||
foreach ($newsList as $key => $news) : ++$count;
|
||||
$url = UriFactory::build('{/base}/news/edit?{?}&id=' . $news->getId());
|
||||
$url = UriFactory::build('{/base}/news/edit?{?}&id=' . $news->id);
|
||||
?>
|
||||
<tr tabindex="0" data-href="<?= $url; ?>">
|
||||
<td><span class="tag"><?= $this->getHtml('TYPE' . $news->getType()); ?></span></a>
|
||||
<td><a href="<?= $url; ?>"><?= $this->printHtml($news->title); ?></a>
|
||||
<td><a class="content" href="<?= UriFactory::build('{/base}/profile/single?{?}&for=' . $news->createdBy->getId()); ?>"><?= $this->printHtml($news->createdBy->name2 . ', ' . $news->createdBy->name1); ?></a>
|
||||
<td><a class="content" href="<?= UriFactory::build('{/base}/profile/single?{?}&for=' . $news->createdBy->id); ?>"><?= $this->printHtml($news->createdBy->name2 . ', ' . $news->createdBy->name1); ?></a>
|
||||
<td><a href="<?= $url; ?>"><?= $this->printHtml($news->publish->format('Y-m-d')); ?></a>
|
||||
<?php endforeach; ?>
|
||||
<?php if ($count === 0) : ?>
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ $editable = $this->getData('editable');
|
|||
/** @var \Modules\Tag\Models\Tag[] $tags */
|
||||
$tags = $news->getTags();
|
||||
|
||||
$profile = UriFactory::build('profile/single?{?}&id=' . $news->createdBy->getId());
|
||||
$profile = UriFactory::build('profile/single?{?}&id=' . $news->createdBy->id);
|
||||
|
||||
/** @var \phpOMS\Views\View $this */
|
||||
echo $this->getData('nav')->render(); ?>
|
||||
|
|
@ -44,12 +44,12 @@ echo $this->getData('nav')->render(); ?>
|
|||
<?php endforeach; ?>
|
||||
|
||||
<?php $files = $news->getMedia(); foreach ($files as $file) : ?>
|
||||
<span><a class="content" href="<?= UriFactory::build('{/base}/media/single?id=' . $file->getId());?>"><?= $file->name; ?></a></span>
|
||||
<span><a class="content" href="<?= UriFactory::build('{/base}/media/single?id=' . $file->id);?>"><?= $file->name; ?></a></span>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
<?php if ($editable) : ?>
|
||||
<div class="col-xs-6 end-xs plain-grid">
|
||||
<a tabindex="0" class="button" href="<?= UriFactory::build('{/base}/news/edit?id=' . $news->getId()); ?>"><?= $this->getHtml('Edit'); ?></a>
|
||||
<a tabindex="0" class="button" href="<?= UriFactory::build('{/base}/news/edit?id=' . $news->id); ?>"><?= $this->getHtml('Edit'); ?></a>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -65,7 +65,7 @@ trait ApiControllerNewsArticleTrait
|
|||
$this->module->apiNewsCreate($request, $response);
|
||||
|
||||
self::assertEquals('Controller Test Title', $response->get('')['response']->title);
|
||||
self::assertGreaterThan(0, $response->get('')['response']->getId());
|
||||
self::assertGreaterThan(0, $response->get('')['response']->id);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -99,7 +99,7 @@ trait ApiControllerNewsArticleTrait
|
|||
|
||||
$this->module->apiNewsGet($request, $response);
|
||||
|
||||
self::assertGreaterThan(0, $response->get('')['response']->getId());
|
||||
self::assertGreaterThan(0, $response->get('')['response']->id);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -137,7 +137,7 @@ trait ApiControllerNewsArticleTrait
|
|||
$request->setData('id', 1);
|
||||
$this->module->apiNewsDelete($request, $response);
|
||||
|
||||
self::assertEquals(1, $response->get('')['response']->getId());
|
||||
self::assertEquals(1, $response->get('')['response']->id);
|
||||
self::assertInstanceOf(NullNewsArticle::class, NewsArticleMapper::get()->where('id', 1)->execute());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -50,12 +50,12 @@ final class NewsArticleMapperTest extends \PHPUnit\Framework\TestCase
|
|||
$news->setType(NewsType::HEADLINE);
|
||||
|
||||
$id = NewsArticleMapper::create()->execute($news);
|
||||
self::assertGreaterThan(0, $news->getId());
|
||||
self::assertEquals($id, $news->getId());
|
||||
self::assertGreaterThan(0, $news->id);
|
||||
self::assertEquals($id, $news->id);
|
||||
|
||||
$newsR = NewsArticleMapper::get()->where('id', $news->getId())->execute();
|
||||
$newsR = NewsArticleMapper::get()->where('id', $news->id)->execute();
|
||||
self::assertEquals($news->createdAt->format('Y-m-d'), $newsR->createdAt->format('Y-m-d'));
|
||||
self::assertEquals($news->createdBy->getId(), $newsR->createdBy->getId());
|
||||
self::assertEquals($news->createdBy->id, $newsR->createdBy->id);
|
||||
self::assertEquals($news->content, $newsR->content);
|
||||
self::assertEquals($news->plain, $newsR->plain);
|
||||
self::assertEquals($news->title, $newsR->title);
|
||||
|
|
|
|||
|
|
@ -46,8 +46,8 @@ final class NewsArticleTest extends \PHPUnit\Framework\TestCase
|
|||
*/
|
||||
public function testDefault() : void
|
||||
{
|
||||
self::assertEquals(0, $this->news->getId());
|
||||
self::assertEquals(0, $this->news->createdBy->getId());
|
||||
self::assertEquals(0, $this->news->id);
|
||||
self::assertEquals(0, $this->news->createdBy->id);
|
||||
self::assertEquals('', $this->news->title);
|
||||
self::assertEquals('', $this->news->content);
|
||||
self::assertEquals((new \DateTime('now'))->format('Y-m-d'), $this->news->createdAt->format('Y-m-d'));
|
||||
|
|
@ -68,7 +68,7 @@ final class NewsArticleTest extends \PHPUnit\Framework\TestCase
|
|||
public function testCreatorInputOutput() : void
|
||||
{
|
||||
$this->news->createdBy = new NullAccount(1);
|
||||
self::assertEquals(1, $this->news->createdBy->getId());
|
||||
self::assertEquals(1, $this->news->createdBy->id);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ final class NewsSeenTest extends \PHPUnit\Framework\TestCase
|
|||
*/
|
||||
public function testDefault() : void
|
||||
{
|
||||
self::assertEquals(0, $this->seen->getId());
|
||||
self::assertEquals(0, $this->seen->id);
|
||||
self::assertEquals(0, $this->seen->seenBy);
|
||||
self::assertInstanceOf('\DateTime', $this->seen->seenAt);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -37,6 +37,6 @@ final class NullNewsArticleTest extends \PHPUnit\Framework\TestCase
|
|||
public function testId() : void
|
||||
{
|
||||
$null = new NullNewsArticle(2);
|
||||
self::assertEquals(2, $null->getId());
|
||||
self::assertEquals(2, $null->id);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -37,6 +37,6 @@ final class NullNewsSeenTest extends \PHPUnit\Framework\TestCase
|
|||
public function testId() : void
|
||||
{
|
||||
$null = new NullNewsSeen(2);
|
||||
self::assertEquals(2, $null->getId());
|
||||
self::assertEquals(2, $null->id);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user