Issues (57)

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

Labels
Severity
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 Ajax
19
 *
20
 * @category   KumbiaPHP
21
 * @package    Helpers
22
 */
23
class Ajax
24
{
25
26
    /**
27
     * Crea un enlace en una Aplicacion actualizando la capa con ajax
28
     *
29
     * @param string $action ruta a la accion
30
     * @param string $text texto a mostrar
31
     * @param string $update capa a actualizar
32
     * @param string $class clases adicionales
33
     * @param string|array $attrs atributos adicionales
34
     * @return string
35
     */
36
    public static function link($action, $text, $update, $class = '', $attrs = '')
37
    {
38
        $attrs = Tag::getAttrs($attrs);
39
        return '<a href="' . PUBLIC_PATH . "$action\" class=\"js-remote $class\" data-to=\"{$update}\" $attrs>$text</a>";
40
    }
41
42
    /**
43
     * Crea un enlace a una acción actualizando la capa con ajax
44
     *
45
     * @param string $action ruta a la accion
46
     * @param string $text texto a mostrar
47
     * @param string $update capa a actualizar
48
     * @param string $class clases adicionales
49
     * @param string|array $attrs atributos adicionales
50
     * @return string
51
     */
52
    public static function linkAction($action, $text, $update, $class = '', $attrs = '')
53
    {
54
        $attrs = Tag::getAttrs($attrs);
55
        return '<a href="' . PUBLIC_PATH . Router::get('controller_path') . "/$action\" class=\"js-remote $class\" data-to=\"{$update}\" $attrs>$text</a>";
0 ignored issues
show
Are you sure Router::get('controller_path') of type array|string 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

55
        return '<a href="' . PUBLIC_PATH . /** @scrutinizer ignore-type */ Router::get('controller_path') . "/$action\" class=\"js-remote $class\" data-to=\"{$update}\" $attrs>$text</a>";
Loading history...
56
    }
57
58
    /**
59
     * Crea un enlace en una Aplicacion actualizando la capa con ajax con mensaje
60
     * de confirmacion
61
     *
62
     * @param string $action ruta a la accion
63
     * @param string $text texto a mostrar
64
     * @param string $update capa a actualizar
65
     * @param string $confirm mensaje de confirmacion
66
     * @param string $class clases adicionales
67
     * @param string|array $attrs atributos adicionales
68
     * @return string
69
     */
70
    public static function linkConfirm($action, $text, $update, $confirm, $class = '', $attrs = '')
71
    {
72
        $attrs = Tag::getAttrs($attrs);
73
        return '<a href="' . PUBLIC_PATH . "$action\" data-msg=\"$confirm\" class=\"js-remote-confirm $class\" data-to=\"{$update}\" title=\"$confirm\" $attrs>$text</a>";
74
    }
75
76
    /**
77
     * Crea un enlace a una acción actualizando la capa con ajax con mensaje
78
     * de confirmacion
79
     *
80
     * @param string $action ruta a la accion
81
     * @param string $text texto a mostrar
82
     * @param string $update capa a actualizar
83
     * @param string $confirm mensaje de confirmacion
84
     * @param string $class clases adicionales
85
     * @param string|array $attrs atributos adicionales
86
     * @return string
87
     */
88
    public static function linkActionConfirm($action, $text, $update, $confirm, $class = '', $attrs = '')
89
    {
90
        $attrs = Tag::getAttrs($attrs);
91
        return '<a href="' . PUBLIC_PATH . Router::get('controller_path') . "/$action\" data-msg=\"$confirm\" class=\"js-remote-confirm $class\" data-to=\"{$update}\" title=\"$confirm\" $attrs>$text</a>";
0 ignored issues
show
Are you sure Router::get('controller_path') of type array|string 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

91
        return '<a href="' . PUBLIC_PATH . /** @scrutinizer ignore-type */ Router::get('controller_path') . "/$action\" data-msg=\"$confirm\" class=\"js-remote-confirm $class\" data-to=\"{$update}\" title=\"$confirm\" $attrs>$text</a>";
Loading history...
92
    }
93
94
    /**
95
     * Lista desplegable para actualizar usando ajax
96
     *
97
     * @param string $field nombre de campo
98
     * @param array $data
99
     * @param string $update capa que se actualizara
100
     * @param string $action accion que se ejecutara
101
     * @param string $class
102
     * @param string|array $attrs
103
     */
104
    public static function select($field, $data, $update, $action, $class = '', $attrs = '')
105
    {
106
        $attrs = Tag::getAttrs($attrs);
107
        // ruta a la accion
108
        $action = PUBLIC_PATH . rtrim($action, '/') . '/';
109
        // genera el campo
110
        return Form::select($field, $data, "class=\"js-remote $class\" data-update=\"$update\" data-url=\"$action\" $attrs");
111
    }
112
113
    /**
114
     * Lista desplegable para actualizar usando ajax que toma los valores de un array de objetos
115
     *
116
     * @param string $field nombre de campo
117
     * @param string $show campo que se mostrara
118
     * @param array  $data Array('modelo','metodo','param')
119
     * @param string $update capa que se actualizara
120
     * @param string $action accion que se ejecutara
121
     * @param string $blank campo en blanco
122
     * @param string $class
123
     * @param string|array $attrs
124
     */
125
    public static function dbSelect($field, $show, $data, $update, $action, $blank=null, $class = '', $attrs = '')
126
    {
127
        $attrs = Tag::getAttrs($attrs);
128
        // ruta a la accion
129
        $action = PUBLIC_PATH . rtrim($action, '/') . '/';
130
131
        // genera el campo
132
        return Form::dbSelect($field, $show, $data, $blank, "class=\"js-remote $class\" data-update=\"$update\" data-url=\"$action\" $attrs");
133
    }
134
135
    /**
136
     * Genera un formulario Ajax
137
     *
138
     * @param string $update capa que se actualizara
139
     * @param string $action accion a ejecutar
140
     * @param string $class clase de estilo
141
     * @param string $method metodo de envio
142
     * @param string|array $attrs atributos
143
     * @return string
144
     */
145
    public static function form($update, $action = '', $class = '', $method = 'post', $attrs = '')
146
    {
147
        $attrs = "class=\"js-remote $class\" data-to=\"$update\" ".Tag::getAttrs($attrs);
148
        return Form::open($action, $method, $attrs);
149
    }
150
151
}
152