content = App::make(\App\CMS\Contracts\Repositories\Content::class); } /** * @param Request $request * @param $parameters * * @return Content */ public function handle(Request $request, $parameters) { list($moduleHandler) = $parameters; // create new page $page = new Content(); $page->template = $request->template; // setup basic info $page->user_id = \Auth::user()->id; $page->language = LaravelLocalization::getCurrentLocale(); $page->title = $request->title; $page->url = Str::slug($request->url); $page->published_from = empty($request->publishedFrom) ? null : $request->publishedFrom; $page->published_to = empty($request->publishedTo) ? null : $request->publishedTo; $page->meta_keywords = $request->metaKeywords; $page->meta_description = $request->metaDescription; $page->content = $request->pageContent; $page->status = $request->status; $page->module_handler = $moduleHandler; $page->category_id = (int)$request->category > 0 ? $request->category : null; $page->parent_id = $request->parentPage ? $request->parentPage : null; // upload file - if provided $file = $page->uploadTitlePhoto($request); $page->title_photo = $file ? $file['filename'] : null; // save module-specific stuff call_user_func_array([$request->handler, 'createNew'], [&$page, $request]); // let template to modify request and content page call_user_func_array([CurrentTemplate::handler(), 'beforeSave'], [&$page, $request]); // save content of page before (possible) uploading related files $page->save(); // upload files assigned to content page $page->uploadRelatedFiles($request); Event::fire(new CreateNewContent($this)); return $page; } public function getValidationRules($parameters) { return [ 'titlePhoto' => 'image', 'title' => 'required', 'url' => 'required|unique:contents,url', 'status' => 'required|in:draft,protected,public', 'title_photo' => 'exists:files,id', 'parentPage' => 'exists:contents,id', 'publishedFrom' => 'date', 'publishedTo' => 'date', ]; } }