FEATURE #2354 @2h30m: add pipeline for edit and create new content
This commit is contained in:
@@ -30,41 +30,6 @@ class Article extends Handler implements ContentTitles, AdvancedContentModifier,
|
||||
return self::getExtendedFormInputsCreate();
|
||||
}
|
||||
|
||||
/**
|
||||
* Save module-specific values into database
|
||||
*
|
||||
* @param Content $content
|
||||
* @param Request $request
|
||||
*
|
||||
* @return mixed|void
|
||||
*/
|
||||
public static function createNew(Content &$content, array $inputData)
|
||||
{
|
||||
$content->moduleSettings = ['allowComments' => (int)isset($inputData['allowComments'])];
|
||||
}
|
||||
|
||||
/**
|
||||
* Method used for editing existing content page.
|
||||
*
|
||||
* Reason why it is separated from createNew() method is simple - we need to save history of changes.
|
||||
*
|
||||
* @param Content $content
|
||||
* @param Request $request
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public static function edit(Content $content, $request)
|
||||
{
|
||||
$settings = $content->moduleSettings;
|
||||
if (!is_object($settings))
|
||||
$settings = new \stdClass();
|
||||
|
||||
$settings->allowComments = isset($request['allowComments']) ? (int)$request['allowComments'] : 0;
|
||||
|
||||
$content->moduleSettings = $settings;
|
||||
$content->save();
|
||||
}
|
||||
|
||||
/**
|
||||
* Register admin menu
|
||||
*
|
||||
|
||||
@@ -18,7 +18,7 @@ class LoadCommentsForBlogpost implements Process
|
||||
*/
|
||||
function handle(Content & $content)
|
||||
{
|
||||
if ($content->handler != Article::class)
|
||||
if ($content->moduleHandler != Article::class)
|
||||
return;
|
||||
|
||||
$content->comments = new Collection();
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
namespace Modules\Blog\Article\Pipeline\SaveContent;
|
||||
|
||||
use App\CMS\Contracts\Content\SavePipeline\Process;
|
||||
use App\Models\Content\Content;
|
||||
use Modules\Blog\Article\Handlers\Article;
|
||||
|
||||
class TurnCommentsOnOrOff implements Process
|
||||
{
|
||||
/**
|
||||
* Process and modify given page
|
||||
*
|
||||
* @param Content $content
|
||||
* @param array $input
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
function handle(Content & $content, array & $input)
|
||||
{
|
||||
if ($content->moduleHandler !== Article::class) {
|
||||
return;
|
||||
}
|
||||
|
||||
$settings = $content->moduleSettings;
|
||||
$settings['allowComments'] = isset($input['allowComments']) ? (int)$input['allowComments'] : 0;
|
||||
$content->moduleSettings = $settings;
|
||||
$content->save();
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
use App\Providers\ModuleServiceProvider;
|
||||
use Modules\Blog\Article\Pipeline\DisplayContent\LoadCommentsForBlogpost;
|
||||
use Modules\Blog\Article\Pipeline\SaveContent\TurnCommentsOnOrOff;
|
||||
|
||||
class ArticleServiceProvider extends ModuleServiceProvider
|
||||
{
|
||||
@@ -17,8 +18,9 @@ class ArticleServiceProvider extends ModuleServiceProvider
|
||||
$this->app->register(ArticleEventServiceProvider::class);
|
||||
|
||||
// load comments for blogpost
|
||||
$pipeline = app('displayPipeline');
|
||||
$pipeline->add(LoadCommentsForBlogpost::class);
|
||||
app('displayPipeline')->add(LoadCommentsForBlogpost::class);
|
||||
|
||||
app('saveContentPipeline')->add(TurnCommentsOnOrOff::class);
|
||||
}
|
||||
|
||||
protected function setModuleAlias()
|
||||
|
||||
@@ -24,7 +24,7 @@ class LoadArticlesForList implements Process
|
||||
function handle(Content & $page)
|
||||
{
|
||||
// load articles only for article list
|
||||
if ($page->handler != ArticleList::class)
|
||||
if ($page->moduleHandler != ArticleList::class)
|
||||
return;
|
||||
|
||||
$articles = ArticleModel::where('moduleHandler', Article::class)
|
||||
|
||||
Reference in New Issue
Block a user