public function confirmAction()

in pp3/module/Application/src/Application/Controller/PluginController.php [149:231]


    public function confirmAction() {
        $session = new Container(PLUGIN_SESSION_NAMESPACE);
        $plugin = $session->plugin_registered; 
        if (!$plugin) {            
            return $this->redirect()->toRoute('plugin', array(
                'action' => 'index'
            ));
        }
        $req = $this->request;
        if ($req->isPost()) {
            $validatedData = $this->_validateAndCleanPluginData(
                $this->params()->fromPost('name'),
                $this->params()->fromPost('license'),
                $this->params()->fromPost('description'),
                $this->params()->fromPost('short_description'),
                $this->params()->fromPost('category'),
                $this->params()->fromPost('homepage'),
                array_key_exists('image-file', $_FILES) ? $_FILES['image-file'] : false
            );
            if ($validatedData) {
                $user = $this->_userRepository->find($this->getAuthenticatedUserId());
                $plugin->addAuthor($user);
                $plugin->setName($validatedData['name']);
                $plugin->setLicense($validatedData['license']);
                $plugin->setDescription($validatedData['description']);
                $plugin->setShortDescription($validatedData['short_description']);
                $plugin->setHomepage($validatedData['homepage']);
                $plugin->setAddedAt(new \DateTime('now'));
                $plugin->setLastUpdatedAt(new \DateTime('now'));
                // categ
                $plugin->removeCategories();
                $cat = $this->_categoryRepository->find($validatedData['category']);
                if ($cat) {
                    $plugin->addCategory($cat);
                }
                $cat2 = $this->params()->fromPost('category2');
                if ($cat2 && (!$cat || ($cat2 != $cat->getId()))) {
                    $cat2 = $this->_categoryRepository->find($this->params()->fromPost('category2'));
                    if ($cat2) {
                        //die(var_dump($cat2, $plugin->getCategories()[1], $validatedData['category']));
                        $plugin->addCategory($cat2);
                    }
                }

                $imageDir = $this->_config['pp3']['catalogSavepath'] . '/plugins/' . $plugin->getId();

                $oldImage = $plugin->getImage();

                // save image
                $im = $this->handleImgUpload($validatedData, $imageDir);
                if ($im) {
                    $plugin->setImage($im);
                }

                if($this->params()->fromPost('image-file-delete') == 'true') {
                    $plugin->setImage(null);
                }

                if($oldImage && $oldImage != $plugin->getImage()) {
                    unlink($imageDir . '/' . $oldImage);
                }

                $this->_pluginRepository->persist($plugin);
                $this->flashMessenger()->setNamespace('success')->addMessage('Plugin registered.');
                $session->getManager()->getStorage()->clear(PLUGIN_SESSION_NAMESPACE);

                // send mail to admins asking for approval
                $this->_sendApprovalEmail($plugin);

                return $this->redirect()->toRoute('plugin', array(
                    'action' => 'list'
                ));
            } else {
                $this->flashMessenger()->setNamespace('error')->addMessage('Missing required data.');
            }            
        }
        return new ViewModel([
            'plugin' => $plugin,
            'categories' => $this->_categoryRepository->getAllCategoriesSortByName(),
            'imageTypes' => $this->_config['imageTypes'],
            'editMode' => false
        ]);
    }