Making datamapper static

This commit is contained in:
Dennis Eichhorn 2016-05-14 14:58:33 +02:00
parent 8e08dfa030
commit 697af0cedb
2 changed files with 23 additions and 30 deletions

View File

@ -18,7 +18,6 @@ namespace Modules\News;
use Modules\News\Models\NewsArticle; use Modules\News\Models\NewsArticle;
use Modules\News\Models\NewsArticleMapper; use Modules\News\Models\NewsArticleMapper;
use phpOMS\Account\Account; use phpOMS\Account\Account;
use phpOMS\Contract\RenderableInterface;
use phpOMS\Message\RequestAbstract; use phpOMS\Message\RequestAbstract;
use phpOMS\Message\ResponseAbstract; use phpOMS\Message\ResponseAbstract;
use phpOMS\Module\ModuleAbstract; use phpOMS\Module\ModuleAbstract;
@ -96,8 +95,7 @@ class Controller extends ModuleAbstract implements WebInterface
$view->setTemplate('/Modules/News/Theme/Backend/news-dashboard'); $view->setTemplate('/Modules/News/Theme/Backend/news-dashboard');
$view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1000701001, $request, $response)); $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1000701001, $request, $response));
$mapper = new NewsArticleMapper($this->app->dbPool->get()); $news = NewsArticleMapper::getNewest(50);
$news = $mapper->getNewest(50);
$view->addData('news', $news); $view->addData('news', $news);
return $view; return $view;
@ -119,8 +117,7 @@ class Controller extends ModuleAbstract implements WebInterface
$view->setTemplate('/Modules/News/Theme/Backend/news-single'); $view->setTemplate('/Modules/News/Theme/Backend/news-single');
$view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1000701001, $request, $response)); $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1000701001, $request, $response));
$newsArticleMapper = new NewsArticleMapper($this->app->dbPool->get()); $article = NewsArticleMapper::get((int) $request->getData('id'));
$article = $newsArticleMapper->get((int) $request->getData('id'));
$view->addData('news', $article); $view->addData('news', $article);
return $view; return $view;
@ -188,9 +185,7 @@ class Controller extends ModuleAbstract implements WebInterface
$newsArticle->setStatus($articleElements[8]); $newsArticle->setStatus($articleElements[8]);
$newsArticle->setFeatured($articleElements[9]); $newsArticle->setFeatured($articleElements[9]);
$newsArticleMapper = new NewsArticleMapper($this->app->dbPool->get()); return NewsArticleMapper::create($newsArticle);
return $newsArticleMapper->create($newsArticle);
} }
/** /**
@ -209,19 +204,18 @@ class Controller extends ModuleAbstract implements WebInterface
*/ */
public function getNewsListR(int $limit = 50, int $offset = 0, string $orderBy = 'news_created', string $ordered = 'ASC', Account $account = null) public function getNewsListR(int $limit = 50, int $offset = 0, string $orderBy = 'news_created', string $ordered = 'ASC', Account $account = null)
{ {
$newsArticleMapper = new NewsArticleMapper($this->app->dbPool->get()); $query = NewsArticleMapper::find('news.news_id', 'news.news_author', 'news.news_publish', 'news.news_title')
$query = $newsArticleMapper->find('news.news_id', 'news.news_author', 'news.news_publish', 'news.news_title') ->where('news.news_type', '=', 1)
->where('news.news_type', '=', 1) ->where('news.news_status', '=', 1)
->where('news.news_status', '=', 1) ->orderBy($orderBy, $ordered)
->orderBy($orderBy, $ordered) ->offset($offset)
->offset($offset) ->limit($limit);
->limit($limit);
if (isset($account)) { if (isset($account)) {
$query->where('account_permission.account_permission_account', '=', $account->getId()); $query->where('account_permission.account_permission_account', '=', $account->getId());
} }
return $newsArticleMapper->getAllByQuery($query); return NewsArticleMapper::getAllByQuery($query);
} }
/** /**
@ -240,19 +234,18 @@ class Controller extends ModuleAbstract implements WebInterface
*/ */
public function getHeadlineListR(int $limit = 50, int $offset = 0, string $orderBy = 'news_created', string $ordered = 'ASC', Account $account = null) public function getHeadlineListR(int $limit = 50, int $offset = 0, string $orderBy = 'news_created', string $ordered = 'ASC', Account $account = null)
{ {
$newsArticleMapper = new NewsArticleMapper($this->app->dbPool->get()); $query = NewsArticleMapper::find('news.news_id', 'news.news_author', 'news.news_publish', 'news.news_title')
$query = $newsArticleMapper->find('news.news_id', 'news.news_author', 'news.news_publish', 'news.news_title') ->where('news.news_type', '=', 0)
->where('news.news_type', '=', 0) ->where('news.news_status', '=', 1)
->where('news.news_status', '=', 1) ->orderBy($orderBy, $ordered)
->orderBy($orderBy, $ordered) ->offset($offset)
->offset($offset) ->limit($limit);
->limit($limit);
if (isset($account)) { if (isset($account)) {
$query->where('account_permission.account_permission_account', '=', $account->getId()); $query->where('account_permission.account_permission_account', '=', $account->getId());
} }
return $newsArticleMapper->getAllByQuery($query); return NewsArticleMapper::getAllByQuery($query);
} }
} }

View File

@ -75,12 +75,12 @@ class NewsArticleMapper extends DataMapperAbstract
* @since 1.0.0 * @since 1.0.0
* @author Dennis Eichhorn <d.eichhorn@oms.com> * @author Dennis Eichhorn <d.eichhorn@oms.com>
*/ */
public function create($obj) public static function create($obj, bool $relations = true)
{ {
try { try {
$objId = parent::create($obj); $objId = parent::create($obj, $relations);
$query = new Builder($this->db); $query = new Builder(self::$db);
$query->prefix($this->db->getPrefix()) $query->prefix(self::$db->getPrefix())
->insert( ->insert(
'account_permission_account', 'account_permission_account',
'account_permission_from', 'account_permission_from',
@ -96,7 +96,7 @@ class NewsArticleMapper extends DataMapperAbstract
->into('account_permission') ->into('account_permission')
->values($obj->getCreatedBy(), 'news', 'news', 1, $objId, 1, 1, 1, 1, 1); ->values($obj->getCreatedBy(), 'news', 'news', 1, $objId, 1, 1, 1, 1, 1);
$this->db->con->prepare($query->toSql())->execute(); self::$db->con->prepare($query->toSql())->execute();
} catch (\Exception $e) { } catch (\Exception $e) {
return false; return false;
} }
@ -114,7 +114,7 @@ class NewsArticleMapper extends DataMapperAbstract
* @since 1.0.0 * @since 1.0.0
* @author Dennis Eichhorn <d.eichhorn@oms.com> * @author Dennis Eichhorn <d.eichhorn@oms.com>
*/ */
public function find(...$columns) : Builder public static function find(...$columns) : Builder
{ {
return parent::find(...$columns)->from('account_permission') return parent::find(...$columns)->from('account_permission')
->where('account_permission.account_permission_for', '=', 'news') ->where('account_permission.account_permission_for', '=', 'news')