1
|
|
|
<?php |
2
|
|
|
$ARCurrent->nolangcheck=true; |
3
|
|
|
if ($this->CheckSilent("read") && $this->CheckConfig()) { |
4
|
|
|
|
5
|
|
|
$arLanguage=$this->getdata('arLanguage'); |
6
|
|
|
if (!$AR->user->data->languagelist) { |
7
|
|
|
// if no languages are selected in the user preferences, use them all... |
8
|
|
|
// this makes it backwards compatible |
9
|
|
|
$languagelist=$AR->nls->list; |
10
|
|
|
} else { |
11
|
|
|
$languagelist=$AR->user->data->languagelist; |
12
|
|
|
} |
13
|
|
|
$configcache=$ARConfig->cache[$this->path]; |
14
|
|
|
$nlsconfig=$configcache->nls; |
15
|
|
|
// only set arLanguage if we don't have it or we're not a new object and lack nlsconfig->list[arLanguage] |
16
|
|
|
// new objects don't have a configcache hence the newobject check |
17
|
|
|
if (!$arLanguage || (!$this->arIsNewObject && !$nlsconfig->list[$arLanguage] ) ) { |
18
|
|
|
// make sure the selected language makes sense |
19
|
|
|
$arLanguage = $this->data->nls->default; |
20
|
|
|
if( !$arLanguage ) { // new object has no data->nls->default |
21
|
|
|
$arLanguage = $AR->nls->default; |
22
|
|
|
} |
23
|
|
|
$ARCurrent->arLanguage=$arLanguage; |
24
|
|
|
} |
25
|
|
|
if (!$languagelist[$arLanguage]) { |
26
|
|
|
// make sure the currently selected language is also available at all times |
27
|
|
|
$languagelist[$arLanguage]=$AR->nls->list[$arLanguage]; |
28
|
|
|
} |
29
|
|
|
|
30
|
|
|
$languages=array_intersect(array_keys($languagelist), array_keys( |
31
|
|
|
array_merge( ( $ARConfig->nls->list ? $ARConfig->nls->list : array() ), |
32
|
|
|
( $this->data->config->nls->list ? $this->data->config->nls->list : array() ) |
33
|
|
|
) |
34
|
|
|
) |
35
|
|
|
); |
36
|
|
|
$count=count($languages); |
37
|
|
|
|
38
|
|
|
$itemlist = array(); |
39
|
|
|
foreach( $languages as $key => $nlskey ) { |
40
|
|
|
$language=$AR->nls->list[$nlskey]; |
41
|
|
|
if (($this->data->config->nls->list[$nlskey]) || ($this->getdata('name',$nlskey))) { |
42
|
|
|
$image=$AR->dir->images."nls/small/".$nlskey.".gif"; |
43
|
|
|
} else { |
44
|
|
|
$image=$AR->dir->images."nls/small/faded/".$nlskey.".gif"; |
45
|
|
|
} |
46
|
|
|
if ($nlskey==$arLanguage) { |
47
|
|
|
$class="tab-selected"; |
48
|
|
|
$image=$AR->dir->images."nls/small/".$nlskey.".gif"; |
49
|
|
|
} else { |
50
|
|
|
$class="tab"; |
51
|
|
|
} |
52
|
|
|
|
53
|
|
|
$item['class'] = $class; |
54
|
|
|
$item['href'] = "javascript:switchLanguage('" . $nlskey . "');"; |
55
|
|
|
$item['image'] = $image; |
56
|
|
|
$item['language'] = $language; |
57
|
|
|
|
58
|
|
|
if (($count < 10) && ($count > 4)) { |
59
|
|
|
$item['body'] = " " . $nlskey; |
60
|
|
|
} elseif ($count <=4) { |
61
|
|
|
$item['body'] = " " . $language; |
62
|
|
|
} else { |
63
|
|
|
$item['body'] = ''; |
64
|
|
|
} |
65
|
|
|
$itemlist[] = $item; |
66
|
|
|
} |
67
|
|
|
?> |
68
|
|
|
<?php if ($itemlist) { ?> |
|
|
|
|
69
|
|
|
<ul id="tabnav"> |
70
|
|
|
<?php foreach ($itemlist as $item) { ?> |
71
|
|
|
<li class="<?php echo $item['class']; ?>"> |
72
|
|
|
<a href="<?php echo $item['href']; ?>" title="<?php echo $item['language']; ?>"> |
73
|
|
|
<img src="<?php echo $item['image']; ?>" alt="<?php echo $item['language']; ?>"> |
74
|
|
|
<?php echo $item['body']; ?> |
75
|
|
|
</a> |
76
|
|
|
</li> |
77
|
|
|
<?php } ?> |
78
|
|
|
</ul> |
79
|
|
|
<?php } ?> |
80
|
|
|
<?php |
81
|
|
|
} |
82
|
|
|
?> |
83
|
|
|
|
This check marks implicit conversions of arrays to boolean values in a comparison. While in PHP an empty array is considered to be equal (but not identical) to false, this is not always apparent.
Consider making the comparison explicit by using
empty(..)
or! empty(...)
instead.