public $pagination;
private $currentTheme = '';
+ private $currentLanguage = '';
private $notInstalledMessage = array();
# @todo make this dynamic (actually install themes and save them in the database including author information et cetera)
}
$this->currentTheme = $themeDirectory;
+
+ # Set up language
+ $languageDirectory = $this->user->getConfigValue('language');
+
+ if ($languageDirectory === false) {
+ $languageDirectory = DEFAULT_THEME;
+ }
+
+ $this->currentLanguage = $languageDirectory;
}
public function configFileIsAvailable() {
public function getTheme() {
return $this->currentTheme;
}
+
+ public function getLanguage() {
+ return $this->currentLanguage;
+ }
public function getInstalledThemes() {
$handle = opendir(THEME);
return $themes;
}
+ public function getInstalledLanguages() {
+ $handle = opendir(LOCALE);
+ $languages = array();
+
+ while (($language = readdir($handle)) !== false) {
+ # Languages are stored in a directory, so all directory names are languages
+ # @todo move language installation data to database
+ if (! is_dir(LOCALE . '/' . $language) || in_array($language, array('..', '.'))) {
+ continue;
+ }
+
+ $current = false;
+
+ if ($language === $this->getLanguage()) {
+ $current = true;
+ }
+
+ $languages[] = array('name' => $language, 'current' => $current);
+ }
+
+ return $languages;
+ }
+
public function getDefaultConfig()
{
return array(
$compare_dev = version_compare(POCHE, $dev);
$compare_prod = version_compare(POCHE, $prod);
$themes = $this->getInstalledThemes();
+ $languages = $this->getInstalledLanguages();
$tpl_vars = array(
'themes' => $themes,
+ 'languages' => $languages,
'dev' => $dev,
'prod' => $prod,
'compare_dev' => $compare_dev,
Tools::redirect('?view=config');
}
+ public function updateLanguage()
+ {
+ # no data
+ if (empty($_POST['language'])) {
+ }
+
+ # we are not going to change it to the current language...
+ if ($_POST['language'] == $this->getLanguage()) {
+ $this->messages->add('w', _('still using the "' . $this->getLanguage() . '" language!'));
+ Tools::redirect('?view=config');
+ }
+
+ $languages = $this->getInstalledLanguages();
+ $actualLanguage = false;
+
+ foreach ($languages as $language) {
+ if ($language['name'] == $_POST['language']) {
+ $actualLanguage = true;
+ break;
+ }
+ }
+
+ if (! $actualLanguage) {
+ $this->messages->add('e', _('that language does not seem to be installed'));
+ Tools::redirect('?view=config');
+ }
+
+ $this->store->updateUserConfig($this->user->getId(), 'language', $_POST['language']);
+ $this->messages->add('s', _('you have changed your language preferences'));
+
+ $currentConfig = $_SESSION['poche_user']->config;
+ $currentConfig['language'] = $_POST['language'];
+
+ $_SESSION['poche_user']->setConfig($currentConfig);
+
+ Tools::redirect('?view=config');
+ }
+
/**
* checks if login & password are correct and save the user in session.
* it redirects the user to the $referer link
<input type="hidden" name="token" value="{{ token }}">
</form>
+ <h2>{% trans "Change your language" %}</h2>
+ <form method="post" action="?updatelanguage" name="changelanguageform">
+ <fieldset class="w500p">
+ <div class="row">
+ <label class="col w150p" for="language">{% trans "Language:" %}</label>
+ <select class="col" id="language" name="language">
+ {% for language in languages %}
+ <option value="{{ language.name }}" {{ language.current ? 'selected' : '' }}>{{ language.name }}</option>
+ {% endfor %}
+ </select>
+ </div>
+ <div class="row mts txtcenter">
+ <button class="bouton" type="submit" tabindex="4">{% trans "Update" %}</button>
+ </div>
+ </fieldset>
+ <input type="hidden" name="returnurl" value="{{ referer }}">
+ <input type="hidden" name="token" value="{{ token }}">
+ </form>
+
<h2>{% trans "Change your password" %}</h2>
<form method="post" action="?config" name="loginform">
<fieldset class="w500p">