Issues (57)

core/extensions/helpers/js.php (2 issues)

1
<?php
2
/**
3
 * KumbiaPHP web & app Framework
4
 *
5
 * LICENSE
6
 *
7
 * This source file is subject to the new BSD license that is bundled
8
 * with this package in the file LICENSE.
9
 *
10
 * @category   KumbiaPHP
11
 * @package    Helpers
12
 *
13
 * @copyright  Copyright (c) 2005 - 2023 KumbiaPHP Team (http://www.kumbiaphp.com)
14
 * @license    https://github.com/KumbiaPHP/KumbiaPHP/blob/master/LICENSE   New BSD License
15
 */
16
17
/**
18
 * Helper que utiliza Javascript
19
 *
20
 * @category   KumbiaPHP
21
 * @package    Helpers
22
 */
23
class Js
24
{
25
    /**
26
     * Javascripts que son requisito de otros
27
     *
28
     * @var array
29
     * */
30
    protected static $_dependencies = array();
31
    
32
    /**
33
     * Javascript
34
     *
35
     * @var array
36
     * */
37
    protected static $_js = array();
38
    
39
    /**
40
     * Directorio Javascript
41
     *
42
     * @var array
43
     * */
44
    protected static $js_dir = 'javascript/';
45
46
    /**
47
     * Crea un enlace en una Aplicacion con mensaje de confirmacion respetando
48
     * las convenciones de Kumbia
49
     *
50
     * @param string $action ruta a la accion
51
     * @param string $text texto a mostrar
52
     * @param string $confirm mensaje de confirmacion
53
     * @param string $class clases adicionales para el link
54
     * @param string|array $attrs atributos adicionales
55
     * @return string
56
     */
57
    public static function link($action, $text, $confirm = '¿Está Seguro?', $class = '', $attrs = '')
58
    {
59
        $attrs = Tag::getAttrs($attrs);
60
        return '<a href="' . PUBLIC_PATH . "$action\" data-msg=\"$confirm\" class=\"js-confirm $class\" $attrs>$text</a>";
61
    }
62
63
    /**
64
     * Crea un enlace a una accion con mensaje de confirmacion respetando
65
     * las convenciones de Kumbia
66
     *
67
     * @param string $action accion
68
     * @param string $text texto a mostrar
69
     * @param string $confirm mensaje de confirmacion
70
     * @param string $class clases adicionales para el link
71
     * @param string|array $attrs atributos adicionales
72
     * @return string
73
     */
74
    public static function linkAction($action, $text, $confirm = '¿Está Seguro?', $class = '', $attrs = '')
75
    {
76
        $attrs = Tag::getAttrs($attrs);
77
        return '<a href="' . PUBLIC_PATH . Router::get('controller_path') . "/$action\" data-msg=\"$confirm\" class=\"js-confirm $class\" $attrs>$text</a>";
78
    }
79
80
    /**
81
     * Crea un boton submit con mensaje de confirmacion respetando
82
     * las convenciones de Kumbia
83
     *
84
     * @param string $text texto a mostrar
85
     * @param string $confirm mensaje de confirmacion
86
     * @param string $class clases adicionales para el link
87
     * @param string|array $attrs atributos adicionales
88
     * @return string
89
     */
90
    public static function submit($text, $confirm = '¿Está Seguro?', $class = '', $attrs = '')
91
    {
92
        $attrs = Tag::getAttrs($attrs);
93
        return "<input type=\"submit\" value=\"$text\" data-msg=\"$confirm\" class=\"js-confirm $class\" $attrs/>";
94
    }
95
96
    /**
97
     * Crea un boton de tipo imagen
98
     *
99
     * @param string $img
100
     * @param string $class clases adicionales para el link
101
     * @param string|array $attrs atributos adicionales
102
     * @return string
103
     */
104
    public static function submitImage($img, $confirm = '¿Está Seguro?', $class = '', $attrs = '')
105
    {
106
        $attrs = Tag::getAttrs($attrs);
107
        return "<input type=\"image\" data-msg=\"$confirm\" src=\"" . PUBLIC_PATH . "img/$img\" class=\"js-confirm $class\" $attrs/>";
108
    }
109
110
    /**
111
     * Añade un archivo Javascript para ser incluido en el template
112
     *
113
     * @param string $file nombre del archivo a añadir
114
     * @param array $dependencies archivos que son requisito del archivo a añadir
115
     */
116
    public static function add( $file, $dependencies=array() )
117
    {
118
        self::$_js[$file] = $file;
119
        foreach ($dependencies as $file) self::$_dependencies[$file] = $file;
0 ignored issues
show
$file is overwriting one of the parameters of this function.
Loading history...
120
    }
121
    
122
    /**
123
     * Incluye todos los archivo Javascript en el template añadidos con el metodo add
124
     *
125
     * @return string
126
     */
127
    public static function inc()
128
    {
129
        $js = self::$_dependencies + self::$_js;
130
        $html = '';
131
        foreach ($js as $file)
132
        {
133
            $html .= '<script type="text/javascript" src="' . PUBLIC_PATH . self::$js_dir . "$file.js" . '"></script>';
0 ignored issues
show
Are you sure self::js_dir of type array can be used in concatenation? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

133
            $html .= '<script type="text/javascript" src="' . PUBLIC_PATH . /** @scrutinizer ignore-type */ self::$js_dir . "$file.js" . '"></script>';
Loading history...
134
        }
135
        return $html;
136
    }
137
}
138