Tag   A
last analyzed

Complexity

Total Complexity 10

Size/Duplication

Total Lines 88
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 0

Importance

Changes 0
Metric Value
dl 0
loc 88
rs 10
c 0
b 0
f 0
wmc 10
lcom 1
cbo 0

5 Methods

Rating   Name   Duplication   Size   Complexity  
A getAttrs() 0 11 3
A create() 0 13 3
A js() 0 9 2
A css() 0 4 1
A getCss() 0 4 1
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 - 2019 KumbiaPHP Team (http://www.kumbiaphp.com)
14
 * @license    https://github.com/KumbiaPHP/KumbiaPHP/blob/master/LICENSE   New BSD License
15
 */
16
17
/**
18
 * Helper base para creacion de Tags
19
 *
20
 * @category   KumbiaPHP
21
 * @package    Helpers
22
 */
23
class Tag
24
{
25
26
    /**
27
     * Hojas de estilo
28
     *
29
     * @var array
30
     * */
31
    protected static $_css = array();
32
33
    /**
34
     * Convierte los argumentos de un metodo de parametros por nombre a un string con los atributos
35
     *
36
     * @param string|array $params argumentos a convertir
37
     * @return string
38
     */
39
    public static function getAttrs($params)
40
    {
41
        if (!is_array($params)) {
42
            return (string)$params;
43
        }
44
        $data = '';
45
        foreach ($params as $k => $v) {
46
            $data .= "$k=\"$v\" ";
47
        }
48
        return trim($data);
49
    }
50
51
    /**
52
     * Crea un tag
53
     *
54
     * @param string $tag nombre de tag
55
     * @param string|null $content contenido interno
56
     * @param string|array $attrs atributos para el tag
57
     * @return string
58
     * */
59
    public static function create($tag, $content = null, $attrs = '')
60
    {
61
        if (is_array($attrs)) {
62
            $attrs = self::getAttrs($attrs);
63
        }
64
65
        if (is_null($content)) {
66
            echo "<$tag $attrs/>";
67
            return;
68
        }
69
70
        echo "<$tag $attrs>$content</$tag>";
71
    }
72
73
    /**
74
     * Incluye un archivo javascript
75
     *
76
     * @param string $src archivo javascript
77
     * @param boolean $cache indica si se usa cache de navegador
78
     */
79
    public static function js($src, $cache = TRUE)
80
    {
81
        $src = "javascript/$src.js";
82
        if (!$cache) {
83
            $src .= '?nocache=' . uniqid();
84
        }
85
86
        return '<script type="text/javascript" src="' . PUBLIC_PATH . $src . '"></script>';
87
    }
88
89
    /**
90
     * Incluye un archivo de css
91
     *
92
     * @param string $src archivo css
93
     * @param string $media medio de la hoja de estilo
94
     */
95
    public static function css($src, $media = 'screen')
96
    {
97
        self::$_css[] = array('src' => $src, 'media' => $media);
98
    }
99
100
    /**
101
     * Obtiene el array de hojas de estilo
102
     *
103
     * @return array
104
     */
105
    public static function getCss()
106
    {
107
        return self::$_css;
108
    }
109
110
}
111