Esempio n. 1
0
 /**
  * Create package action.
  *
  * @return mixed
  *
  * @Route("/create", methods={"GET", "POST"}, name="admin-packages-create")
  */
 public function createAction()
 {
     $this->view->form = $form = new CreateForm();
     if (!$this->request->isPost() || !$form->isValid()) {
         return;
     }
     $data = $form->getValues();
     /** @var Package $package */
     $package = $form->getEntity();
     $package->save();
     $this->_setWidgetData($form, $package, $data);
     if (!empty($data['header'])) {
         $data['header'] = PHP_EOL . trim($data['header']) . PHP_EOL;
     }
     $packageManager = new Manager();
     $packageManager->createPackage($data);
     $this->_enablePackageConfig($package);
     $this->_updateMetadata();
     switch ($package->type) {
         case Manager::PACKAGE_TYPE_MODULE:
             $return = 'admin-packages';
             break;
         case Manager::PACKAGE_TYPE_THEME:
             $return = 'admin-packages-themes';
             break;
         case Manager::PACKAGE_TYPE_WIDGET:
             $return = 'admin-packages-widgets';
             break;
         case Manager::PACKAGE_TYPE_PLUGIN:
             $return = 'admin-packages-plugins';
             break;
         case Manager::PACKAGE_TYPE_LIBRARY:
             $return = 'admin-packages-libraries';
             break;
         default:
             $return = 'admin-packages';
             break;
     }
     $this->flashSession->success('New package created successfully!');
     return $this->response->redirect(['for' => $return]);
 }