public function postAdd($pageId = 0, $groupId = 0)
 {
     $page_version = PageVersion::prepareNew();
     $page_info = Request::input('page_info') ?: [];
     $page_info_lang = Request::input('page_info_lang') ?: [];
     $page_groups = Request::input('page_groups') ?: [];
     $page_info_other = Request::input('page_info_other') ?: [];
     $page = new Page();
     if (!$page->savePostData($page_version, $page_info, $page_info_lang, $page_groups, $page_info_other)) {
         $this->getAdd($pageId);
         return null;
     } else {
         AdminLog::new_log('Added page \'' . $page->pageCurrentLang->name . '\' (Page ID ' . $page->id . ')');
         return \redirect()->route('coaster.admin.pages.edit', ['pageId' => $page->id]);
     }
 }
示例#2
0
 /**
  * Saves page data as new page (will update page groups)
  * @param array $pagePost
  * @param array $pageLangPost
  * @param array $pageGroupsPost
  * @param array $pageInfoOther
  * @return Page|false
  */
 public function saveDuplicateFromPostData($pagePost, $pageLangPost, $pageGroupsPost, $pageInfoOther = [])
 {
     /** @var Page $duplicatePage */
     $duplicatePage = $this->replicate();
     $duplicatePage->setRelations([]);
     $pageLangPost['name'] = preg_replace('/\\s+Duplicate$/', '', $pageLangPost['name']) . ' Duplicate';
     $pageLangPost['url'] = preg_replace('/--v\\w+$/', '', $pageLangPost['url']) . '--v' . base_convert(microtime(true), 10, 36);
     $pageVersion = PageVersion::prepareNew();
     if ($duplicatePage->savePostData($pageVersion, $pagePost, $pageLangPost, $pageGroupsPost, $pageInfoOther)) {
         // duplicate role actions from original page
         foreach (UserRole::all() as $role) {
             /** @var \Illuminate\Database\Eloquent\Relations\BelongsToMany $pageActionsRelation */
             $pageActionsRelation = $role->page_actions();
             /** @var Collection $pageActions */
             $pageActions = $pageActionsRelation->where('page_id', '=', $duplicatePage->id)->get();
             if (!$pageActions->isEmpty()) {
                 foreach ($pageActions as $pageAction) {
                     $pageActionsRelation->attach($duplicatePage->id, ['action_id' => $pageAction->pivot->action_id, 'access' => $pageAction->pivot->access]);
                 }
             }
         }
         return $duplicatePage;
     } else {
         return false;
     }
 }