/** * Create action. * * @return void * * @Route("/create", methods={"GET", "POST"}, name="admin-category-create") */ public function createAction() { $formData = []; $message = ''; if ($this->request->hasPost('fsubmit')) { $formData = array_merge($formData, $this->request->getPost()); if ($formData['root'] > 1) { $root = Category::findFirst($formData['root']); } else { $root = self::checkRoot(); } // Create category $myCategory = new Category(); $myCategory->assign(['iconpath' => $formData['iconpath'], 'status' => $formData['status'], 'root' => $formData['root']]); // Create category languages $langPacks = []; // Create default language record when chosen language != default language. if ($formData['lcode'] != $this->config->global->defaultLanguage) { $langPacks[0] = new CategoryLang(); $langPacks[0]->name = 'n/a'; $langPacks[0]->lcode = $this->config->global->defaultLanguage; } // Create selected language $langPacks[1] = new CategoryLang(); $langPacks[1]->assign(['lcode' => $formData['lcode'], 'name' => $formData['name'], 'description' => $formData['description'], 'seokeyword' => $formData['seokeyword'], 'seodescription' => $formData['seodescription']]); // Add related language to category $myCategory->lang = $langPacks; if ($myCategory->appendTo($root)) { $formData = []; $this->flash->success(str_replace('###name###', $myCategory->getOneLangBySession()->name, $this->lang->_('message-create-category-success'))); } else { foreach ($myCategory->getMessages() as $msg) { $message .= $this->lang->_($msg->getMessage()) . '<br />'; } $this->flash->error($message); } } $this->bc->add($this->lang->_('title-index'), 'admin/category'); $this->bc->add($this->lang->_('title-create'), 'admin/category/create'); $this->view->setVars(['bc' => $this->bc->generate(), 'formData' => $formData, 'statusList' => Category::getStatusList(), 'categories' => Category::find(['order' => 'lft']), 'languages' => Language::find()]); }