class_setupStepLanguage.inc 2.61 KB
Newer Older
1 2 3 4
<?php
/*
  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
  Copyright (C) 2007  Fabian Hickert
5
  Copyright (C) 2011-2016  FusionDirectory
6 7 8 9 10 11 12 13 14 15 16 17 18

  This program is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation; either version 2 of the License, or
  (at your option) any later version.

  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.

  You should have received a copy of the GNU General Public License
  along with this program; if not, write to the Free Software
19
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
20 21
*/

22
class setupStepLanguage extends setupStep
23
{
24
  var $header_image = 'geticon.php?context=applications&icon=config-language&size=48';
25

26
  static function getAttributesInfo (): array
27
  {
28 29
    return [
      'lang' => [
30
        'name'      => _('Preferred language'),
31 32
        'class'     => ['fullwidth', 'setup-language'],
        'attrs'     => [
33 34 35 36 37 38 39 40 41 42 43 44
          new DisplayAttribute(
            '', '',
            'msg', FALSE
          ),
          new SelectAttribute(
            '', '',
            'lang_selected', FALSE
          ),
          new HiddenAttribute(
            'lang', FALSE,
            'en_EN'
          )
45 46 47
        ]
      ]
    ];
48
  }
49

50
  function __construct ($parent)
51
  {
52
    parent::__construct($parent);
53
    $this->lang = Language::detect();
54
    $this->attributesAccess['lang_selected']->setSize(20);
55 56
  }

57
  function update_strings ()
58
  {
59 60 61 62
    $this->s_short_name   = _('Language setup');
    $this->s_title        = _('Language setup');
    $this->s_description  = _('This step allows you to select your preferred language.');
    $this->msg            = _('At this point, you can select the site wide default language. Choosing "automatic" will use the language requested by the browser. This setting can be overriden per user.');
63
  }
64

65
  function execute (): string
66
  {
67
    $languages = Language::getList(TRUE);
68
    asort($languages);
69
    $languages = array_merge(["" => _("Automatic")], $languages);
70 71
    $this->attributesAccess['lang_selected']->setChoices(array_keys($languages), array_values($languages));
    return parent::execute();
72 73
  }

74
  function save_object ()
75
  {
76 77
    parent::save_object();
    $this->is_completed   = TRUE;
78

79 80 81 82
    if ($this->lang_selected != "") {
      session::set('lang', $this->lang_selected);
    } else {
      session::set('lang', $this->lang);
83 84 85
    }
  }
}