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
]);
}