示例#1
0
 /**
  * code for all actions of function "general"
  *
  * @throws LFException raised if something failes
  * @return boolean true or false (only false if some files should be mailed)
  */
 private function actionFuncGeneral()
 {
     // get vars
     $splitFile = t3lib_div::_POST('splitFile');
     $transFile = t3lib_div::_POST('transFile');
     $langModes = t3lib_div::_POST('langModes');
     $language = t3lib_div::_POST('language');
     $metaArray = t3lib_div::_POST('meta');
     $mailIt = t3lib_div::_POST('mailIt');
     $sendMail = t3lib_div::_POST('sendMail');
     $emailToAddress = t3lib_div::_POST('mailItEmailToAddress');
     $emailFromAddress = t3lib_div::_POST('mailItEmailFromAddress');
     $emailSubject = t3lib_div::_POST('mailItEmailSubject');
     $emailText = t3lib_div::_POST('mailItEmailText');
     // redirect
     if (!empty($language)) {
         header("Location: http://" . $_SERVER['HTTP_HOST'] . rtrim($_SERVER['PHP_SELF'], '/\\') . '?SET[langList]=' . $language . '&SET[function]=const.treeview');
     }
     // zip and mail selected languages
     if (is_array($mailIt)) {
         if (!$sendMail) {
             return false;
         }
         $zipFile = new zipfile();
         foreach ($mailIt as $langKey => $in) {
             $origin = $this->fileObj->getOriginLangData($langKey);
             try {
                 $saveOrigin = typo3Lib::transTypo3File($origin, false);
                 $saveOrigin = str_replace('EXT:', '', $saveOrigin);
             } catch (Exception $e) {
                 $saveOrigin = substr($origin, strlen(PATH_site));
             }
             $zipFile->addFile(file_get_contents($origin), $saveOrigin);
         }
         $dumpBuffer = $zipFile->file();
         // try to send mail
         try {
             sgLib::sendMail($emailSubject, $emailText, $emailFromAddress, $emailToAddress, $dumpBuffer, 'files.zip');
         } catch (Exception $e) {
             throw new LFException('failure.failure', 0, '(' . $e->getMessage() . ')');
         }
     }
     // write meta informations
     try {
         $this->execWrite(array(), $metaArray);
     } catch (LFException $e) {
         throw $e;
     }
     // split or merge
     if ($splitFile == 1 || $splitFile == 2 || $splitFile == 3 || is_array($langModes)) {
         // set vars
         if ($splitFile != 1 && $splitFile != 2 && $splitFile != 3) {
             $splitFile = 0;
         }
         $langKeys = tx_lfeditor_mod1_functions::buildLangArray();
         // generate langModes
         foreach ($langKeys as $langKey) {
             if (!isset($langModes[$langKey])) {
                 $langModes[$langKey] = $splitFile;
             }
         }
         // exec split or merge
         try {
             $this->execSplitFile($langModes);
         } catch (LFException $e) {
             throw $e;
         }
         // reinitialize file object
         try {
             $this->initFileObject($this->MOD_SETTINGS['langFileList'], $this->MOD_SETTINGS['extList'], $this->MOD_SETTINGS['wsList']);
         } catch (LFException $e) {
             throw $e;
         }
     }
     // transform file
     try {
         if (!empty($transFile) && $this->fileObj->getVar('fileType') != $transFile) {
             $newFile = sgLib::setFileExtension($transFile, $this->fileObj->getVar('relFile'));
             $this->execTransform($transFile, $newFile);
             if ($this->MOD_SETTINGS['wsList'] != 'xll') {
                 header("Location: http://" . $_SERVER['HTTP_HOST'] . rtrim($_SERVER['PHP_SELF'], '/\\') . '?SET[langFileList]=' . $newFile);
             }
         }
     } catch (LFException $e) {
         throw $e;
     }
     return true;
 }