Completed
Push — master ( 4d5688...be014c )
by WEBEWEB
01:51
created

AbstractProgressBarTwigExtension::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 3
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 1
1
<?php
2
3
/*
4
 * This file is part of the bootstrap-bundle package.
5
 *
6
 * (c) 2018 WEBEWEB
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11
12
namespace WBW\Bundle\BootstrapBundle\Twig\Extension\Component;
13
14
use WBW\Bundle\BootstrapBundle\Twig\Extension\AbstractTwigExtension;
15
16
/**
17
 * Abstract progress bar Twig extension.
18
 *
19
 * @author webeweb <https://github.com/webeweb/>
20
 * @package WBW\Bundle\BootstrapBundle\Twig\Extension\Component
21
 * @abstract
22
 */
23
abstract class AbstractProgressBarTwigExtension extends AbstractTwigExtension {
24
25
    /**
26
     * Displays a Bootstrap progress bar.
27
     *
28
     * @param string $content The content.
29
     * @param int $value The value.
30
     * @param int $min The min.
31
     * @param int $max The max.
32
     * @param bool $striped Striped ?
33
     * @param bool $animated Animated ?
34
     * @param string $class The class.
35
     * @return string Returns the Bootstrap progress bar.
36
     */
37
    protected function bootstrapProgressBar($content, $value, $min, $max, $striped, $animated, $class = null) {
38
39
        $span = static::coreHTMLElement("span", $value . "%", ["class" => "sr-only"]);
40
41
        $attributes = [];
42
43
        $attributes["class"]         = ["progress-bar", $class];
44
        $attributes["class"][]       = true === $striped ? "progress-bar-striped" : null;
45
        $attributes["class"][]       = true === $animated ? "active" : null;
46
        $attributes["style"]         = "width: " . $value . "%;";
47
        $attributes["role"]          = "progressbar";
48
        $attributes["aria-valuenow"] = $value;
49
        $attributes["aria-valuemin"] = $min;
50
        $attributes["aria-valuemax"] = $max . "%";
51
52
        $innerHTML = null !== $content ? $content : $span;
53
54
        $div = static::coreHTMLElement("div", $innerHTML, $attributes);
55
56
        return static::coreHTMLElement("div", $div, ["class" => "progress"]);
57
    }
58
}
59