Completed
Push — master ( 10f697...c17cc0 )
by WEBEWEB
02:43
created

ButtonTwigExtension   A

Complexity

Total Complexity 11

Size/Duplication

Total Lines 128
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 6

Importance

Changes 0
Metric Value
wmc 11
lcom 1
cbo 6
dl 0
loc 128
rs 10
c 0
b 0
f 0

11 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 3 1
A adminBSBButtonDangerFunction() 0 3 1
A adminBSBButtonDefaultFunction() 0 3 1
A adminBSBButtonInfoFunction() 0 3 1
A adminBSBButtonLinkFilter() 0 5 1
A adminBSBButtonMaterialDesignFunction() 0 3 1
A adminBSBButtonPrimaryFunction() 0 3 1
A adminBSBButtonSuccessFunction() 0 3 1
A adminBSBButtonWarningFunction() 0 3 1
A getFilters() 0 5 1
A getFunctions() 0 11 1
1
<?php
2
3
/**
4
 * This file is part of the adminbsb-material-design-bundle package.
5
 *
6
 * (c) 2017 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\AdminBSBBundle\Twig\Extension\UI;
13
14
use Twig_SimpleFilter;
15
use Twig_SimpleFunction;
16
use WBW\Bundle\AdminBSBBundle\Twig\Extension\AbstractAdminBSBTwigExtension;
17
use WBW\Library\Core\Utility\Argument\ArrayUtility;
18
use WBW\Library\Core\Utility\Argument\StringUtility;
19
20
/**
21
 * Button Twig extension.
22
 *
23
 * @author webeweb <https://github.com/webeweb/>
24
 * @package WBW\Bundle\AdminBSBBundle\Twig\Extension\UI
25
 */
