Ejemplo n.º 1
0
 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);
 }