mirror of
https://github.com/Karaka-Management/oms-News.git
synced 2026-02-15 16:08:42 +00:00
fixes Orange-Management/phpOMS#224 and fixes Orange-Management/phpOMS#212
This commit is contained in:
parent
d6de798934
commit
4d0ddae9e6
|
|
@ -14,11 +14,12 @@ declare(strict_types=1);
|
||||||
|
|
||||||
namespace Modules\News\Controller;
|
namespace Modules\News\Controller;
|
||||||
|
|
||||||
|
use Modules\Admin\Models\NullAccount;
|
||||||
use Modules\News\Models\NewsArticle;
|
use Modules\News\Models\NewsArticle;
|
||||||
use Modules\News\Models\NewsArticleMapper;
|
use Modules\News\Models\NewsArticleMapper;
|
||||||
use Modules\News\Models\NewsStatus;
|
use Modules\News\Models\NewsStatus;
|
||||||
use Modules\News\Models\NewsType;
|
|
||||||
|
|
||||||
|
use Modules\News\Models\NewsType;
|
||||||
use phpOMS\Account\Account;
|
use phpOMS\Account\Account;
|
||||||
use phpOMS\Localization\ISO639x1Enum;
|
use phpOMS\Localization\ISO639x1Enum;
|
||||||
use phpOMS\Message\NotificationLevel;
|
use phpOMS\Message\NotificationLevel;
|
||||||
|
|
@ -153,7 +154,7 @@ final class ApiController extends Controller
|
||||||
private function createNewsArticleFromRequest(RequestAbstract $request) : NewsArticle
|
private function createNewsArticleFromRequest(RequestAbstract $request) : NewsArticle
|
||||||
{
|
{
|
||||||
$newsArticle = new NewsArticle();
|
$newsArticle = new NewsArticle();
|
||||||
$newsArticle->setCreatedBy($request->getHeader()->getAccount());
|
$newsArticle->setCreatedBy(new NullAccount($request->getHeader()->getAccount()));
|
||||||
$newsArticle->setPublish(new \DateTime((string) ($request->getData('publish') ?? 'now')));
|
$newsArticle->setPublish(new \DateTime((string) ($request->getData('publish') ?? 'now')));
|
||||||
$newsArticle->setTitle((string) ($request->getData('title') ?? ''));
|
$newsArticle->setTitle((string) ($request->getData('title') ?? ''));
|
||||||
$newsArticle->setPlain($request->getData('plain') ?? '');
|
$newsArticle->setPlain($request->getData('plain') ?? '');
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,9 @@ declare(strict_types=1);
|
||||||
|
|
||||||
namespace Modules\News\Models;
|
namespace Modules\News\Models;
|
||||||
|
|
||||||
|
use Modules\Admin\Models\Account;
|
||||||
|
use Modules\Admin\Models\NullAccount;
|
||||||
|
use Modules\Tag\Models\Tag;
|
||||||
use phpOMS\Contract\ArrayableInterface;
|
use phpOMS\Contract\ArrayableInterface;
|
||||||
use phpOMS\Localization\ISO639x1Enum;
|
use phpOMS\Localization\ISO639x1Enum;
|
||||||
use phpOMS\Stdlib\Base\Exception\InvalidEnumValue;
|
use phpOMS\Stdlib\Base\Exception\InvalidEnumValue;
|
||||||
|
|
@ -95,10 +98,10 @@ class NewsArticle implements ArrayableInterface, \JsonSerializable
|
||||||
/**
|
/**
|
||||||
* Creator.
|
* Creator.
|
||||||
*
|
*
|
||||||
* @var int|\Modules\Admin\Models\Account
|
* @var Account
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
*/
|
*/
|
||||||
private $createdBy = 0;
|
private Account $createdBy;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Publish.
|
* Publish.
|
||||||
|
|
@ -119,7 +122,7 @@ class NewsArticle implements ArrayableInterface, \JsonSerializable
|
||||||
/**
|
/**
|
||||||
* Badge.
|
* Badge.
|
||||||
*
|
*
|
||||||
* @var array
|
* @var Tag[]
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
*/
|
*/
|
||||||
private array $badges = [];
|
private array $badges = [];
|
||||||
|
|
@ -131,14 +134,16 @@ class NewsArticle implements ArrayableInterface, \JsonSerializable
|
||||||
*/
|
*/
|
||||||
public function __construct()
|
public function __construct()
|
||||||
{
|
{
|
||||||
|
$this->createdBy = new NullAccount();
|
||||||
$this->createdAt = new \DateTime('now');
|
$this->createdAt = new \DateTime('now');
|
||||||
$this->publish = new \DateTime('now');
|
$this->publish = new \DateTime('now');
|
||||||
|
$this->account = new NullAccount();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get badges
|
* Get badges
|
||||||
*
|
*
|
||||||
* @return array
|
* @return Tag[]
|
||||||
*
|
*
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
*/
|
*/
|
||||||
|
|
@ -150,13 +155,13 @@ class NewsArticle implements ArrayableInterface, \JsonSerializable
|
||||||
/**
|
/**
|
||||||
* Add badge
|
* Add badge
|
||||||
*
|
*
|
||||||
* @param mixed $badge Badge to add
|
* @param Tag $badge Badge to add
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*
|
*
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
*/
|
*/
|
||||||
public function addBadge($badge) : void
|
public function addBadge(Tag $badge) : void
|
||||||
{
|
{
|
||||||
$this->badges[] = $badge;
|
$this->badges[] = $badge;
|
||||||
}
|
}
|
||||||
|
|
@ -296,11 +301,11 @@ class NewsArticle implements ArrayableInterface, \JsonSerializable
|
||||||
/**
|
/**
|
||||||
* Get created by
|
* Get created by
|
||||||
*
|
*
|
||||||
* @return int|\phpOMS\Account\Account
|
* @return Account
|
||||||
*
|
*
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
*/
|
*/
|
||||||
public function getCreatedBy()
|
public function getCreatedBy() : Account
|
||||||
{
|
{
|
||||||
return $this->createdBy;
|
return $this->createdBy;
|
||||||
}
|
}
|
||||||
|
|
@ -308,15 +313,15 @@ class NewsArticle implements ArrayableInterface, \JsonSerializable
|
||||||
/**
|
/**
|
||||||
* Set created by
|
* Set created by
|
||||||
*
|
*
|
||||||
* @param int $id Created by
|
* @param Account $account Created by
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*
|
*
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
*/
|
*/
|
||||||
public function setCreatedBy($id) : void
|
public function setCreatedBy(Account $account) : void
|
||||||
{
|
{
|
||||||
$this->createdBy = $id;
|
$this->createdBy = $account;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@ final class NewsArticleMapper extends DataMapperAbstract
|
||||||
*/
|
*/
|
||||||
protected static array $columns = [
|
protected static array $columns = [
|
||||||
'news_id' => ['name' => 'news_id', 'type' => 'int', 'internal' => 'id'],
|
'news_id' => ['name' => 'news_id', 'type' => 'int', 'internal' => 'id'],
|
||||||
'news_created_by' => ['name' => 'news_created_by', 'type' => 'int', 'internal' => 'createdBy'],
|
'news_created_by' => ['name' => 'news_created_by', 'type' => 'int', 'internal' => 'createdBy', 'readonly' => true],
|
||||||
'news_publish' => ['name' => 'news_publish', 'type' => 'DateTime', 'internal' => 'publish'],
|
'news_publish' => ['name' => 'news_publish', 'type' => 'DateTime', 'internal' => 'publish'],
|
||||||
'news_title' => ['name' => 'news_title', 'type' => 'string', 'internal' => 'title'],
|
'news_title' => ['name' => 'news_title', 'type' => 'string', 'internal' => 'title'],
|
||||||
'news_plain' => ['name' => 'news_plain', 'type' => 'string', 'internal' => 'plain'],
|
'news_plain' => ['name' => 'news_plain', 'type' => 'string', 'internal' => 'plain'],
|
||||||
|
|
|
||||||
|
|
@ -24,4 +24,15 @@ namespace Modules\News\Models;
|
||||||
*/
|
*/
|
||||||
final class NullNewsArticle extends NewsArticle
|
final class NullNewsArticle extends NewsArticle
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* Constructor
|
||||||
|
*
|
||||||
|
* @param int $id Model id
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
public function __construct(int $id = 0)
|
||||||
|
{
|
||||||
|
$this->id = $id;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user