コード例 #1
0
ファイル: manager.php プロジェクト: notzen/ImpressPages-CMS
 function manage()
 {
     global $cms;
     global $parametersMod;
     $answer = '';
     if (isset($_GET['action'])) {
         switch ($_GET['action']) {
             case 'import':
                 $standardForm = new \Library\Php\Form\Standard($this->importFields);
                 $errors = $standardForm->getErrors();
                 if (sizeof($errors) > 0) {
                     $answer = $standardForm->generateErrorAnswer($errors);
                 } else {
                     $fileUpload = new \Library\Php\File\UploadFile();
                     $fileUpload->allowOnly(array("php", "conf", "txt"));
                     $file = $fileUpload->upload('config', TMP_FILE_DIR);
                     if ($file == UPLOAD_ERR_OK) {
                         $_SESSION['backend_modules']['developer']['config_exp_imp']['uploaded_file'] = BASE_DIR . TMP_FILE_DIR . $fileUpload->fileName;
                         $answer .= HtmlOutput::header();
                         $answer .= '
             <script type="text/javascript">
               //<![CDATA[
               parent.document.location = \'' . $cms->generateUrl($cms->curModId, 'action=import_uploaded') . '\';
               //]]
             </script>';
                         $answer .= HtmlOutput::footer();
                     } else {
                         $errors['config'] = 'impossible to upload';
                         $answer .= HtmlOutput::header();
                         $answer .= $standardForm->generateErrorAnswer($errors);
                         $answer .= HtmlOutput::footer();
                     }
                 }
                 break;
             case 'import_uploaded':
                 $info = pathinfo($_SESSION['backend_modules']['developer']['config_exp_imp']['uploaded_file']);
                 if ($info['extension'] == 'conf') {
                     $answer .= HtmlOutput::header();
                     $config = unserialize(file_get_contents($_SESSION['backend_modules']['developer']['config_exp_imp']['uploaded_file']));
                     $answer .= '<h1>' . htmlspecialchars($parametersMod->getValue('developer', 'config_exp_imp', 'admin_translations', 'import_title_preview')) . '</h1>';
                     $answer .= '<br /><a href="' . $cms->generateUrl($cms->curModId, 'action=import_confirmed') . '" class="button">' . htmlspecialchars($parametersMod->getValue('developer', 'config_exp_imp', 'admin_translations', 'import_button_preview')) . '</a><br /><br /><br />';
                     $answer .= $config->previewParameters();
                     $answer .= '<br /><a href="' . $cms->generateUrl($cms->curModId, 'action=import_confirmed') . '" class="button">' . htmlspecialchars($parametersMod->getValue('developer', 'config_exp_imp', 'admin_translations', 'import_button_preview')) . '</a><br /><br />';
                     $answer .= HtmlOutput::footer();
                 } else {
                     $answer .= HtmlOutput::header();
                     $answer .= '<h1>' . htmlspecialchars($parametersMod->getValue('developer', 'config_exp_imp', 'admin_translations', 'import_title_preview')) . '</h1>';
                     $answer .= '<br /><a href="' . $cms->generateUrl($cms->curModId, 'action=import_confirmed') . '" class="button">' . htmlspecialchars($parametersMod->getValue('developer', 'config_exp_imp', 'admin_translations', 'import_button_preview')) . '</a><br /><br /><br />';
                     $answer .= \Modules\developer\localization\Manager::previewParameters($_SESSION['backend_modules']['developer']['config_exp_imp']['uploaded_file']);
                     $answer .= '<br /><a href="' . $cms->generateUrl($cms->curModId, 'action=import_confirmed') . '" class="button">' . htmlspecialchars($parametersMod->getValue('developer', 'config_exp_imp', 'admin_translations', 'import_button_preview')) . '</a><br /><br />';
                     $answer .= HtmlOutput::footer();
                     $answer .= HtmlOutput::header();
                 }
                 break;
             case 'import_confirmed':
                 if (isset($_SESSION['backend_modules']['developer']['config_exp_imp']['uploaded_file'])) {
                     $info = pathinfo($_SESSION['backend_modules']['developer']['config_exp_imp']['uploaded_file']);
                     if ($info['extension'] == 'conf') {
                         $config = unserialize(file_get_contents($_SESSION['backend_modules']['developer']['config_exp_imp']['uploaded_file']));
                         $answer .= HtmlOutput::header();
                         //$config_import = new mod_developer_config_exp_imp_parameters();
                         //$config_import->save_parameters();
                         $config->saveParameters();
                         $answer .= '
             <div class="content">
               <h1>' . htmlspecialchars($parametersMod->getValue('developer', 'config_exp_imp', 'admin_translations', 'parameters_imported')) . '</h1>
               <a href="' . $cms->generateUrl($cms->curModId) . '" class="button">' . htmlspecialchars($parametersMod->getValue('developer', 'config_exp_imp', 'admin_translations', 'continue')) . '</a>
               <div class="clear"><!-- --></div>
             </div>
           ';
                         $answer .= HtmlOutput::footer();
                     } else {
                         $answer .= HtmlOutput::header();
                         //$config_import = new mod_developer_config_exp_imp_parameters();
                         //$config_import->save_parameters();
                         \Modules\developer\localization\Manager::saveParameters($_SESSION['backend_modules']['developer']['config_exp_imp']['uploaded_file']);
                         $answer .= '
           <div class="content">
             <h1>' . htmlspecialchars($parametersMod->getValue('developer', 'config_exp_imp', 'admin_translations', 'parameters_imported')) . '</h1>
             <a href="' . $cms->generateUrl($cms->curModId) . '" class="button">' . htmlspecialchars($parametersMod->getValue('developer', 'config_exp_imp', 'admin_translations', 'continue')) . '</a>
             <div class="clear">&nbsp;<!-- --></div>
           </div>
             ';
                         $answer .= HtmlOutput::footer();
                     }
                 }
                 break;
             case 'export':
                 $standardForm = new \Library\Php\Form\Standard($this->exportFields);
                 $errors = $standardForm->getErrors();
                 if (sizeof($errors) > 0) {
                     $answer .= HtmlOutput::header();
                     $answer .= $standardForm->generateErrorAnswer($errors);
                     $answer .= HtmlOutput::footer();
                 } else {
                     $file = $this->writeParametersToFile();
                     header("Content-type: application/octet-stream");
                     header("Content-Disposition: attachment; filename=\"" . $file . "\"");
                     $answer = file_get_contents(TMP_FILE_DIR . $file);
                 }
                 break;
         }
     } else {
         $answer .= HtmlOutput::header();
         $answer .= '<div class="content">';
         $answer .= '<h1>' . htmlspecialchars($parametersMod->getValue('developer', 'config_exp_imp', 'admin_translations', 'import_title')) . '</h1>';
         $answer .= $this->importForm();
         $answer .= '</div><div class="content">';
         $answer .= '<h1>' . htmlspecialchars($parametersMod->getValue('developer', 'config_exp_imp', 'admin_translations', 'export_title')) . '</h1>';
         $answer .= $this->exportForm();
         $answer .= '</div>';
         $answer .= HtmlOutput::footer();
     }
     return $answer;
 }