Open Monograph Press  3.3.0
LocaleFileForm.inc.php
1 <?php
2 
12 import('lib.pkp.classes.form.Form');
13 
14 class LocaleFileForm extends Form {
16  var $filePath;
17 
19  var $locale;
20 
22  var $plugin;
23 
30  function __construct($customLocalePlugin, $filePath, $locale) {
31  parent::__construct($customLocalePlugin->getTemplateResource('localeFile.tpl'));
32  $this->plugin = $customLocalePlugin;
33  $this->filePath = $filePath;
34  $this->locale = $locale;
35  }
36 
40  function fetch($request) {
41  $file = $this->filePath;
43  if (!CustomLocaleAction::isLocaleFile($locale, $file)) throw new Exception("$file is not a locale file!");
44 
45  $contextFileManager = new ContextFileManager($request->getContext()->getId());
46  $customLocalePath = $contextFileManager->getBasePath() . "customLocale/$locale/$file";
47 
48  import('lib.pkp.classes.i18n.LocaleFile');
49  if ($contextFileManager->fileExists($customLocalePath)) $localeContents = LocaleFile::load($customLocalePath);
50  else $localeContents = null;
51  $referenceLocaleContents = LocaleFile::load($file);
52  $referenceLocaleContentsArray = [];
53  foreach ($referenceLocaleContents as $key => $value) {
54  $referenceLocaleContentsArray[] = [
55  'localeKey' => $key,
56  'value' => $value,
57  ];
58  }
59 
60  import('lib.pkp.classes.core.ArrayItemIterator');
61  $templateMgr = TemplateManager::getManager($request);
62  $templateMgr->assign(array(
63  'filePath' => $this->filePath,
64  'localeContents' => $localeContents,
65  'locale' => $locale,
66  'referenceLocaleContentsArray' => $referenceLocaleContentsArray,
67  ));
68 
69  return parent::fetch($request);
70  }
71 }
72 
ContextFileManager
Class defining operations for private context file management.
Definition: ContextFileManager.inc.php:19
LocaleFileForm\fetch
fetch($request)
Definition: LocaleFileForm.inc.php:46
PKPTemplateManager\getManager
static & getManager($request=null)
Definition: PKPTemplateManager.inc.php:1239
LocaleFileForm\$filePath
$filePath
Definition: LocaleFileForm.inc.php:19
LocaleFileForm
Definition: LocaleFileForm.inc.php:14
CustomLocaleAction\isLocaleFile
static isLocaleFile($locale, $filename)
Definition: CustomLocaleAction.inc.php:51
LocaleFileForm\$plugin
$plugin
Definition: LocaleFileForm.inc.php:28
LocaleFile\load
static & load($filename)
Definition: LocaleFile.inc.php:129
Form
Class defining basic operations for handling HTML forms.
Definition: Form.inc.php:47
LocaleFileForm\$locale
$locale
Definition: LocaleFileForm.inc.php:25
LocaleFileForm\__construct
__construct($customLocalePlugin, $filePath, $locale)
Definition: LocaleFileForm.inc.php:36