1 <?php
 2 
 3  4  5  6  7  8  9 10 
11 
12 namespace Icybee\Modules\I18n;
13 
14 use Brickrouge\Element;
15 use Brickrouge\Form;
16 
17 18 19 
20 class NodeLanguageElement extends Element
21 {
22     public function __construct(array $attributes=array())
23     {
24         parent::__construct
25         (
26             'select', $attributes + array
27             (
28                 Form::LABEL => 'language',
29                 Element::DESCRIPTION => 'language',
30                 Element::OPTIONS => array
31                 (
32                     null => '.neutral'
33                 )
34 
35                 + $this->collect_options()
36             )
37         );
38     }
39 
40     static protected function add_assets(\Brickrouge\Document $document)
41     {
42         parent::add_assets($document);
43 
44         $document->js->add('elements.js');
45     }
46 
47     protected function collect_options()
48     {
49         global $core;
50 
51         $languages = $core->models['sites']->count('language');
52 
53         foreach ($languages as $language => $dummy)
54         {
55             $languages[$language] = $core->locale->conventions['localeDisplayNames']['languages'][$language];
56         }
57 
58         return $languages;
59     }
60 }