From cf1f0b43be010bdde0fb46538b5f33f4e649caf4 Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Sun, 9 Oct 2016 20:07:30 +0200 Subject: [PATCH] Fix install --- Admin/Install/Navigation.php | 2 +- Admin/Installer.php | 4 ++-- Controller.php | 28 +++++++++++++++++++++++++++- 3 files changed, 30 insertions(+), 4 deletions(-) diff --git a/Admin/Install/Navigation.php b/Admin/Install/Navigation.php index e2e8bc8..3c68583 100644 --- a/Admin/Install/Navigation.php +++ b/Admin/Install/Navigation.php @@ -29,7 +29,7 @@ use phpOMS\DataStorage\Database\Pool; */ class Navigation { - public static function install(Pool $dbPool) + public static function install(string $path, Pool $dbPool) { $navData = json_decode(file_get_contents(__DIR__ . '/Navigation.install.json'), true); diff --git a/Admin/Installer.php b/Admin/Installer.php index 6c7ac8c..ab5f51d 100644 --- a/Admin/Installer.php +++ b/Admin/Installer.php @@ -37,9 +37,9 @@ class Installer extends InstallerAbstract /** * {@inheritdoc} */ - public static function install(Pool $dbPool, InfoManager $info) + public static function install(string $path, Pool $dbPool, InfoManager $info) { - parent::install($dbPool, $info); + parent::install($path, $dbPool, $info); switch ($dbPool->get('core')->getType()) { case DatabaseType::MYSQL: diff --git a/Controller.php b/Controller.php index 5082971..2322020 100644 --- a/Controller.php +++ b/Controller.php @@ -15,9 +15,13 @@ */ namespace Modules\News; +use Model\Message\FormValidation; use Modules\News\Models\NewsArticle; use Modules\News\Models\NewsArticleMapper; +use Modules\News\Models\NewsStatus; +use Modules\News\Models\NewsType; use phpOMS\Account\Account; +use phpOMS\Localization\ISO639Enum; use phpOMS\Message\RequestAbstract; use phpOMS\Message\ResponseAbstract; use phpOMS\Module\ModuleAbstract; @@ -171,6 +175,28 @@ class Controller extends ModuleAbstract implements WebInterface */ public function apiNewsCreate(RequestAbstract $request, ResponseAbstract $response, $data = null) { + $val = []; + if ( + ($val['title'] = empty($request->getData('title'))) + || ($val['plain'] = empty($request->getData('plain'))) + || ($val['lang'] = ( + $request->getData('lang') !== null + && !ISO639Enum::isValidValue(strtolower($request->getData('lang'))) + )) + || ($val['type'] = ( + $request->getData('type') === null + || !NewsType::isValidValue((int) $request->getData('type')) + )) + || ($val['status'] = ( + $request->getData('status') === null + || !NewsStatus::isValidValue((int) $request->getData('status')) + )) + ) { + $response->set('news_create', new FormValidation($val)); + + return; + } + $newsArticle = new NewsArticle(); $newsArticle->setCreatedBy($request->getAccount()->getId()); $newsArticle->setCreatedAt(new \DateTime('now')); @@ -178,7 +204,7 @@ class Controller extends ModuleAbstract implements WebInterface $newsArticle->setTitle($request->getData('title') ?? ''); $newsArticle->setPlain($request->getData('plain') ?? ''); $newsArticle->setContent($request->getData('content') ?? ''); - $newsArticle->setLanguage($request->getData('lang') ?? $request->getL11n()->getLanguage()); + $newsArticle->setLanguage(strtolower($request->getData('lang') ?? $request->getL11n()->getLanguage())); $newsArticle->setType((int) ($request->getData('type') ?? 1)); $newsArticle->setStatus((int) ($request->getData('status') ?? 1)); $newsArticle->setFeatured((bool) ($request->getData('featured') ?? true));