Example #1
0
 /**
  * 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()]);
 }