public function render() { require_once $this->_pm->getPathinfo()->getRootLib() . '/IfwPsn/Wp/Upload.php'; $uploader = new IfwPsn_Wp_Upload($this->_id); $uploader->setMimeTypes(array('zip' => 'application/zip', 'zip' => 'application/octet-stream')); echo '<div id="module_upload">'; if ($this->_extendingDocUrl != '') { echo '<div class="extending_doc_link"><a href="' . $this->_extendingDocUrl . '" target="_blank">' . sprintf(__('Learn how to extend %s', 'ifw'), $this->_pm->getAbbrUpper()) . '</a></div>'; } echo '<h3>' . __('Upload module', 'ifw') . '</h3>'; $uploader->displayForm($this->_optionsUrl); if ($uploader->isUploaded()) { if ($uploader->isSuccess()) { try { // handle the module archive $archive = new IfwPsn_Wp_Module_Archive($uploader->getFileInfo(), $this->_pm); if ($archive->isValid()) { $archive->extractTo($this->_pm->getBootstrap()->getModuleManager()->getCustomModulesLocation()); $archive->close(); } $this->_pm->getController()->getMessenger()->addMessage(__('Module installed.', 'ifw')); } catch (Exception $e) { $this->_pm->getController()->getMessenger()->addMessage($e->getMessage(), 'error'); } $uploader->remove(); } else { $this->_pm->getController()->getMessenger()->addMessage(__('Error', 'ifw') . ': ' . $uploader->getError(), 'error'); } $this->_pm->getController()->gotoRoute($this->getController(), $this->getAppaction(), $this->getPage()); } echo '</div>'; $tpl = IfwPsn_Wp_Tpl::getFilesytemInstance($this->_pm); $moduleManager = $this->_pm->getBootstrap()->getModuleManager(); $context = array('custom_modules' => $moduleManager->getCustomModules(), 'activate_url' => wp_nonce_url(admin_url($this->_optionsUrl), $this->_activateNonceName, $this->_activateActionName), 'deactivate_url' => wp_nonce_url(admin_url($this->_optionsUrl), $this->_deactivateNonceName, $this->_deactivateActionName), 'delete_url' => wp_nonce_url(admin_url($this->_optionsUrl), $this->_deleteNonceName, $this->_deleteActionName)); echo $tpl->render('module_frontend.html.twig', $context); }