26
class ButtonTwigExtension extends AbstractButtonTwigExtension {
27
28
    /**
29
     * Service name.
30
     *
31
     * @var string
32
     */
33
    const SERVICE_NAME = "webeweb.adminbsbbundle.twig.extension.ui.button";
34
35
    /**
36
     * Constructor.
37
     */
38
    public function __construct() {
39
        parent::__construct();
40
    }
41
42
    /**
43
     * Displays an AdminBSB button "Danger".
44
     *
45
     * @param array $args The arguments.
46
     * @return string Returns the AdminBSB button "Danger".
47
     */
48
    public function adminBSBButtonDangerFunction(array $args = []) {
49
        return $this->adminBSBButton(ArrayUtility::get($args, "content"), ArrayUtility::get($args, "title"), ArrayUtility::get($args, "size", false), ArrayUtility::get($args, "block", false), ArrayUtility::get($args, "disable", false), "btn-danger", ArrayUtility::get($args, "icon"), ArrayUtility::get($args, "circle", false));
50
    }
51
52
    /**
53
     * Displays an AdminBSB button "Default".
54
     *
55
     * @param array $args The arguments.
56
     * @return string Returns the AdminBSB button "Default".
57
     */
58
    public function adminBSBButtonDefaultFunction(array $args = []) {
59
        return $this->adminBSBButton(ArrayUtility::get($args, "content"), ArrayUtility::get($args, "title"), ArrayUtility::get($args, "size", false), ArrayUtility::get($args, "block", false), ArrayUtility::get($args, "disable", false), "btn-default", ArrayUtility::get($args, "icon"), ArrayUtility::get($args, "circle", false));
60
    }
61
62
    /**
63
     * Displays an AdminBSB button "Info".
64
     *
65
     * @param array $args The arguments.
66
     * @return string Returns the AdminBSB button "Info".
67
     */
68
    public function adminBSBButtonInfoFunction(array $args = []) {
69
        return $this->adminBSBButton(ArrayUtility::get($args, "content"), ArrayUtility::get($args, "title"), ArrayUtility::get($args, "size", false), ArrayUtility::get($args, "block", false), ArrayUtility::get($args, "disable", false), "btn-info", ArrayUtility::get($args, "icon"), ArrayUtility::get($args, "circle", false));
70
    }
71
72
    /**
73
     * Displays an AdminBSB button "Link".
74
     *
75
     * @param string $button The button.
76
     * @param string $link The link.
77
     * @return string Returns the AdminBSB button "Link".
78
     */
79
    public function adminBSBButtonLinkFilter($button, $link = self::DEFAULT_HREF) {
80
        $searches = ["<button", "type=\"button\"", "</button>"];
81
        $replaces = ["<a", "href=\"" . $link . "\"", "</a>"];
82
        return StringUtility::replace($button, $searches, $replaces);
83
    }
84
85
    /**
86
     * Displays a AdminBSB button "Material design".
87
     *
88
     * @param array $args The arguments.
89
     * @return string Returns the AdminBSB button "Material design".
90
     */
91
    public function adminBSBButtonMaterialDesignFunction(array $args = []) {
92
        return $this->adminBSBButton(ArrayUtility::get($args, "content"), ArrayUtility::get($args, "title"), ArrayUtility::get($args, "size", false), ArrayUtility::get($args, "block", false), ArrayUtility::get($args, "disable", false), AbstractAdminBSBTwigExtension::fixColor(ArrayUtility::get($args, "color", "red"), "bg-"), ArrayUtility::get($args, "icon"), ArrayUtility::get($args, "circle", false));
93
    }
94
95
    /**
96
     * Displays an AdminBSB button "Primary".
97
     *
98
     * @param array $args The arguments.
99
     * @return string Returns the AdminBSB button "Primary".
100
     */
101
    public function adminBSBButtonPrimaryFunction(array $args = []) {
102
        return $this->adminBSBButton(ArrayUtility::get($args, "content"), ArrayUtility::get($args, "title"), ArrayUtility::get($args, "size", false), ArrayUtility::get($args, "block", false), ArrayUtility::get($args, "disable", false), "btn-primary", ArrayUtility::get($args, "icon"), ArrayUtility::get($args, "circle", false));
103
    }
104
105
    /**
106
     * Displays an AdminBSB button "Success".
107
     *
108
     * @param array $args The arguments.
109
     * @return string Returns the AdminBSB button "Success".
110
     */
111
    public function adminBSBButtonSuccessFunction(array $args = []) {
112
        return $this->adminBSBButton(ArrayUtility::get($args, "content"), ArrayUtility::get($args, "title"), ArrayUtility::get($args, "size", false), ArrayUtility::get($args, "block", false), ArrayUtility::get($args, "disable", false), "btn-success", ArrayUtility::get($args, "icon"), ArrayUtility::get($args, "circle", false));
113
    }
114
115
    /**
116
     * Displays an AdminBSB button "Warning".
117
     *
118
     * @param array $args The arguments.
119
     * @return string Returns the AdminBSB button "Warning".
120
     */
121
    public function adminBSBButtonWarningFunction(array $args = []) {
122
        return $this->adminBSBButton(ArrayUtility::get($args, "content"), ArrayUtility::get($args, "title"), ArrayUtility::get($args, "size", false), ArrayUtility::get($args, "block", false), ArrayUtility::get($args, "disable", false), "btn-warning", ArrayUtility::get($args, "icon"), ArrayUtility::get($args, "circle", false));
123
    }
124
125
    /**
126
     * Get the Twig filters.
127
     *
128
     * @return array Returns the Twig filters.
129
     */
130
    public function getFilters() {
131
        return [
132
            new Twig_SimpleFilter("adminBSBButtonLink", [$this, "adminBSBButtonLinkFilter"], ["is_safe" => ["html"]]),
133
        ];
134
    }
135
136
    /**
137
     * Get the Twig functions.
138
     *
139
     * @return array Returns the Twig functions.
140
     */
141
    public function getFunctions() {
142
        return [
143
            new Twig_SimpleFunction("adminBSBButtonDanger", [$this, "adminBSBButtonDangerFunction"], ["is_safe" => ["html"]]),
144
            new Twig_SimpleFunction("adminBSBButtonDefault", [$this, "adminBSBButtonDefaultFunction"], ["is_safe" => ["html"]]),
145
            new Twig_SimpleFunction("adminBSBButtonInfo", [$this, "adminBSBButtonInfoFunction"], ["is_safe" => ["html"]]),
146
            new Twig_SimpleFunction("adminBSBButtonMaterialDesign", [$this, "adminBSBButtonMaterialDesignFunction"], ["is_safe" => ["html"]]),
147
            new Twig_SimpleFunction("adminBSBButtonPrimary", [$this, "adminBSBButtonPrimaryFunction"], ["is_safe" => ["html"]]),
148
            new Twig_SimpleFunction("adminBSBButtonSuccess", [$this, "adminBSBButtonSuccessFunction"], ["is_safe" => ["html"]]),
149
            new Twig_SimpleFunction("adminBSBButtonWarning", [$this, "adminBSBButtonWarningFunction"], ["is_safe" => ["html"]]),
150
        ];
151
    }
152
153
}
154