TranslationPeer   A
last analyzed

Complexity

Total Complexity 7

Size/Duplication

Total Lines 37
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 0

Importance

Changes 4
Bugs 2 Features 1
Metric Value
wmc 7
c 4
b 2
f 1
lcom 0
cbo 0
dl 0
loc 37
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
C getListForLocale() 0 28 7
1
<?php
2
3
namespace ItBlaster\TranslationBundle\Model;
4
5
use ItBlaster\TranslationBundle\Model\om\BaseTranslationPeer;
6
7
class TranslationPeer extends BaseTranslationPeer
8
{
9
    /**
10
     * Список перевода для локали
11
     *
12
     * @param $locale
13
     * @return array
14
     */
15
    public static function getListForLocale($locale)
16
    {
17
        $translation_list_en = array();
18
        $translation_list_locale = array();
19
        $result = array();
20
21
        $translation_list = TranslationQuery::create()->joinWithI18n('en')->find();
22
23
        foreach ($translation_list as $translation_item) {
24
            /** @var Translation $translation_item */
25
            $translation_list_en[$translation_item->getId()]['alias'] = $translation_item->getAlias();
26
            $translation_list_en[$translation_item->getId()]['title'] = $translation_item->getTitle();
27
        }
28
29
        $translation_list = TranslationQuery::create()->joinWithI18n($locale)->find();
30
        foreach ($translation_list as $translation_item) {
31
            /** @var Translation $translation_item */
32
            $translation_list_locale[$translation_item->getId()] = $translation_item->getTitle();
33
        }
34
35
        foreach ($translation_list_en as $id => $translation_item) {
36
            $result[$translation_item['alias']] = isset($translation_list_locale[$id]) && $translation_list_locale[$id] ?
37
                $translation_list_locale[$id] :
38
                ($translation_item['title'] ? $translation_item['title'] : $translation_item['alias']);
39
        }
40
41
        return $result;
42
    }
43
}
44