コード例 #1
0
 function edit($args, $request)
 {
     $this->validate();
     $plugin =& $this->plugin;
     $this->setupTemplate($request);
     $locale = array_shift($args);
     $file = array_shift($args);
     if (!AppLocale::isLocaleValid($locale)) {
         $request->redirect(null, null, 'index');
     }
     $localeFiles = TranslatorAction::getLocaleFiles($locale);
     $miscFiles = TranslatorAction::getMiscLocaleFiles($locale);
     $emails = TranslatorAction::getEmailTemplates($locale);
     $templateMgr = TemplateManager::getManager($request);
     $localeFilesRangeInfo = $this->getRangeInfo($request, 'localeFiles');
     $miscFilesRangeInfo = $this->getRangeInfo($request, 'miscFiles');
     $emailsRangeInfo = $this->getRangeInfo($request, 'emails');
     import('lib.pkp.classes.core.ArrayItemIterator');
     $templateMgr->assign('localeFiles', new ArrayItemIterator($localeFiles, $localeFilesRangeInfo->getPage(), $localeFilesRangeInfo->getCount()));
     $templateMgr->assign('miscFiles', new ArrayItemIterator($miscFiles, $miscFilesRangeInfo->getPage(), $miscFilesRangeInfo->getCount()));
     $templateMgr->assign('emails', new ArrayItemIterator($emails, $emailsRangeInfo->getPage(), $emailsRangeInfo->getCount()));
     $templateMgr->assign('locale', $locale);
     $templateMgr->assign('masterLocale', MASTER_LOCALE);
     $templateMgr->display($plugin->getTemplatePath() . 'locale.tpl');
 }
コード例 #2
0
 /**
  * Export the locale files to the browser as a tarball.
  * Requires tar for operation (configured in config.inc.php).
  * @param $locale string Locale code for exported locale
  */
 function export($locale)
 {
     // Construct the tar command
     $tarBinary = Config::getVar('cli', 'tar');
     if (empty($tarBinary) || !file_exists($tarBinary)) {
         // We can use fatalError() here as we already have a user
         // friendly way of dealing with the missing tar on the
         // index page.
         fatalError('The tar binary must be configured in config.inc.php\'s cli section to use the export function of this plugin!');
     }
     $command = $tarBinary . ' cz';
     $localeFilesList = TranslatorAction::getLocaleFiles($locale);
     $localeFilesList = array_merge($localeFilesList, TranslatorAction::getMiscLocaleFiles($locale));
     $emailTemplateDao = DAORegistry::getDAO('EmailTemplateDAO');
     $localeFilesList[] = $emailTemplateDao->getMainEmailTemplateDataFilename($locale);
     foreach (array_values(TranslatorAction::getEmailFileMap($locale)) as $emailFile) {
     }
     // Include locale files (main file and plugin files)
     foreach ($localeFilesList as $file) {
         if (file_exists($file)) {
             $command .= ' ' . escapeshellarg($file);
         }
     }
     header('Content-Type: application/x-gtar');
     header("Content-Disposition: attachment; filename=\"{$locale}.tar.gz\"");
     header('Cache-Control: private');
     // Workarounds for IE weirdness
     passthru($command);
 }
コード例 #3
0
 function isLocaleFile($locale, $filename)
 {
     if (in_array($filename, TranslatorAction::getLocaleFiles($locale))) {
         return true;
     }
     if (in_array($filename, TranslatorAction::getMiscLocaleFiles($locale))) {
         return true;
     }
     if ($filename == Locale::getEmailTemplateFilename($locale)) {
         return true;
     }
     return false;
 }
コード例 #4
0
 function edit($args)
 {
     list($plugin) = TranslatorHandler::validate();
     TranslatorHandler::setupTemplate();
     $locale = array_shift($args);
     $file = array_shift($args);
     if (!Locale::isLocaleValid($locale)) {
         Request::redirect(null, null, 'index');
     }
     $localeFiles = TranslatorAction::getLocaleFiles($locale);
     $miscFiles = TranslatorAction::getMiscLocaleFiles($locale);
     $emails = TranslatorAction::getEmailTemplates($locale);
     $templateMgr =& TemplateManager::getManager();
     $localeFilesRangeInfo = Handler::getRangeInfo('localeFiles');
     $miscFilesRangeInfo = Handler::getRangeInfo('miscFiles');
     $emailsRangeInfo = Handler::getRangeInfo('emails');
     $templateMgr->assign('localeFiles', new ArrayItemIterator($localeFiles, $localeFilesRangeInfo->getPage(), $localeFilesRangeInfo->getCount()));
     $templateMgr->assign('miscFiles', new ArrayItemIterator($miscFiles, $miscFilesRangeInfo->getPage(), $miscFilesRangeInfo->getCount()));
     $templateMgr->assign('emails', new ArrayItemIterator($emails, $emailsRangeInfo->getPage(), $emailsRangeInfo->getCount()));
     $templateMgr->assign('locale', $locale);
     $templateMgr->assign('masterLocale', MASTER_LOCALE);
     $templateMgr->display($plugin->getTemplatePath() . 'locale.tpl');
 }
コード例 #5
0
 function isLocaleFile($locale, $filename)
 {
     if (in_array($filename, TranslatorAction::getLocaleFiles($locale))) {
         return true;
     }
     if (in_array($filename, TranslatorAction::getMiscLocaleFiles($locale))) {
         return true;
     }
     $emailTemplateDao =& DAORegistry::getDAO('EmailTemplateDAO');
     if ($filename == $emailTemplateDao->getMainEmailTemplateDataFilename($locale)) {
         return true;
     }
     return false;
 }
コード例 #6
0
 /**
  * Export the locale files to the browser as a tarball.
  * Requires tar (configured in config.inc.php) for operation.
  * @param $args array Parameters.
  * @param $request PKPRequest Request object.
  */
 function export($args, $request)
 {
     $locale = $request->getUserVar('locale');
     if (!AppLocale::isLocaleValid($locale)) {
         fatalError('Invalid locale.');
     }
     // Construct the tar command
     $tarBinary = Config::getVar('cli', 'tar');
     if (empty($tarBinary) || !file_exists($tarBinary)) {
         fatalError('cli.tar binary not properly configured.');
     }
     $command = $tarBinary . ' cz';
     $emailTemplateDao = DAORegistry::getDAO('EmailTemplateDAO');
     $localeFilesList = array_merge(TranslatorAction::getLocaleFiles($locale), TranslatorAction::getMiscLocaleFiles($locale), array($emailTemplateDao->getMainEmailTemplateDataFilename($locale)), array_values(TranslatorAction::getEmailFileMap($locale)));
     // Include locale files (main file and plugin files)
     foreach ($localeFilesList as $file) {
         if (file_exists($file)) {
             $command .= ' ' . escapeshellarg($file);
         }
     }
     header('Content-Type: application/x-gtar');
     header("Content-Disposition: attachment; filename=\"{$locale}.tar.gz\"");
     header('Cache-Control: private');
     // Workarounds for IE weirdness
     passthru($command);
 }
コード例 #7
0
 /**
  * Get the (validated) filename for the current request.
  * @param $request PKPRequest
  * @return string Filename
  */
 protected function _getFilename($request)
 {
     $filename = $request->getUserVar('filename');
     if (!in_array($filename, TranslatorAction::getMiscLocaleFiles($this->locale))) {
         fatalError('Invalid locale file specified!');
     }
     return $filename;
 }