Completed
Push — master ( aabeef...856c1c )
by Propa
41:29
created

FormBuilder   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 42
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Test Coverage

Coverage 100%

Importance

Changes 6
Bugs 2 Features 0
Metric Value
wmc 5
c 6
b 2
f 0
lcom 1
cbo 1
dl 0
loc 42
ccs 12
cts 12
cp 1
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A setLocales() 0 4 1
A getBoundValue() 0 14 4
1
<?php namespace Propaganistas\LaravelTranslatableBootForms\Form;
2
3
use AdamWathan\Form\FormBuilder as _FormBuilder;
4
5
class FormBuilder extends _FormBuilder
6
{
7
8
    /**
9
     * Array of locale keys.
10
     *
11
     * @var array
12
     */
13
    protected $locales;
14
15
    /**
16
     * Sets the available locales for translatable fields.
17
     *
18
     * @param array $locales
19
     */
20 39
    public function setLocales(array $locales)
21
    {
22 39
        $this->locales = $locales;
23 39
    }
24
25
    /**
26
     * Getting value from Model or ModelTranslation to populate form.
27
     * Courtesy of TypiCMS/TranslatableBootForms (https://github.com/TypiCMS/TranslatableBootForms/blob/master/src/TranslatableFormBuilder.php)
28
     *
29
     * @param string $name key
30
     * @return string value
31
     */
32 6
    protected function getBoundValue($name, $default)
33
    {
34 6
        $inputName = preg_split('/[\[\]]+/', $name, - 1, PREG_SPLIT_NO_EMPTY);
35 6
        if (count($inputName) == 2 && in_array($inputName[0], $this->locales)) {
36 3
            list($lang, $name) = $inputName;
37 3
            $value = isset($this->boundData->data()->translate($lang)->{$name})
38 3
                ? $this->boundData->data()->translate($lang)->{$name}
39 3
                : '';
40
41 3
            return $this->escape($value);
42
        }
43
44 3
        return $this->escape($this->boundData->get($name, $default));
45
    }
46
}
47