File: class_setupStep_Language.inc

package info (click to toggle)
fusiondirectory 1.0.19-1%2Bdeb9u1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 32,060 kB
  • sloc: php: 47,469; pascal: 2,993; perl: 2,431; xml: 1,822; sh: 136; makefile: 19
file content (87 lines) | stat: -rw-r--r-- 2,680 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
<?php
/*
  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
  Copyright (C) 2007  Fabian Hickert
  Copyright (C) 2011-2016  FusionDirectory

  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
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
*/

class Step_Language extends setupStep
{
  var $header_image = 'geticon.php?context=applications&icon=config-language&size=48';

  static function getAttributesInfo()
  {
    return array(
      'lang' => array(
        'name'      => _('Preferred language'),
        'class'     => array('fullwidth', 'setup-language'),
        'attrs'     => array(
          new DisplayAttribute(
            '', '',
            'msg', FALSE
          ),
          new SelectAttribute(
            '', '',
            'lang_selected', FALSE
          ),
          new HiddenAttribute(
            'lang', FALSE,
            'en_EN'
          )
        )
      )
    );
  }

  function __construct($parent)
  {
    parent::__construct($parent);
    $this->lang = get_browser_language();
    $this->attributesAccess['lang_selected']->setSize(20);
  }

  function update_strings()
  {
    $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.');
  }

  function execute()
  {
    $languages = get_languages(TRUE);
    asort($languages);
    $languages = array_merge(array("" => _("Automatic")), $languages);
    $this->attributesAccess['lang_selected']->setChoices(array_keys($languages), array_values($languages));
    return parent::execute();
  }

  function save_object()
  {
    parent::save_object();
    $this->is_completed   = TRUE;

    if ($this->lang_selected != "") {
      session::set('lang', $this->lang_selected);
    } else {
      session::set('lang', $this->lang);
    }
  }
}

?>