Con más de 20 años de experiencia

En TuGraffiti.com nos avalan más de 20 años de experiencia en el mundo del muralismo creativo y corporativo, aportando un toque artístico y distintivo a espacios de empresas y comercios.

Hemos trabajado en una amplia variedad de proyectos, desde murales en oficinas corporativas, locales comerciales, eventos artísticos y culturares y mucho más.

Servicios

Rotulación, serigrafía y artículos publicitarios

Contamos con máquinas dotadas de la última tecnología para trabajar la impresión digital, la rotulación, serigrafía, etc. Realizamos servicios entre los que están la rotulación de vehículos, rotulación de cristales en establecimientos, etc.

En nuestra sección de serigrafía, disponemos de un amplio catálogo de artículos publicitarios, ropa deportiva, ropa laboral, tanto para particulares como para empresas.

Trabajos

Damos vida a un arte vibrante

Si te gustan nuestros trabajos y deseas un graffiti personalizado y de calidad, no dudes en ponerte en contacto con nosotros.

Te invitamos a explorar nuestro portafolio, que muestra una selección de graffitis y murales que hemos realizado para empresas y particulares en toda España.

Estaremos encantados de ayudarte a dar vida a tu idea.

Contacto

Incrementa la visibilidad de tu empresa

Despierta el interés y mejora tu exposición.

Recuerda que un mural o graffiti puede captar la atención de personas que normalmente no notarían tu negocio.

Sistema de depuración :: Nivel alcanzado 10/10

Resumen del sistema y conexión


Página actual: Inicio URL: es/inicio id: 1
Página anterior: Inicio URL: es/inicio id: 1
Página siguiente: Nosotros URL: es/nosotros id: 2
Primera página: Inicio URL: es/inicio id: 1
Última página: Error Interno del Servidor (500) URL: es/error500 id: 500
N. Total de páginas: 27
Password SALT: 8a8d0312eb6985b11bd7012fea1a2249390943181f9ac7b7461b14830367800e

Nombre del servidor: www.tugraffiti.com
IP del servidor: 147.135.136.217
Puerto del servidor: 443
Fecha y hora del servidor: 2025-01-22 00:09:06

Sistema Operativo: Linux
Versión de PHP: 8.2.27 (PHP Info)
Versión de Apache: Apache
Versión de SQL: mysqlnd 8.2.27, 127.0.0.1 via TCP/IP, Uptime: 14185951 Threads: 38 Questions: 205682723 Slow queries: 87 Opens: 863903 Open tables: 1311 Queries per second avg: 14.499, 10.11.6-MariaDB-0+deb12u1
Fecha y hora del servidor SQL: 2025-01-22 00:09:06

Tu IP: 18.221.188.241 () - - Dublin, Ohio (United States (US)) - 40.0992, -83.1141
Tu Host: ec2-18-221-188-241.us-east-2.compute.amazonaws.com
Tu navegador: Unknown v? Desconocido (Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com))
Tiempo de respuesta:: 0.756 ms

Nivel: 4 :: Carga de la configuración principal


Carga el archivo de configuración establecido en el paso anterior. A través de la configuración del idioma seleccionado.
8 mensaje(s) general(es) recibido(s) en este nivel.

Ver/Ocultar errores | Ver/Ocultar correctos | Ver/Ocultar info | Ver/Ocultar alertas | Ver/Ocultar todo

Preparando configuración principal (config::_tags)


A continuación se listan las etiquetas encontradas en el archivo de configuración: "./config/langs/es.default/config.xml", que serán reemplazadas en la página (ten en cuenta que aunque los atributos: local y/o debug de cada etiqueta (si existiesen) son ignorados en el siguiente listado, seguirán teniendo su efecto en todo el sitio web):

web_name => TuGraffiti.com
web_alias => Graffiti HipHop Shop
web_acronym => GHPS
web_slogan => Empresa multiservicio
web_url => https://www.tugraffiti.com
web_description => Murales artísticos, murales corporativos, logotipos, uniformes y vinilos.
web_keywords => murales artísticos, murales corporativos, logotipos personalizados, diseño de uniformes, vinilos decorativos, graffitis personalizados, arte mural, branding corporativo
web_type => website
web_charset => UTF-8
web_cache => nocache
web_timezone => Atlantic/Canary
web_locale => es_ES.UTF-8
web_copyright => Copyright (c) 2024 by servigran.com
web_path_layout => default
web_logo => resources/logo.svg
web_logo_alt => resources/logo3.svg
web_logo_loading => resources/logo.svg
web_email => info@{{web_domain}}
web_email_sec => desarrollo@servigran.com
web_email_log => webs@servigran.com
web_sender => www@{{web_domain}}
web_email_logo => resources/logo.svg
email_greetings_msg =>

Muchas gracias.

Atentamente:
{{web_name_link}}


email_contact_msg =>

{{web_contact}}


email_green_msg =>

¿Necesita realmente imprimir este correo electrónico? Antes de imprimir piense en su responsabilidad y compromiso con el MEDIO AMBIENTE.


email_privacy_msg =>

AVISO LEGAL: Conforme dispone el Reglamento General Europeo de Protección de Datos 679/2016, de 27 de abril (RGPD), y la Ley Orgánica 3/2018, de 5 de diciembre, de Protección de Datos Personales y Garantía de Derechos Digitales (LOPDGDD), la información de este e-mail y, si se adjunta en el asunto, los ficheros adjuntos, es de carácter exclusiva y estrictamente CONFIDENCIAL para el destinatario exclusivamente mencionado, y sujeta al SECRETO PROFESIONAL, cuya divulgación no está permitida por la ley. Si lo ha recibido y leído, por error al no ser el destinatario indicado, o tiene conocimiento del mismo por cualquier motivo, está avisado de su estado, y le comunicamos que ha de notificarlo a esta misma dirección de e-mail y proceder a su borrado o eliminación.

{{web_legal_name}} le informa que está terminantemente prohibido cualquier copia, utilización, divulgación, distribución, alteración, archivo, reproducción, y comunicar a terceros el presente mensaje y ficheros adjuntos, sin consentimiento expreso en virtud de la normativa vigente. En caso de realizarlo, podría constituir una violación de confidencialidad/privacidad, e incurrir en las responsabilidades legales pertinentes, conforme a la normativa vigente comunitaria y nacional en materia de protección de datos personales.


email_unsubscribe_msg => Si no deseas recibir más comunicaciones comerciales, puedes darte de baja haciendo click aquí, si eres usuario de {{web_name}}, puedes darte de baja accediendo a tu perfil pinchando aquí.
web_legal_name => TUGRAFFITI
web_legal_info => Fabrizio Vittorini
web_cif_document => XXXXXXXX-X
web_domain => tugraffiti.com
web_phone_number => 34651819879
web_phone => +34 651 819 879
web_instagram => fabrizioeldegraffiti
web_main_url => https://{{web_domain}}
web_contact => {{web_phone}}
{{web_email_link}}
{{web_domain}}
web_whatsapp_link => {{web_phone}}
web_instagram_link => @{{web_instagram}}
web_phone_link => {{web_phone}}
web_legal_form => {{web_legal_name}}, le informa que conforme dispone el artículo 13 del Reglamento General Europeo de Protección de datos 679/2016 de 27 de abril, que los datos personales facilitados serán tratados por {{web_legal_name}}, como responsable de tratamiento, a efectos de la prestación de los servicios profesionales relacionados con la precontratación/contratación, mantenimiento de la relación precontractual/contractual, gestión interna empresa-cliente con la finalidad de cumplir los compromisos entre las partes. No se cederán datos a terceros, salvo obligación legal.
web_name_link => {{web_name}}
web_name_slogan_link => {{web_name}} {{web_slogan}}
web_url_link => www.{{web_domain}}
web_email_link => {{web_email}}
web_alias_link => {{web_domain}}
session_name => {{web_acronym}}_session
db_host => 127.0.0.1
db_database => c57tugraffiti
db_prefix => graffiti_
db_engine => MyISAM
db_collate => utf8_unicode_ci
admin_name => Servigran
admin_url => https://www.servigran.com/
admin_email => webmaster@servigran.com
[ Nivel: 4 | Función: config::_tags(); | Línea: 881 | Archivo: /var/www/clients/client57/web318/web/system/engine/config.php | Tiempo tomado: 0.4 segundos (0.396) ]

Preparando configuración principal (config::_checkingSystem)


La versión de PHP: "7.3.33" es correcta (detectado a través del método: "config::_checkingSystem").
Extensión: "SimpleXML" de PHP encontrada y cargada.
Extensión: "DOM" de PHP encontrada y cargada.
Extensión: "Reflection" de PHP encontrada y cargada.
Extensión: "GD" de PHP encontrada y cargada.
Extensión: "exif" de PHP encontrada y cargada.
Extensión: "mysqli" de PHP encontrada y cargada.
Extensión: "session" de PHP encontrada y cargada.
Extensión: "xml" de PHP encontrada y cargada.
Extensión: "SPL" de PHP encontrada y cargada.
Extensión: "curl" de PHP encontrada y cargada.
Extensión: "date" de PHP encontrada y cargada.
Extensión: "hash" de PHP encontrada y cargada.
Extensión: "json" de PHP encontrada y cargada.
Extensión: "mbstring" de PHP encontrada y cargada.
Extensión: "PDO" de PHP encontrada y cargada.
Función: "abs" de PHP encontrada y disponible.
Función: "addslashes" de PHP encontrada y disponible.
Función: "array_diff" de PHP encontrada y disponible.
Función: "array_filter" de PHP encontrada y disponible.
Función: "array_keys" de PHP encontrada y disponible.
Función: "array_merge" de PHP encontrada y disponible.
Función: "array_reverse" de PHP encontrada y disponible.
Función: "array_search" de PHP encontrada y disponible.
Función: "array_shift" de PHP encontrada y disponible.
Función: "array_slice" de PHP encontrada y disponible.
Función: "array_unique" de PHP encontrada y disponible.
Función: "array_values" de PHP encontrada y disponible.
Función: "array_walk" de PHP encontrada y disponible.
Función: "base64_decode" de PHP encontrada y disponible.
Función: "base64_encode" de PHP encontrada y disponible.
Función: "basename" de PHP encontrada y disponible.
Función: "call_user_func" de PHP encontrada y disponible.
Función: "ceil" de PHP encontrada y disponible.
Función: "chr" de PHP encontrada y disponible.
Función: "closedir" de PHP encontrada y disponible.
Función: "copy" de PHP encontrada y disponible.
Función: "crc32" de PHP encontrada y disponible.
Función: "date_default_timezone_set" de PHP encontrada y disponible.
Función: "setlocale" de PHP encontrada y disponible.
Función: "date_parse" de PHP encontrada y disponible.
Función: "debug_backtrace" de PHP encontrada y disponible.
Función: "doubleval" de PHP encontrada y disponible.
Función: "end" de PHP encontrada y disponible.
Función: "exif_imagetype" de PHP encontrada y disponible.
Función: "exif_read_data" de PHP encontrada y disponible.
Función: "fclose" de PHP encontrada y disponible.
Función: "file_exists" de PHP encontrada y disponible.
Función: "file_put_contents" de PHP encontrada y disponible.
Función: "filesize" de PHP encontrada y disponible.
Función: "filter_var" de PHP encontrada y disponible.
Función: "floor" de PHP encontrada y disponible.
Función: "fopen" de PHP encontrada y disponible.
Función: "func_get_args" de PHP encontrada y disponible.
Función: "fwrite" de PHP encontrada y disponible.
Función: "getimagesize" de PHP encontrada y disponible.
Función: "glob" de PHP encontrada y disponible.
Función: "hash" de PHP encontrada y disponible.
Función: "header" de PHP encontrada y disponible.
Función: "header_remove" de PHP encontrada y disponible.
Función: "headers_sent" de PHP encontrada y disponible.
Función: "hexdec" de PHP encontrada y disponible.
Función: "html_entity_decode" de PHP encontrada y disponible.
Función: "htmlentities" de PHP encontrada y disponible.
Función: "image_type_to_mime_type" de PHP encontrada y disponible.
Función: "imagealphablending" de PHP encontrada y disponible.
Función: "imagecolorallocate" de PHP encontrada y disponible.
Función: "imagecolorallocatealpha" de PHP encontrada y disponible.
Función: "imagecolorallocatealpha" de PHP encontrada y disponible.
Función: "imagecolorat" de PHP encontrada y disponible.
Función: "imagecolortransparent" de PHP encontrada y disponible.
Función: "imagecolortransparent" de PHP encontrada y disponible.
Función: "imagecopy" de PHP encontrada y disponible.
Función: "imagecopyresampled" de PHP encontrada y disponible.
Función: "imagecreatefromgif" de PHP encontrada y disponible.
Función: "imagecreatefromjpeg" de PHP encontrada y disponible.
Función: "imagecreatefrompng" de PHP encontrada y disponible.
Función: "imagecreatefromwbmp" de PHP encontrada y disponible.
Función: "imagecreatetruecolor" de PHP encontrada y disponible.
Función: "imagedestroy" de PHP encontrada y disponible.
Función: "imagefill" de PHP encontrada y disponible.
Función: "imagefilledrectangle" de PHP encontrada y disponible.
Función: "imagegif" de PHP encontrada y disponible.
Función: "imagejpeg" de PHP encontrada y disponible.
Función: "imagepng" de PHP encontrada y disponible.
Función: "imagepng" de PHP encontrada y disponible.
Función: "imagesavealpha" de PHP encontrada y disponible.
Función: "imagesavealpha" de PHP encontrada y disponible.
Función: "imagesetpixel" de PHP encontrada y disponible.
Función: "imagestring" de PHP encontrada y disponible.
Función: "imagesx" de PHP encontrada y disponible.
Función: "imagesy" de PHP encontrada y disponible.
Función: "imagettfbbox" de PHP encontrada y disponible.
Función: "imagettftext" de PHP encontrada y disponible.
Función: "imagewbmp" de PHP encontrada y disponible.
Función: "implode" de PHP encontrada y disponible.
Función: "in_array" de PHP encontrada y disponible.
Función: "ini_set" de PHP encontrada y disponible.
Función: "intval" de PHP encontrada y disponible.
Función: "is_array" de PHP encontrada y disponible.
Función: "is_bool" de PHP encontrada y disponible.
Función: "is_callable" de PHP encontrada y disponible.
Función: "is_dir" de PHP encontrada y disponible.
Función: "is_integer" de PHP encontrada y disponible.
Función: "is_numeric" de PHP encontrada y disponible.
Función: "is_object" de PHP encontrada y disponible.
Función: "is_resource" de PHP encontrada y disponible.
Función: "is_string" de PHP encontrada y disponible.
Función: "json_decode" de PHP encontrada y disponible.
Función: "json_encode" de PHP encontrada y disponible.
Función: "key" de PHP encontrada y disponible.
Función: "krsort" de PHP encontrada y disponible.
Función: "libxml_clear_errors" de PHP encontrada y disponible.
Función: "libxml_get_errors" de PHP encontrada y disponible.
Función: "libxml_use_internal_errors" de PHP encontrada y disponible.
Función: "log" de PHP encontrada y disponible.
Función: "ltrim" de PHP encontrada y disponible.
Función: "mail" de PHP encontrada y disponible.
Función: "mb_http_output" de PHP encontrada y disponible.
Función: "mb_http_output" de PHP encontrada y disponible.
Función: "mb_internal_encoding" de PHP encontrada y disponible.
Función: "mb_strlen" de PHP encontrada y disponible.
Función: "mb_strtolower" de PHP encontrada y disponible.
Función: "microtime" de PHP encontrada y disponible.
Función: "mkdir" de PHP encontrada y disponible.
Función: "mktime" de PHP encontrada y disponible.
Función: "mt_rand" de PHP encontrada y disponible.
Función: "mysqli_connect" de PHP encontrada y disponible.
Función: "mysqli_connect_errno" de PHP encontrada y disponible.
Función: "mysqli_errno" de PHP encontrada y disponible.
Función: "mysqli_error" de PHP encontrada y disponible.
Función: "mysqli_fetch_array" de PHP encontrada y disponible.
Función: "mysqli_fetch_assoc" de PHP encontrada y disponible.
Función: "mysqli_free_result" de PHP encontrada y disponible.
Función: "mysqli_get_server_info" de PHP encontrada y disponible.
Función: "mysqli_query" de PHP encontrada y disponible.
Función: "mysqli_real_escape_string" de PHP encontrada y disponible.
Función: "mysqli_real_query" de PHP encontrada y disponible.
Función: "number_format" de PHP encontrada y disponible.
Función: "ob_end_clean" de PHP encontrada y disponible.
Función: "ob_end_flush" de PHP encontrada y disponible.
Función: "ob_get_contents" de PHP encontrada y disponible.
Función: "ob_start" de PHP encontrada y disponible.
Función: "opendir" de PHP encontrada y disponible.
Función: "openssl_digest" de PHP encontrada y disponible.
Función: "ord" de PHP encontrada y disponible.
Función: "pack" de PHP encontrada y disponible.
Función: "parse_url" de PHP encontrada y disponible.
Función: "pow" de PHP encontrada y disponible.
Función: "preg_match" de PHP encontrada y disponible.
Función: "preg_match_all" de PHP encontrada y disponible.
Función: "preg_replace" de PHP encontrada y disponible.
Función: "preg_replace_callback" de PHP encontrada y disponible.
Función: "print_r" de PHP encontrada y disponible.
Función: "readdir" de PHP encontrada y disponible.
Función: "reset" de PHP encontrada y disponible.
Función: "rmdir" de PHP encontrada y disponible.
Función: "round" de PHP encontrada y disponible.
Función: "scandir" de PHP encontrada y disponible.
Función: "session_cache_limiter" de PHP encontrada y disponible.
Función: "session_name" de PHP encontrada y disponible.
Función: "session_start" de PHP encontrada y disponible.
Función: "session_write_close" de PHP encontrada y disponible.
Función: "set_time_limit" de PHP encontrada y disponible.
Función: "setcookie" de PHP encontrada y disponible.
Función: "simplexml_load_file" de PHP encontrada y disponible.
Función: "simplexml_load_string" de PHP encontrada y disponible.
Función: "sleep" de PHP encontrada y disponible.
Función: "spl_autoload_register" de PHP encontrada y disponible.
Función: "sprintf" de PHP encontrada y disponible.
Función: "str_ireplace" de PHP encontrada y disponible.
Función: "str_pad" de PHP encontrada y disponible.
Función: "str_shuffle" de PHP encontrada y disponible.
Función: "str_split" de PHP encontrada y disponible.
Función: "strlen" de PHP encontrada y disponible.
Función: "strpos" de PHP encontrada y disponible.
Función: "strripos" de PHP encontrada y disponible.
Función: "strrpos" de PHP encontrada y disponible.
Función: "strstr" de PHP encontrada y disponible.
Función: "strtolower" de PHP encontrada y disponible.
Función: "strtotime" de PHP encontrada y disponible.
Función: "strtoupper" de PHP encontrada y disponible.
Función: "substr" de PHP encontrada y disponible.
Función: "trim" de PHP encontrada y disponible.
Función: "ucfirst" de PHP encontrada y disponible.
Función: "ucwords" de PHP encontrada y disponible.
Función: "umask" de PHP encontrada y disponible.
Función: "unpack" de PHP encontrada y disponible.
Función: "usort" de PHP encontrada y disponible.
Función: "var_export" de PHP encontrada y disponible.
Función: "version_compare" de PHP encontrada y disponible.
[ Nivel: 4 | Función: config::_checkingSystem(); | Línea: 951 | Archivo: /var/www/clients/client57/web318/web/system/engine/config.php | Tiempo tomado: 0.7 segundos (0.687) ]

Preparando configuración principal (config::_checkvalues)


Se ha agregado con éxito los mensajes del archivo: "language_main.xml" adicional (a través del método: "config::_checkvalues"), con el fin de que puedan ser llamados por medio de etiquetas como: "{{txtEjemplo}}" desde dentro de las plantillas o archivos XML. Para desactivar esta característica, por favor elimina el atributo: "tags" de la etiqueta: "mensajes" dentro del archivo: "language_main.xml".
[ Nivel: 4 | Función: config::_checkvalues(); | Línea: 573 | Archivo: /var/www/clients/client57/web318/web/system/engine/config.php | Tiempo tomado: 0.7 segundos (0.687) ]

Preparando configuración principal (config::_checkvalues)


Todos los valores del archivo de configuración: "./config/langs/es.default/config.xml", han sido comprobados con éxito. En el caso de que no existan alertas de nivel 4 y no vayas a realizar más cambios en la configuración, puedes omitir esta comprobación para ahorrar recursos y ganar velocidad.
[ Nivel: 4 | Función: config::_checkvalues(); | Línea: 573 | Archivo: /var/www/clients/client57/web318/web/system/engine/config.php | Tiempo tomado: 0.7 segundos (0.687) ]

Preparando configuración principal (config::_hasAttrValue)


Se ha detectado a través del método: "config::_hasAttrValue", que se está utilizando el parámetro debug: "desarrollo@servigran.com" para modo desarrollo en lugar de modo producción: "info@tugraffiti.com". Este valor ha sido recogido del atributo "debug" de la etiqueta "email->main" del archivo de configuración XML: "./config/langs/es.default/config.xml".
[ Nivel: 4 | Función: config::_hasAttrValue('email', 'main', '', 'debug'); | Línea: 1169 | Archivo: /var/www/clients/client57/web318/web/system/engine/config.php | Tiempo tomado: 0.7 segundos (0.687) ]

Preparando configuración principal (config::_phpAddFiles)


Se ha desactivado la inclusión de archivos PHP indicados en la etiqueta "php" del archivo de configuración XML: "./config/langs/es.default/config.xml" (a través del método: "config::_phpAddFiles"). Para activarlo, modifica el valor del atributo: "enabled" a: 1 de dicha etiqueta.
[ Nivel: 4 | Función: config::_phpAddFiles(); | Línea: 1093 | Archivo: /var/www/clients/client57/web318/web/system/engine/config.php | Tiempo tomado: 0.7 segundos (0.688) ]

Gestionando contenido Javascript (js::is_exist)


Se detectó a través del método: "js::is_exist", que el archivo CSS: "3185912901" ya había sido agregado con anterioridad.
[ Nivel: 4 | Función: js::is_exist(3185912901, 1); | Línea: 3348 | Archivo: /var/www/clients/client57/web318/web/system/interface/js.php | Tiempo tomado: 0.7 segundos (0.688) ]

Gestionando contenido Javascript (js::_addJS)


Se ha añadido un nuevo contenido javascript (en una ruta local) entre las etiquetas: "<head>" y "</head>"para todo el sitio Web. a través del método: "js::_addJS".
[ Nivel: 4 | Función: js::_addJS('function emailProtect(a, c, l, i){ var b=a.split("").sort().join(""); var d=""; for(var e=0;e<c.length;e++){ d+=b.charAt(a.indexOf(c.charAt(e))); } if(l == 1){ var l = \'<a href="mailto:\'+d+\'" title="Esta dirección de correo electrónico se encuentra protegida contra el SPAM">\'+d+\'</a>\'; }else{ var l = \'\' + d; } Array.prototype.forEach.call(i, function(el){ document.body.innerHTML = document.body.innerHTML.replace(i, l); }); }', array ( 0 => 3185912901, ), 'as_content', 'head', 0, 0, 0, 0, 1, 0, '|web', 'page'); | Línea: 3360 | Archivo: /var/www/clients/client57/web318/web/system/interface/js.php | Tiempo tomado: 0.7 segundos (0.688) ]

Nivel: 5 :: Sistema de sesiones (Cookies)


Las variables de sesión son necesarias entre (otras funcionalidades) para que el usuario o administrador pueda loguearse y gestionar el sitio Web.
1 mensaje(s) general(es) recibido(s) en este nivel.

Ver/Ocultar errores | Ver/Ocultar correctos | Ver/Ocultar info | Ver/Ocultar alertas | Ver/Ocultar todo

Clase principal del núcleo del sistema (main::execIncludeBootFiles)


No se han encontrado archivos de arranque en el nivel: "5" a través del método: "main::execIncludeBootFiles").
[ Nivel: 5 | Función: main::execIncludeBootFiles(); | Línea: 1704 | Archivo: /var/www/clients/client57/web318/web/system/engine/main.php | Tiempo tomado: 0.7 segundos (0.688) ]

Nivel: 6 :: Conexión a la base de datos


Conecta con la base de datos con ayuda de los parámetros recogidos en el archivo de configuración principal del Nivel 4.
4 mensaje(s) general(es) recibido(s) en este nivel.

Ver/Ocultar errores | Ver/Ocultar correctos | Ver/Ocultar info | Ver/Ocultar alertas | Ver/Ocultar todo

Clase principal del núcleo del sistema (main::execIncludeBootFiles)


No se han encontrado archivos de arranque en el nivel: "6" a través del método: "main::execIncludeBootFiles").
[ Nivel: 6 | Función: main::execIncludeBootFiles(); | Línea: 1704 | Archivo: /var/www/clients/client57/web318/web/system/engine/main.php | Tiempo tomado: 0.7 segundos (0.688) ]

Consultando a la base de datos (db::_connect)


Se ha establecido satisfactoriamente el juego de carácteres: "utf8" en la base de datos: "c57tugraffiti" del servidor mysql: "127.0.0.1" a través del método: "db::_connect".
[ Nivel: 6 | Función: db::_connect(); | Línea: 1393 | Archivo: /var/www/clients/client57/web318/web/system/engine/db.php | Tiempo tomado: 0.7 segundos (0.689) ]

Consultando a la base de datos (db::_connect)


Se ha establecido satisfactoriamente la zona horaria: "+00:00" en la base de datos: "c57tugraffiti" del servidor mysql: "127.0.0.1" a través del método: "db::_connect".
[ Nivel: 6 | Función: db::_connect(); | Línea: 1393 | Archivo: /var/www/clients/client57/web318/web/system/engine/db.php | Tiempo tomado: 0.7 segundos (0.689) ]

Consultando a la base de datos (db::_connect)


Se ha conectado correctamente con el servidor de base de datos: "mysql" en "127.0.0.1" y se ha accedido con éxito a la base de datos: "c57tugraffiti" a través del método: "db::_connect".
[ Nivel: 6 | Función: db::_connect(); | Línea: 1393 | Archivo: /var/www/clients/client57/web318/web/system/engine/db.php | Tiempo tomado: 0.7 segundos (0.689) ]

Nivel: 7 :: Gestión de la página actual


Extrae toda la información de la página que se desea mostrar. Además recopila información sobre el resto de las páginas con el fin de poder navegar a través de ellas mediante etiquetas entre otras formas.
34 mensaje(s) general(es) recibido(s) en este nivel.

Ver/Ocultar errores | Ver/Ocultar correctos | Ver/Ocultar info | Ver/Ocultar alertas | Ver/Ocultar todo

Clase principal del núcleo del sistema (main::execIncludeBootFiles)


No se han encontrado archivos de arranque en el nivel: "7" a través del método: "main::execIncludeBootFiles").
[ Nivel: 7 | Función: main::execIncludeBootFiles(); | Línea: 1704 | Archivo: /var/www/clients/client57/web318/web/system/engine/main.php | Tiempo tomado: 0.7 segundos (0.690) ]

Gestionando contenido Javascript (js::is_exist)


Se detectó a través del método: "js::is_exist", que el archivo CSS: "156424613" ya había sido agregado con anterioridad.
[ Nivel: 7 | Función: js::is_exist(156424613, 1); | Línea: 3348 | Archivo: /var/www/clients/client57/web318/web/system/interface/js.php | Tiempo tomado: 0.7 segundos (0.691) ]

Gestionando contenido Javascript (js::is_exist)


Se detectó a través del método: "js::is_exist", que el archivo CSS: "832033968" ya había sido agregado con anterioridad.
[ Nivel: 7 | Función: js::is_exist(832033968, 1); | Línea: 3348 | Archivo: /var/www/clients/client57/web318/web/system/interface/js.php | Tiempo tomado: 0.7 segundos (0.691) ]

Consultando página actual (pages::_setContainer)


Se ha realizado una petición de página vía: $_GET a través de la siguiente URL amigable de mod_rewrite: (inicio) en el método: "pages::_setContainer".
[ Nivel: 7 | Función: pages::_setContainer(); | Línea: 2572 | Archivo: /var/www/clients/client57/web318/web/system/engine/pages.php | Tiempo tomado: 0.7 segundos (0.692) ]

Consultando página actual (pages::_getByID_or_URL)


Se entregó satisfactoriamente vía URL y se recogió vía: "$_GET", la URL de página: "inicio" a través del método: "pages::_getByID_or_URL.
[ Nivel: 7 | Función: pages::_getByID_or_URL('inicio', '$_GET', 0); | Línea: 2811 | Archivo: /var/www/clients/client57/web318/web/system/engine/pages.php | Tiempo tomado: 0.7 segundos (0.692) ]

Consultando página actual (pages::_add_html_headers)


El archivo logotipo: "./resources/logo.svg" especificado en la etiqueta "logo" del archivo configuración del sitio web, no ha sido encontrado. Detectado a través del método: "pages::_add_html_headers".
[ Nivel: 7 | Función: pages::_add_html_headers(); | Línea: 5158 | Archivo: /var/www/clients/client57/web318/web/system/engine/pages.php | Tiempo tomado: 0.7 segundos (0.693) ]

Gestionando contenido Javascript (js::is_exist)


Se detectó a través del método: "js::is_exist", que el archivo CSS: "https://code.jquery.com/jquery-3.7.1.min.js" ya había sido agregado con anterioridad.
[ Nivel: 7 | Función: js::is_exist('https://code.jquery.com/jquery-3.7.1.min.js', 0); | Línea: 3286 | Archivo: /var/www/clients/client57/web318/web/system/interface/js.php | Tiempo tomado: 0.7 segundos (0.693) ]

Gestionando contenido Javascript (js::_addJS)


Se ha añadido un nuevo archivo (jquery-3.7.1.min.js) javascript ( a través de la ruta remota: "https://code.jquery.com/jquery-3.7.1.min.js") entre las etiquetas: "<head>" y "</head>" de la página: "Inicio (1)" a través del método: "js::_addJS".
[ Nivel: 7 | Función: js::_addJS('<script crossorigin="anonymous" src="https://code.jquery.com/jquery-3.7.1.min.js"></script> ', array ( 0 => 'jquery-3.7.1.min.js', ), 'as_file', 'head', 1, 1, 0, 1, 1, 0, '|page_1', 'page'); | Línea: 4089 | Archivo: /var/www/clients/client57/web318/web/system/interface/js.php | Tiempo tomado: 0.7 segundos (0.693) ]

Gestionando contenido Javascript (js::is_exist)


Se detectó a través del método: "js::is_exist", que el archivo CSS: "https://code.jquery.com/jquery-migrate-3.5.2.min.js" ya había sido agregado con anterioridad.
[ Nivel: 7 | Función: js::is_exist('https://code.jquery.com/jquery-migrate-3.5.2.min.js', 0); | Línea: 3286 | Archivo: /var/www/clients/client57/web318/web/system/interface/js.php | Tiempo tomado: 0.7 segundos (0.693) ]

Gestionando contenido Javascript (js::_addJS)


Se ha añadido un nuevo archivo (jquery-migrate-3.5.2.min.js) javascript ( a través de la ruta remota: "https://code.jquery.com/jquery-migrate-3.5.2.min.js") entre las etiquetas: "<head>" y "</head>" de la página: "Inicio (1)" a través del método: "js::_addJS".
[ Nivel: 7 | Función: js::_addJS('<script src="https://code.jquery.com/jquery-migrate-3.5.2.min.js"></script> ', array ( 0 => 'jquery-migrate-3.5.2.min.js', ), 'as_file', 'head', 1, 1, 0, 1, 1, 0, '|page_1', 'page'); | Línea: 4089 | Archivo: /var/www/clients/client57/web318/web/system/interface/js.php | Tiempo tomado: 0.7 segundos (0.693) ]

Gestionando contenido Javascript (js::is_exist)


Se detectó a través del método: "js::is_exist", que el archivo CSS: "https://code.jquery.com/ui/1.13.0/jquery-ui.min.js" ya había sido agregado con anterioridad.
[ Nivel: 7 | Función: js::is_exist('https://code.jquery.com/ui/1.13.0/jquery-ui.min.js', 0); | Línea: 3286 | Archivo: /var/www/clients/client57/web318/web/system/interface/js.php | Tiempo tomado: 0.7 segundos (0.693) ]

Gestionando contenido Javascript (js::_addJS)


Se ha añadido un nuevo archivo (jquery-ui.min.js) javascript ( a través de la ruta remota: "https://code.jquery.com/ui/1.13.0/jquery-ui.min.js") entre las etiquetas: "<head>" y "</head>" de la página: "Inicio (1)" a través del método: "js::_addJS".
[ Nivel: 7 | Función: js::_addJS('<script crossorigin="anonymous" src="https://code.jquery.com/ui/1.13.0/jquery-ui.min.js"></script> ', array ( 0 => 'jquery-ui.min.js', ), 'as_file', 'head', 1, 1, 0, 1, 1, 0, '|page_1', 'page'); | Línea: 4089 | Archivo: /var/www/clients/client57/web318/web/system/interface/js.php | Tiempo tomado: 0.7 segundos (0.693) ]

Gestionando contenido Javascript (js::is_exist)


Se detectó a través del método: "js::is_exist", que el archivo CSS: "./extensions/js/interface.js" ya había sido agregado con anterioridad.
[ Nivel: 7 | Función: js::is_exist('./extensions/js/interface.js', 1); | Línea: 3399 | Archivo: /var/www/clients/client57/web318/web/system/interface/js.php | Tiempo tomado: 0.7 segundos (0.693) ]

Gestionando contenido Javascript (js::_addJS)


Se ha añadido un nuevo contenido javascript (en una ruta local) entre las etiquetas: "<head>" y "</head>" de la página: "Inicio (1)" a través del método: "js::_addJS".
[ Nivel: 7 | Función: js::_addJS(' function msgErrorpopUp(tit, txt, myid, btcallback, oncreate_callback){ if(typeof tit === \'undefined\' || tit === \'\'){ var tit = txtErrorTitle;} if(typeof txt === \'undefined\' || txt === \'\'){ var txt = txtErrorText; } if(typeof btcallback === \'undefined\' || btcallback === \'\'){ var btcallback = \'\'; } if(typeof oncreate_callback === \'undefined\' || oncreate_callback === \'\'){ var oncreate_callback = \'\'; } if(typeof myid === \'undefined\' || myid === \'\'){ var myid = \'errorpopup\'; } return msgpopUp(\'\', \'\\x3Ch1>\\x3Ci class="fas fa-times-circle fa-lg">\\x3C/i> \' + tit + \'\\x3C/h1>\\x3Cbr />\' + txt, myid, \'error\', false, \'\', btcallback, oncreate_callback); } function msgOkpopUp(tit, txt, myid, btcallback, oncreate_callback){ if(typeof tit === \'undefined\' || tit === \'\'){ var tit = txtOkTitle;} if(typeof txt === \'undefined\' || txt === \'\'){ var txt = txtOkText; } if(typeof btcallback === \'undefined\' || btcallback === \'\'){ var btcallback = \'\'; } if(typeof oncreate_callback === \'undefined\' || oncreate_callback === \'\'){ var oncreate_callback = \'\'; } if(typeof myid === \'undefined\' || myid === \'\'){ var myid = \'okpopup\'; } return msgpopUp(\'\', \'\\x3Ch1>\\x3Ci class="fas fa-check-circle fa-lg">\\x3C/i> \' + tit + \'\\x3C/h1>\\x3Cbr />\' + txt, myid, \'ok\', false, \'\', btcallback, oncreate_callback); } function msgInfopopUp(tit, txt, myid, btcallback, oncreate_callback){ if(typeof tit === \'undefined\' || tit === \'\'){ var tit = txtInfoTitle;} if(typeof txt === \'undefined\' || txt === \'\'){ var txt = txtInfoText; } if(typeof btcallback === \'undefined\' || btcallback === \'\'){ var btcallback = \'\'; } if(typeof oncreate_callback === \'undefined\' || oncreate_callback === \'\'){ var oncreate_callback = \'\'; } if(typeof myid === \'undefined\' || myid === \'\'){ var myid = \'infopopup\'; } return msgpopUp(\'\', \'\\x3Ch1>\\x3Ci class="fas fa-info-circle fa-lg">\\x3C/i> \' + tit + \'\\x3C/h1>\\x3Cbr />\' + txt, myid, \'info\', false, \'\', btcallback, oncreate_callback); } function msgWarningpopUp(tit, txt, myid, btcallback, oncreate_callback){ if(typeof tit === \'undefined\' || tit === \'\'){ var tit = txtWarningTitle; } if(typeof txt === \'undefined\' || txt === \'\'){ var txt = txtWarningText; } if(typeof btcallback === \'undefined\' || btcallback === \'\'){ var btcallback = \'\'; } if(typeof oncreate_callback === \'undefined\' || oncreate_callback === \'\'){ var oncreate_callback = \'\'; } if(typeof myid === \'undefined\' || myid === \'\'){ var myid = \'warningpopup\'; } return msgpopUp(\'\', \'\\x3Ch1>\\x3Ci class="fas fa-exclamation-triangle fa-lg">\\x3C/i> \' + tit + \'\\x3C/h1>\\x3Cbr />\' + txt, myid, \'warning\', false, \'\', btcallback, oncreate_callback); } function msgQuestionpopUp(tit, txt, myid, btcallback, oncreate_callback){ if(typeof tit === \'undefined\' || tit === \'\'){ var tit = txtQuestionTitle; } if(typeof txt === \'undefined\' || txt === \'\'){ var txt = txtQuestionText; } if(typeof btcallback === \'undefined\' || btcallback === \'\'){ var btcallback = [ // Botón ACEPTAR. { html: \'<i class="fas fa-check"><!----></i> \' + txtQuestionYes, class: \'ok\', click: function(e){ return true; } }, // Botón CANCELAR. { html: \'<i class="fas fa-ban"><!----></i> \' + txtQuestionNo, class: "cancel", click: function(e){ return false; } } ]; } if(typeof oncreate_callback === \'undefined\' || oncreate_callback === \'\'){ var oncreate_callback = \'\'; } if(typeof myid === \'undefined\' || myid === \'\'){ var myid = \'questionpopup\'; } return msgpopUp(\'\', \'\\x3Ch1>\\x3Ci class="far fa-question-circle fa-lg">\\x3C/i> \' + tit + \'\\x3C/h1>\\x3Cbr />\' + txt, myid, \'question\', false, \'\', btcallback, oncreate_callback); } // prependClass function prependClass(a,s){var r=jQuery(a),t=r.attr("class");t=s+" "+t,r.attr("class",t)} // str_replace() function str_replace($f, $r, $s){return $s.replace(new RegExp("(" + (typeof($f) == "string" ? $f.replace(/[.?*+^$[\\]\\\\(){}|-]/g, "\\\\$&") : $f.map(function(i){return i.replace(/[.?*+^$[\\]\\\\(){}|-]/g, "\\\\$&")}).join("|")) + ")", "g"), typeof($r) == "string" ? $r : typeof($f) == "string" ? $r[0] : function(i){ return $r[$f.indexOf(i)]});} // Redirije hacia una URL. function gotoURL(u,n){if(n===1){window.open(u)}else{$(\'body\').css("cursor", "wait"); window.location=u}} // Función para copiar al portapapeles. function setClipboardText(e,t){var n=document.getElementById(t);if(!n){var o=document.createElement("textarea");o.id=t,o.style.position="fixed",o.style.top=0,o.style.left=0,o.style.width="1px",o.style.height="1px",o.style.padding=0,o.style.border="none",o.style.outline="none",o.style.boxShadow="none",o.style.background="transparent",document.querySelector("body").appendChild(o),n=document.getElementById(t)}n.value=e,n.select(),n.setSelectionRange(0,99999),document.execCommand("copy")} // strip_tags() function strip_tags(e,n){return e.replace(new RegExp("<(?!/?("+n.join("|")+"))\\\\w*[^<>]*>","gi"),"").replace(new RegExp("(<"+n.join("|")+")[^<>]*","gi"),"$1")} // in_array() function in_array(r,n){n.length;for(var i in n)if(n[i]==r)return!0;return!1} // Valida una URL. function validURL(str){ var pattern = new RegExp(\'^(https?:\\\\/\\\\/)?\'+ // protocol \'((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|\'+ // domain name \'((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))\'+ // OR ip (v4) address \'(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*\'+ // port and path \'(\\\\?[;&a-z\\\\d%_.~+=-]*)?\'+ // query string \'(\\\\#[-a-z\\\\d_]*)?$\',\'i\'); // fragment locator return !!pattern.test(str); } // Valida una URL relativa. function validRelative(str){ var pattern = new RegExp(\'(\\/[a-zA-Z0-9_\\-]+)*\\/?$\',\'i\'); return !!pattern.test(str); } // Agrega el estilo \'forms.css\' function loadFormsCSS(){ // Agrega el estilo \'forms.css\' if($(\'link[href*="forms.css"]\').length === 0){ $(\'head:not(:has(iframe))\').append(\'\\x3Clink id="formscss" rel="stylesheet" href="\' + web_css_dir + \'forms/forms.css" />\'); return true; } return false; } // Mensaje en popUp function msgpopUp(mytitle, mytext, myid, type, clickout, btnid, btns_callback, oncreate_callback){ // Agrega el estilo \'forms.css\' // Comentado por entrar en conflicto con campo de formulario tinymce. loadFormsCSS(); // Genera un ID automático. if(typeof myid === \'undefined\'){ var myid = \'popupmsg_\' + Math.random() * (1000 - 10) + 10; } // En caso de que no exista el diálogo y deba ser creado. if(myid.length === 0 || $(\'#\' + myid).length === 0){ // Añade el div. $(\'body\').append( \'\\x3Cdiv id="\' + myid + \'" style="display:none;">\\x3Cdiv class="msg_\' + type + \'_title">\' + mytitle + \'\\x3C/div>\\x3Cdiv class="msg_\' + type + \'_text">\' + mytext + \'\\x3C/div>\\x3C/div>\'); } // Al redimensionar la ventana. $(window).resize(function(){ if($(\'#\' + myid).is(":hidden")){ return; } $(\'#\' + myid).dialog( \'option\', \'position\', {my: \'center\', at: \'center\', of: window} ); }); // Se comprueba si se ha especificado título. if(mytitle === \'\'){ var showbar = false; }else{ var showbar = true; } // En caso de ser una pregunta. if(type === \'question\'){ var clickout = false; } else if(type === \'error\'){ if("vibrate" in navigator){ navigator.vibrate([200, 100, 200]); } } // Recoge el texto del botón antes de cambiar, para que en caso de // cancelar, vuelva a su estado natural. if(btnid.length !== 0){ var mybtnprevhtml = $(\'#\' + btnid).html(); } // Se comprueba si se han recibido botones. if(btns_callback != \'\'){ // Reinicializa los botones. myButtons = {}; //myButtons = btns_callback; // Bucle para examinar los botones. // 0 - b0 $.each(btns_callback, function(key, cback){ // Se comprueba si se ha especificado algún nombre de función. if(cback.length <= 0){ return true; } // Comprueba si la función existe. if(typeof cback === "function"){ // Obtiene el texto del botón a través de la propia función. var btntext = cback(\'text\'); // No se obtuvo el texto. Texto por defecto. if(btntext === undefined || btntext.length <= 0){ btntext = \'button\' + key; } myButtons[btntext] = { html: btntext, click: function(e){ // Destruye el diálogo y vuelve a modificar el texto // del botón al original. var diag = $(this); var cl = \'.\' + e.currentTarget.classList[0]; $(cl).addClass("pressed"); $(diag).parent().addClass("animate__animated animate__fadeOut"); $(".ui-widget-overlay").fadeOut(500); $(this).parent().fadeOut(500, function(e){ $(diag).dialog(\'destroy\'); }); if(typeof mybtnprevhtml !== \'undefined\'){ $(\'#\' + btnid).html(mybtnprevhtml); } // Ejecuta la función callback para este botón. //cback(); } }; // Se comprueba si es un objeto. }else if(typeof cback === "object"){ // Mantiene el resto de los atributos del objeto. myButtons[key] = cback; // Se comprueba si existe una función. if(typeof cback.click === "function"){ // Copia la función existente. var fnct = cback.click; }else{ // Función vacía. var fnct = function(){}; } // Crea el botón. myButtons[key].click = function(e){ // Ejecuta la función callback para este botón. fnct(); // Destruye el diálogo y vuelve a modificar el texto del // botón al original. var diag = $(this); var cl = \'.\' + e.currentTarget.classList[0]; $(cl).addClass("pressed"); // Indica si se debe cerrar. if(typeof myButtons[key].noclose === \'undefined\' || myButtons[key].noclose === false){ $(diag).parent().addClass("animate__animated animate__fadeOut"); $(".ui-widget-overlay").fadeOut(500); $(this).parent().fadeOut(500, function(e){ $(diag).dialog(\'destroy\'); }); if(typeof mybtnprevhtml !== \'undefined\'){ $(\'#\' + btnid).html(mybtnprevhtml); } } }; // Ni función ni objeto. }else{ myButtons[cback] = cback; } }); }else{ // Botón por defecto. var myButtons = { cerrar:{ html: txtClose, click: function(e){ var diag = $(this); $(diag).parent().addClass("animate__animated animate__fadeOut"); // Destruye el diálogo y vuelve a modificar el texto // del botón al original. $(".ui-widget-overlay").fadeOut(500); $(diag).parent().fadeOut(500, function(e){ $(diag).dialog(\'destroy\'); }); if(btnid !== \'\'){ $(\'#\' + btnid).html(mybtnprevhtml); } } } }; } // Espera unos segundos en caso necesario antes de mostrar el mensaje. setTimeout(() => { $(\'#\' + myid).dialog({ title: mytitle, dialogClass: \'animate__animated animate__fadeIn msg_\' + type, width:\'auto\', maxwidth:\'95%\', minwidth:\'320\', height:\'auto\', minheight:\'auto\', modal:true, clickOut:clickout, responsive:true, autoOpen:true, autoResize:false, cache:false, closeOnEscape: true, showTitleBar:showbar, showCloseButton:false, position:{my: "center", at: "center", of: $("body"), within: $("body")}, resizable:false, beforeClose: function(){ $(\'#\' + myid).parent().addClass("animate__fadeOut"); }, close: function(){ $(this).dialog(\'destroy\'); }, open: function(){ window.dispatchEvent(new Event(\'resize\')); $(this).animate({scrollTop: 0 }, 0); }, buttons: myButtons, // This runs when the dialog is initialized. create: function(){ if(oncreate_callback instanceof Function){ oncreate_callback(); }else{ runJS(oncreate_callback); } // Renderiza todo el HTML que exista dentro del contenido // de los botones. var btntxt = $(this).parent().find(\'.ui-button\'); //$.each(btntxt, function(e){ $(this).html($(this).text()); }); //if(typeof btns_callback === "undefined"){ // $(btntxt).eq(0).prepend("\\x3Ci class=\\"fas fa-check\\">\\x3C/i> "); //} // Activa el modo pulsado en botones. $("button, input[type=button], input[type=submit], .btn-danger, a.button").on("mousedown touchstart", function(e){ $(this).addClass("pressed"); // Desactiva el modo pulsado en botones. }).on("mouseup mouseout touchend", function(e){ // Elimina la clase \'pressed\' únicamente si el botón no se encuentra desactivado. if(typeof $(this).attr("disabled") === \'undefined\' && !$(this).hasClass("disabled")){ $(this).removeClass("pressed"); } }); // Deshabilita el menú contexto. $("a.button, button, input[type=button], input[type=submit], input[type=reset], .btn-danger").on("contextmenu", function(e){ e.preventDefault(); return false; }); } }); }, 0); } function ajaxRun(selector, values, callbackfunction, datatype, cache){ // Agrega el estilo \'forms.css\' loadFormsCSS(); if(typeof cache == "undefined" || cache == \'\'){ cache = false;} if(typeof datatype == "undefined" || datatype == \'\' || datatype != \'json\'){ datatype = \'html\';} if(!(\'id\' in values) || values.id === \'\'){ values.id = web_id_page; } if(!(\'lang\' in values) || values.lang === \'\'){ values.lang = web_language; } if(!(\'mods\' in values) || values.mods === \'\'){ values.mods = \'\'; } if(!(\'url\' in values) || values.url === \'\'){ var url = \'\'; if(!(\'ajax\' in values)){ values.ajax = \'mods\'; } }else{ var url = \'\'; if(!(\'ajax\' in values)){ values.ajax = \'popups\'; } values.fileajax = values.url; } values._ajaxjsfl = js_files_loaded; values._ajaxcssfl = css_files_loaded; var request = $.ajax({ url: url, type: \'post\', data: values, cache: cache, dataType: datatype, beforeSend: function(data){ // Cambia el modo del cursor. ajaxCursorBefore = $(\'body\').css("cursor"); $(\'body\').css("cursor", "progress"); // Elimina la capa de loading ajax. $(\'.loading_ajax, .loading_ajax_iframe\').remove(); // Se comprueba si existe selector. if($(selector).length != 0){ // Crea la capa de loading ajax. if(!(\'loading\' in values) || values.loading == \'full\'){ $(selector).prepend(divLoading); // Hace aparecer la capa de loading ajax. setTimeout(() => { $(\'.loading_ajax\').fadeIn(); }, 300); }else if(\'loading\' in values){ // Antes del marco. if(values.loading == \'iframe_prepend\'){ // Muestra el loading en el marco seleccionado. $(selector).prepend(divLoadingIframe); // Después del marco. }else if(values.loading == \'iframe_append\'){ // Muestra el loading en el marco seleccionado. $(selector).append(divLoadingIframe); }else{ // Muestra el loading en el marco seleccionado. $(selector).html(divLoadingIframe); } // Hace aparecer la capa de loading ajax. setTimeout(() => { $(\'.loading_ajax_iframe\').fadeIn(); }, 300); } } } }); // Siempre que se procesa. request.always(function(data, textStatus, infoStatus){ // Recupera el estado del cursor. setTimeout(() => { $(\'body\').css("cursor", "auto"); }, 500); // Elimina la capa de loading ajax. $(\'.loading_ajax, .loading_ajax_iframe\').remove(); if(data === \'undefined\'){ return; }else if(datatype == \'html\'){ var obj = JSON.parse(data); }else{ var obj = data; } // Mensaje del resultado del proceso en la consola javascript. if(typeof web_debug !== \'undefined\' && web_debug != 0){ console.log(txtOkTitle + \': \' + textStatus, infoStatus); } // Pide redirigir a una URL. if(typeof obj.url !== "undefined" && obj.url !== \'\'){ $(\'body\').css("cursor", "wait"); setTimeout(() => { window.location = obj.url; }, 0); }else if(obj.ok === 1){ // El proceso fue correcto. // Reemplazar el contenido. if(typeof obj.replace !== \'undefined\'){ // Reemplaza el contenido actual. $(selector).hide(); $(selector).html($.parseHTML(decodeURI(obj.html))); $(selector).fadeIn(500, function(e){ }); // Agregar antes del contenido actual. }else if(typeof obj.prepend !== \'undefined\'){ // Agrega antes del contenido actual. $(selector).prepend(obj.html); }else{ // Agrega después del contenido actual. $(selector).append(obj.html); } // Se comprueba si existe algún script. if(obj.js !== \'\' && (typeof obj.js !== \'undefined\')){ runJS(obj.js); } if(callbackfunction instanceof Function){ callbackfunction(values); }else{ runJS(callbackfunction); } }else{ if(obj.js !== \'\' && (typeof obj.js !== \'undefined\')){ runJS(obj.js); }else{ if(typeof obj.html !== \'undefined\' && obj.html.length != 0){ // Reemplazar el contenido. if(typeof obj.replace !== \'undefined\'){ // Reemplaza el contenido actual. $(selector).fadeOut(2500, function(e){ $(selector).html($.parseHTML(decodeURI(obj.html))); $(selector).fadeIn(2500, function(e){ }); }); // Agregar antes del contenido actual. }else if(typeof obj.prepend !== \'undefined\'){ // Agrega antes del contenido actual. $(selector).prepend(obj.html); }else{ // Agrega después del contenido actual. $(selector).append(obj.html); } } // Mensaje del resultado del proceso en la consola javascript. if(typeof web_debug !== \'undefined\' && web_debug != 0 && obj.error !== \'\' && (typeof obj.error !== \'undefined\')){ // Mensaje para consola. console.log(txtErrorTitle + \': \' + obj.error); // Con mensaje para modo desarrollo. msgErrorpopUp(txtErrorTitle, txtErrorText + \'\\x3Cbr />\\x3Ch2>\' + txtOnlyDev + \'\\x3C/h2>\' + obj.error); }else{ // Título del error personalizado. if(typeof obj.title === \'undefined\'){ obj.title = txtErrorTitle; } // Texto del error personalizado. if(typeof obj.text === \'undefined\'){ obj.text = txtErrorText; } // Mensaje de error general al usuario. msgErrorpopUp(obj.title, obj.text); } } } }); // El proceso ha fallado. request.fail(function(jqXHR, textStatus, infoStatus){ // Recupera el estado del cursor. setTimeout(() => { $(\'body\').css("cursor", "auto"); }, 500); // Mensaje del resultado del proceso en la consola javascript. if(typeof web_debug !== \'undefined\' && web_debug != 0){ // Mensaje para consola. console.log(txtErrorTitle + \': \' + textStatus, infoStatus); // Con mensaje para modo desarrollo. msgErrorpopUp(txtErrorTitle, txtErrorText + \'\\x3Cbr />\\x3Ch2>\' + txtOnlyDev + \'\\x3C/h2>\' + textStatus); }else{ // Muestra mensaje de error. msgErrorpopUp(); } }); } // Ejecuta código JS. function runJS(code){ // Se comprueba si se envió código. if(typeof code === "undefined" || code === null || code === \'\'){ return false; } // Elimina el nodo en caso de que exista. if(document.getElementById("ajaxJS") !== null){ var elem = document.getElementById("ajaxJS"); elem.parentNode.removeChild(elem); } // Creamos el elemento. var s = document.createElement("script"); s.id = "ajaxJS"; s.type = "text/javascript"; s.textContent = code; document.body.appendChild(s); } // Scroll hacia selector. function scrollTo(s, margin){ if(typeof margin == "undefined"){ margin = 0; }else{ margin = parseInt(margin); } var nav = $(s); if(nav.length){ $("html, body").animate({ scrollTop: nav.position().top - margin }, 800, \'swing\', function(){ nav.addClass(\'animate__animated animate__pulse\'); }); } } // Carga contenido javascript desde el código en lugar de desde function loadJSFile(file){ var s = document.createElement("script"); s.type = "text/javascript"; s.src = file; document.body.appendChild(s); } // hasScrollBar (function($){$.fn.hasScrollBar=function(){var e=this.get(0);return{vertical:e.scrollHeight>e.clientHeight,horizontal:e.scrollWidth>e.clientWidth};};})(jQuery); // Base64 "use strict";jQuery.base64=(function($){var _PADCHAR="=",_ALPHA="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",_VERSION="1.0";function _getbyte64(s,i){var idx=_ALPHA.indexOf(s.charAt(i));if(idx===-1){throw"Cannot decode base64"}return idx}function _decode(s){var pads=0,i,b10,imax=s.length,x=[];s=String(s);if(imax===0){return s}if(imax%4!==0){throw"Cannot decode base64"}if(s.charAt(imax-1)===_PADCHAR){pads=1;if(s.charAt(imax-2)===_PADCHAR){pads=2}imax-=4}for(i=0;i<imax;i+=4){b10=(_getbyte64(s,i)<<18)|(_getbyte64(s,i+1)<<12)|(_getbyte64(s,i+2)<<6)|_getbyte64(s,i+3);x.push(String.fromCharCode(b10>>16,(b10>>8)&255,b10&255))}switch(pads){case 1:b10=(_getbyte64(s,i)<<18)|(_getbyte64(s,i+1)<<12)|(_getbyte64(s,i+2)<<6);x.push(String.fromCharCode(b10>>16,(b10>>8)&255));break;case 2:b10=(_getbyte64(s,i)<<18)|(_getbyte64(s,i+1)<<12);x.push(String.fromCharCode(b10>>16));break}return x.join("")}function _getbyte(s,i){var x=s.charCodeAt(i);if(x>255){throw"INVALID_CHARACTER_ERR: DOM Exception 5"}return x}function _encode(s){if(arguments.length!==1){throw"SyntaxError: exactly one argument required"}s=String(s);var i,b10,x=[],imax=s.length-s.length%3;if(s.length===0){return s}for(i=0;i<imax;i+=3){b10=(_getbyte(s,i)<<16)|(_getbyte(s,i+1)<<8)|_getbyte(s,i+2);x.push(_ALPHA.charAt(b10>>18));x.push(_ALPHA.charAt((b10>>12)&63));x.push(_ALPHA.charAt((b10>>6)&63));x.push(_ALPHA.charAt(b10&63))}switch(s.length-imax){case 1:b10=_getbyte(s,i)<<16;x.push(_ALPHA.charAt(b10>>18)+_ALPHA.charAt((b10>>12)&63)+_PADCHAR+_PADCHAR);break;case 2:b10=(_getbyte(s,i)<<16)|(_getbyte(s,i+1)<<8);x.push(_ALPHA.charAt(b10>>18)+_ALPHA.charAt((b10>>12)&63)+_ALPHA.charAt((b10>>6)&63)+_PADCHAR);break}return x.join("")}return{decode:_decode,encode:_encode,VERSION:_VERSION}}(jQuery)); // MD5 var MD5 = function(d){result = M(V(Y(X(d),8*d.length)));return result.toLowerCase()};function M(d){for(var _,m="0123456789ABCDEF",f="",r=0;r<d.length;r++)_=d.charCodeAt(r),f+=m.charAt(_>>>4&15)+m.charAt(15&_);return f}function X(d){for(var _=Array(d.length>>2),m=0;m<_.length;m++)_[m]=0;for(m=0;m<8*d.length;m+=8)_[m>>5]|=(255&d.charCodeAt(m/8))<<m%32;return _}function V(d){for(var _="",m=0;m<32*d.length;m+=8)_+=String.fromCharCode(d[m>>5]>>>m%32&255);return _}function Y(d,_){d[_>>5]|=128<<_%32,d[14+(_+64>>>9<<4)]=_;for(var m=1732584193,f=-271733879,r=-1732584194,i=271733878,n=0;n<d.length;n+=16){var h=m,t=f,g=r,e=i;f=md5_ii(f=md5_ii(f=md5_ii(f=md5_ii(f=md5_hh(f=md5_hh(f=md5_hh(f=md5_hh(f=md5_gg(f=md5_gg(f=md5_gg(f=md5_gg(f=md5_ff(f=md5_ff(f=md5_ff(f=md5_ff(f,r=md5_ff(r,i=md5_ff(i,m=md5_ff(m,f,r,i,d[n+0],7,-680876936),f,r,d[n+1],12,-389564586),m,f,d[n+2],17,606105819),i,m,d[n+3],22,-1044525330),r=md5_ff(r,i=md5_ff(i,m=md5_ff(m,f,r,i,d[n+4],7,-176418897),f,r,d[n+5],12,1200080426),m,f,d[n+6],17,-1473231341),i,m,d[n+7],22,-45705983),r=md5_ff(r,i=md5_ff(i,m=md5_ff(m,f,r,i,d[n+8],7,1770035416),f,r,d[n+9],12,-1958414417),m,f,d[n+10],17,-42063),i,m,d[n+11],22,-1990404162),r=md5_ff(r,i=md5_ff(i,m=md5_ff(m,f,r,i,d[n+12],7,1804603682),f,r,d[n+13],12,-40341101),m,f,d[n+14],17,-1502002290),i,m,d[n+15],22,1236535329),r=md5_gg(r,i=md5_gg(i,m=md5_gg(m,f,r,i,d[n+1],5,-165796510),f,r,d[n+6],9,-1069501632),m,f,d[n+11],14,643717713),i,m,d[n+0],20,-373897302),r=md5_gg(r,i=md5_gg(i,m=md5_gg(m,f,r,i,d[n+5],5,-701558691),f,r,d[n+10],9,38016083),m,f,d[n+15],14,-660478335),i,m,d[n+4],20,-405537848),r=md5_gg(r,i=md5_gg(i,m=md5_gg(m,f,r,i,d[n+9],5,568446438),f,r,d[n+14],9,-1019803690),m,f,d[n+3],14,-187363961),i,m,d[n+8],20,1163531501),r=md5_gg(r,i=md5_gg(i,m=md5_gg(m,f,r,i,d[n+13],5,-1444681467),f,r,d[n+2],9,-51403784),m,f,d[n+7],14,1735328473),i,m,d[n+12],20,-1926607734),r=md5_hh(r,i=md5_hh(i,m=md5_hh(m,f,r,i,d[n+5],4,-378558),f,r,d[n+8],11,-2022574463),m,f,d[n+11],16,1839030562),i,m,d[n+14],23,-35309556),r=md5_hh(r,i=md5_hh(i,m=md5_hh(m,f,r,i,d[n+1],4,-1530992060),f,r,d[n+4],11,1272893353),m,f,d[n+7],16,-155497632),i,m,d[n+10],23,-1094730640),r=md5_hh(r,i=md5_hh(i,m=md5_hh(m,f,r,i,d[n+13],4,681279174),f,r,d[n+0],11,-358537222),m,f,d[n+3],16,-722521979),i,m,d[n+6],23,76029189),r=md5_hh(r,i=md5_hh(i,m=md5_hh(m,f,r,i,d[n+9],4,-640364487),f,r,d[n+12],11,-421815835),m,f,d[n+15],16,530742520),i,m,d[n+2],23,-995338651),r=md5_ii(r,i=md5_ii(i,m=md5_ii(m,f,r,i,d[n+0],6,-198630844),f,r,d[n+7],10,1126891415),m,f,d[n+14],15,-1416354905),i,m,d[n+5],21,-57434055),r=md5_ii(r,i=md5_ii(i,m=md5_ii(m,f,r,i,d[n+12],6,1700485571),f,r,d[n+3],10,-1894986606),m,f,d[n+10],15,-1051523),i,m,d[n+1],21,-2054922799),r=md5_ii(r,i=md5_ii(i,m=md5_ii(m,f,r,i,d[n+8],6,1873313359),f,r,d[n+15],10,-30611744),m,f,d[n+6],15,-1560198380),i,m,d[n+13],21,1309151649),r=md5_ii(r,i=md5_ii(i,m=md5_ii(m,f,r,i,d[n+4],6,-145523070),f,r,d[n+11],10,-1120210379),m,f,d[n+2],15,718787259),i,m,d[n+9],21,-343485551),m=safe_add(m,h),f=safe_add(f,t),r=safe_add(r,g),i=safe_add(i,e)}return Array(m,f,r,i)}function md5_cmn(d,_,m,f,r,i){return safe_add(bit_rol(safe_add(safe_add(_,d),safe_add(f,i)),r),m)}function md5_ff(d,_,m,f,r,i,n){return md5_cmn(_&m|~_&f,d,_,r,i,n)}function md5_gg(d,_,m,f,r,i,n){return md5_cmn(_&f|m&~f,d,_,r,i,n)}function md5_hh(d,_,m,f,r,i,n){return md5_cmn(_^m^f,d,_,r,i,n)}function md5_ii(d,_,m,f,r,i,n){return md5_cmn(m^(_|~f),d,_,r,i,n)}function safe_add(d,_){var m=(65535&d)+(65535&_);return(d>>16)+(_>>16)+(m>>16)<<16|65535&m}function bit_rol(d,_){return d<<_|d>>>32-_} // ScrollTo $.fn.scrollTo=function(elem, speed){$(this).animate({scrollTop: $(this).scrollTop() - $(this).offset().top + $(elem).offset().top}, speed==undefined ? 1000 : speed); return this;}; // Ui Dialog (extension) $.ui.dialog.prototype.options.clickOut=!0,$.ui.dialog.prototype.options.responsive=!0,$.ui.dialog.prototype.options.scaleH=.8,$.ui.dialog.prototype.options.scaleW=.8,$.ui.dialog.prototype.options.showTitleBar=!0,$.ui.dialog.prototype.options.showCloseButton=!0;var _init=$.ui.dialog.prototype._init;$.ui.dialog.prototype._init=function(){_init.apply(this,arguments),$.ui&&$.ui.dialog&&$.ui.dialog.overlay&&($.ui.dialog.overlay.events=$.map("focus,keydown,keypress".split(","),function(o){return o+".dialog-overlay"}).join(" "))};var _open=$.ui.dialog.prototype.open;$.ui.dialog.prototype.open=function(){var o=this;_open.apply(this,arguments);var i=o.element.parent().outerHeight(),t=o.element.parent().outerWidth(),e=$("html").hasClass("touch"),s=function(){if(o.options.responsive===!0||"touch"===o.options.responsive&&e){var s=o.element,a=$(window).height(),n=$(window).width(),l=(s.parent().outerHeight(),s.parent().outerWidth(),Math.min(a*o.options.scaleH,i)),r=Math.min(n*o.options.scaleW,t);(i+100>a||s.hasClass("resizedH"))&&(s.dialog("option","height",l).parent().css("max-height",l),s.addClass("resizedH")),(t+100>n||s.hasClass("resizedW"))&&(s.dialog("option","width",r).parent().css("max-width",r),s.addClass("resizedW")),(s.hasClass("resizedH")||s.hasClass("resizedW"))&&(s.dialog("option","position","center"),s.css("overflow","auto"))}e&&s.css("-webkit-overflow-scrolling","touch")};s(),/*$(window).on("resize",s),*/o.element.on("dialogclose",function(){$(window).off("resize",s)}),window.addEventListener&&window.addEventListener("orientationchange",function(){s()}),o.options.showTitleBar||(o.uiDialogTitlebar.css({height:0,padding:0,background:"none",border:0}),o.uiDialogTitlebar.find(".ui-dialog-title").css("display","none")),o.options.showCloseButton||o.uiDialogTitlebar.find(".ui-dialog-titlebar-close").css("display","none"),o.options.clickOut&&!o.options.modal?($(\'\\x3Cdiv id="dialog-overlay">\\x3C/div>\').insertBefore(o.element.parent()),$("#dialog-overlay").css({position:"fixed",top:0,right:0,bottom:0,left:0,"background-color":"transparent"}),$("#dialog-overlay").click(function(i){i.preventDefault(),i.stopPropagation(),o.close()})):o.options.clickOut&&o.options.modal&&$(".ui-widget-overlay").click(function(i){o.close()})};var _close=$.ui.dialog.prototype.close;$.ui.dialog.prototype.close=function(){var o=this;_close.apply(this,arguments),o.options.dialogClass&&$(".ui-widget-overlay").removeClass(o.options.dialogClass),$("#dialog-overlay").length&&$("#dialog-overlay").remove()}; // jQuery.initialize (function($){"use strict";var combinators=[" ",">","+","~"];var fraternisers=["+","~"];var complexTypes=["ATTR","PSEUDO","ID","CLASS"];function grok(msobserver){if(!$.find.tokenize){msobserver.isCombinatorial=true;msobserver.isFraternal=true;msobserver.isComplex=true;return}msobserver.isCombinatorial=false;msobserver.isFraternal=false;msobserver.isComplex=false;var token=$.find.tokenize(msobserver.selector);for(var i=0;i<token.length;i++){for(var j=0;j<token[i].length;j++){if(combinators.indexOf(token[i][j].type)!=-1)msobserver.isCombinatorial=true;if(fraternisers.indexOf(token[i][j].type)!=-1)msobserver.isFraternal=true;if(complexTypes.indexOf(token[i][j].type)!=-1)msobserver.isComplex=true}}}var MutationSelectorObserver=function(selector,callback,options){this.selector=selector.trim();this.callback=callback;this.options=options;grok(this)};var msobservers=[];msobservers.initialize=function(selector,callback,options){var seen=[];var callbackOnce=function(){if(seen.indexOf(this)==-1){seen.push(this);$(this).each(callback)}};$(options.target).find(selector).each(callbackOnce);var msobserver=new MutationSelectorObserver(selector,callbackOnce,options);this.push(msobserver);var observer=new MutationObserver(function(mutations){var matches=[];for(var m=0;m<mutations.length;m++){if(mutations[m].type=="attributes"){if(mutations[m].target.matches(msobserver.selector))matches.push(mutations[m].target);if(msobserver.isFraternal)matches.push.apply(matches,mutations[m].target.parentElement.querySelectorAll(msobserver.selector));else matches.push.apply(matches,mutations[m].target.querySelectorAll(msobserver.selector))}if(mutations[m].type=="childList"){for(var n=0;n<mutations[m].addedNodes.length;n++){if(!(mutations[m].addedNodes[n]instanceof Element))continue;if(mutations[m].addedNodes[n].matches(msobserver.selector))matches.push(mutations[m].addedNodes[n]);if(msobserver.isFraternal)matches.push.apply(matches,mutations[m].addedNodes[n].parentElement.querySelectorAll(msobserver.selector));else matches.push.apply(matches,mutations[m].addedNodes[n].querySelectorAll(msobserver.selector))}}}for(var i=0;i<matches.length;i++)$(matches[i]).each(msobserver.callback)});var defaultObeserverOpts={childList:true,subtree:true,attributes:msobserver.isComplex};observer.observe(options.target,options.observer||defaultObeserverOpts);return observer};$.fn.initialize=function(callback,options){return msobservers.initialize(this.selector,callback,$.extend({},$.initialize.defaults,options))};$.initialize=function(selector,callback,options){return msobservers.initialize(selector,callback,$.extend({},$.initialize.defaults,options))};$.initialize.defaults={target:document.documentElement,observer:null}})(jQuery); /* Interface */ $(document).ready(function(){ update_icon = \'\\x3Ci class="fas fa-refresh fa-spin">\\x3C/i> \'; wait_icon = \'\\x3Ci class="fas fa-spinner fa-pulse">\\x3C/i> \'; // Click sobre un botón con una URL. $(\'body\').on(\'click\', "button.link, input[type=button].link, button[value]:not([value=\'\'])", function(e){ e.preventDefault(); if($(this).attr(\'value\') && (validURL($(this).attr(\'value\')) || validRelative($(this).attr(\'value\')))){ var url = $(this).attr(\'value\'); }else{ return; } // Agrega la clase de botón pulsado. $(this).addClass(\'pressed disabled\'); // Se comprueba si existe texto personalizado... var txt = $(this).attr(\'rel\'); // Activa el texto por defecto... if(txt === undefined){ var txt = txtSending; } // Recoge el contenido de la etiqueta button. var thisbtnprevHTML = $(this).html(); // Hace aparecer el texto \'Sending...\' acompañado de una animación // dentro de la etiqueta button. if(txt != \'\'){ $(this).html(wait_icon + txt); }else{ //var ttt = thisbtnprevHTML.replace(/\\s+<i>?.*<\\/i>|\\s+/i, ""); var ttt = thisbtnprevHTML.replace(/\\s+<i>?.*<\\/\\i>|\\s+/i, ""); $(this).html(wait_icon + ttt); } // Se comprueba si se debe abrir en una pestaña nueva o en la misma. if($(this).hasClass(\'_blank\')){ // Recupera el texto anterior sobre el botón. $(this).html(thisbtnprevHTML); // Redirige a la página indicada en una pestaña nueva... gotoURL(url, 1); }else{ // Inhabilita el botón. $(this).addClass(\'disabled\').prop(\'disabled\', true); // Redirige a la página indicada en la misma pestaña... gotoURL(url, 0); } return; }); // Activa el modo pulsado en botones. $("button, input[type=button], input[type=submit], .btn-danger, a.button").on("mousedown touchstart", function(e){ // Agrega la clase \'pressed\'. $(this).addClass("pressed"); }).on("mouseup mouseout touchend", function(e){ // Elimina la clase \'pressed\' únicamente si el botón no se encuentra // desactivado. if(typeof $(this).attr("disabled") === \'undefined\' && !$(this).hasClass("disabled")){ $(this).removeClass("pressed"); } }); // Deshabilita el menú contexto. $("a.button, button, input[type=button], input[type=submit], input[type=reset], .btn-danger").on("contextmenu", function(e){ e.preventDefault(); return false; }); // Enlaces // Comprueba si la ventana está arriba para sino mostrar el botón. $(window).scroll(function(){ if($(this).scrollTop() > 100){ $(\'.scrollToTop\').addClass(\'animate__animated animate__bounceInUp\').removeClass(\'animate__rubberBand animate__bounceOutDown\').fadeIn(); }else{ $(\'.scrollToTop\').addClass(\'animate__animated animate__bounceOutDown\').removeClass(\'animate__bounceInUp\').fadeOut(500); } }); // Click para scroll hacia arriba. $(\'.scrollToTop\').on(\'click\', function(){ $(\'html, body\').animate({scrollTop: 0}, 800); return false; }); // Suaviza el scroll cuando se dirige a una etiqueta. $(\'a[href^="#"], .target\').on(\'click\', function(e){ var target = this.hash; if(target === \'\'){ return true; } e.preventDefault(); var $target = $(target); $(target).removeClass(\'animate__animated animate__pulse\'); $(\'html, body\').stop().animate({ \'scrollTop\': $target.offset().top }, 900, \'swing\', function(){ $(target).addClass(\'animate__animated animate__pulse\'); window.location.hash = target; }); }); // Protege los emails. $(\'a.protectEmail\').on(\'click, focus, mouseover\', function(){ $(this).prop(\'href\', $(this).prop(\'href\').replace(\'@@\',\'.\')); }); // Abre el enlace seleccionado en un popUp. $(document).on(\'click\', \'[class*="open_in_"]\', function(e){ e.preventDefault(); var title = $(this).prop(\'title\'); var btnid = $(this).prop(\'id\'); if(title === undefined){ var title = \'\'; } var classList = $(this).prop(\'class\').split(/\\s+/); $.each(classList, function(index, item){ if((item + \'\').indexOf(\'open_in_\', 0) !== -1){ var mysplit = item.replace(\'open_in_\', \'\').split(\'-\'); if(mysplit[0].length > 0){ var type = mysplit[0]; }else{ var type = \'popup\'; } var btns_callback = []; if(mysplit[2] !== undefined && mysplit[2].length > 0){ $.each(mysplit, function(index2, i){ if(index2 < 2){ return true; } btns_callback.push(i); }); } // Crea el diálogo. return msgpopUp(title, \'\', mysplit[1], type, true, btnid, btns_callback); } }); }); // Evita que los procesos de formulario mediante AJAX sean procesados de // forma NORMAL en caso de errores graves en la sintaxis de jQuery. $(document).on(\'click\', \'.processByAjax > form button[type=submit]\', function(e){ return false; }); // Mensaje de confirmación. $(\'body\').on(\'click\', \'a[class="confirm"]\', function(e){ e.preventDefault(); // Se recogen los valores de los atributos del enlace. var id = $(this).attr(\'data-id\'); var link = $(this).attr(\'href\'); // Agrega el estilo \'forms.css\' loadFormsCSS(); // Se asignan los valores por defecto. var title = titlebak = "\\x3Ci class=\\"fas fa-question-circle fa-lg\\">\\x3C/i> " + txtQuestionTitle; var text = textbak = txtQuestionText; var buttonyes = buttonyesbak = txtQuestionYes; var buttonyesicon = buttonyesiconbak = ""; var buttonyesclass = buttonyesclassbak = "alert"; var buttonyespulsed = buttonyespulsedbak = txtSending; var buttonyescallback = buttonnocallback = ""; var buttonnopulsed = buttonnopulsedbak = txtSending; var buttonno = buttonnobak = txtQuestionNo; var buttonnoicon = buttonnoiconbak = ""; var buttonnoclass = buttonnoclassbak = "ok"; // Se comprueba si debemos crear un diálogo o utilizar uno. if(typeof id === \'undefined\' || id.length === 0 || $("#" + id).length === 0){ // Creamos un diálogo automáticamente. var id = "dialog_" + MD5(link); var i = 1; var titlebak = title; var textbak = text; var buttonyesbak = buttonyes; var buttonnobak = buttonno; // Se comprueba si el diálogo ya fue abierto. if($("#" + id).length === 0){ // Cuadro de confirmación. var confirm = \'\\x3Cdiv id="\' + id + \'" \' + \'class="msg_question animate__animated animate__shake" \' + \'style="display:none;z-index:999999999 !important;">\' + \'\\x3Ch1 class="msg_question_title">\' + title + \'\\x3C/h1>\' + \'\\x3Cp class="msg_question_text">\' + text + \'\\x3C/p>\' + \'\\x3C/div>\'; // Agrega el div. $(\'body\').append(confirm); } }else{ // Existe un diálogo a utilizar. var i = 0; // Recoge los valores iniciales. $("#" + id).css({"z-index": "999999999 !important", "display": "none"}); // Título. if(typeof $("#" + id + " > .msg_question_title") !== \'undefined\'){ var titlebak = $("#" + id + " > .msg_question_title").html(); } // Mensaje. if(typeof $("#" + id + " > .msg_question_text") !== \'undefined\'){ var textbak = $("#" + id + " > .msg_question_text").html(); } // Botón Sí personalizado y predefinido. if(typeof $("#" + id + " > .button-yes") !== \'undefined\'){ // Icono. if(typeof $("#" + id + " > .button-yes > i").attr("class") !== \'undefined\'){ var buttonyesiconbak = $("#" + id + " > .button-yes > i").attr("class"); var btyi = buttonyesiconbak.split(" "); if(typeof btyi[0] !== \'undefined\' && btyi[0] !== ""){ $("#" + id + " > .button-yes > ." + btyi[0]).remove(); } } // Valor. var buttonyesbak = $("#" + id + " > .button-yes").html(); // Clase. var bcy = $("#" + id + " > .button-yes").attr("class") .replace("button-yes", "").trim(); if(bcy.length !== 0){ var buttonyesclassbak = bcy; } // Modo pulsado. if(typeof $("#" + id + " > .button-yes").attr("data-pulsed") !== \'undefined\'){ var buttonyespulsedbak = $("#" + id + " > .button-yes").attr("data-pulsed"); } // Callback cuando se pulsa sobre el botón SI. if(typeof $("#" + id + " > .button-yes").attr("data-callback") !== \'undefined\'){ var buttonyescallback = $("#" + id + " > .button-yes").attr("data-callback"); } // Oculta el botón. $("#" + id + " > .button-yes").hide(); } // Botón NO personalizado y predefinido. if(typeof $("#" + id + " > .button-no") !== \'undefined\'){ // Icono. if(typeof $("#" + id + " > .button-no > i").attr("class") !== \'undefined\'){ var buttonnoiconbak = $("#" + id + " > .button-no > i").attr("class"); var btni = buttonnoiconbak.split(" "); if(typeof btni[0] !== \'undefined\' && btni[0] !== ""){ $("#" + id + " > .button-no > ." + btni[0]).remove(); } } // Valor. var buttonnobak = $("#" + id + " > .button-no").html(); // Clase. var bcn = $("#" + id + " > .button-no").attr("class") .replace("button-no", "").trim(); if(bcn.length !== 0){ var buttonnoclassbak = bcn; } // Modo pulsado. if(typeof $("#" + id + " > .button-no").attr("data-pulsed") !== \'undefined\'){ var buttonnopulsedbak = $("#" + id + " > .button-no").attr("data-pulsed"); } // Callback cuando se pulsa sobre el botón NO. if(typeof $("#" + id + " > .button-no").attr("data-callback") !== \'undefined\'){ var buttonnocallback = $("#" + id + " > .button-no").attr("data-callback"); } // Oculta el botón. $("#" + id + " > .button-no").hide(); } } // Se comprueba si se ha fijado un título en el atributo del enlace. if(typeof $(this).attr("data-title") !== \'undefined\'){ // Valor especificado en atributo. $("#" + id + " > .msg_question_title").html($(this).attr("data-title")); // Se trata de un cuadro de diálogo pero no hay valor. }else if(i === 0 && titlebak === 0){ // Valor por defecto en cuadro de diálogo personalizado. $("#" + id + " > .msg_question_title").html(title); } // Se comprueba si se ha fijado un título en el atributo del enlace. if(typeof $(this).attr("data-text") !== \'undefined\'){ // Valor especificado en atributo. $("#" + id + " > .msg_question_text").html($(this).attr("data-text")); // Se trata de un cuadro de diálogo pero no hay valor. }else if(i === 0 && textbak === 0){ // Valor por defecto en cuadro de diálogo personalizado. $("#" + id + " > .msg_question_text").html(text); } // Botón: Sí. if(typeof $(this).attr("data-button-yes") !== \'undefined\'){ var buttonyes = $(this).attr("data-button-yes"); }else if(i === 0 && buttonyesbak.length !== 0){ var buttonyes = buttonyesbak; } // Botón Sí: class. if(typeof $(this).attr("data-button-yes-class") !== \'undefined\'){ var buttonyesclass = $(this).attr("data-button-yes-class"); }else if(i === 0 && buttonyesclassbak.length !== 0){ var buttonyesclass = buttonyesclassbak; } // Botón Sí: icon. if(typeof $(this).attr("data-button-yes-icon") !== \'undefined\'){ var buttonyesicon = $(this).attr("data-button-yes-icon"); }else if(i === 0 && buttonyesiconbak.length !== 0){ var buttonyesicon = buttonyesiconbak; } // Botón Sí: pulsed if(typeof $(this).attr("data-button-yes-pulsed") !== \'undefined\'){ var buttonyespulsed = $(this).attr("data-button-yes-pulsed"); }else if(i === 0 && buttonyespulsedbak.length !== 0){ var buttonyespulsed = buttonyespulsedbak; } // Callback en botón Sí mediante atributo. if(typeof $(this).attr("data-button-yes-callback") !== \'undefined\'){ var cbyesnow = $(this).attr("data-button-yes-callback"); // Callback general en cuadro de diálogo personalizado. }else if(i === 0 && buttonyescallback.length !== 0){ var cbyesnow = buttonyescallback; } // Botón: No. if(typeof $(this).attr("data-button-no") !== \'undefined\'){ var buttonno = $(this).attr("data-button-no"); }else if(i === 0 && buttonnobak.length !== 0){ var buttonno = buttonnobak; } // Botón No: class. if(typeof $(this).attr("data-button-no-class") !== \'undefined\'){ var buttonnoclass = $(this).attr("data-button-no-class"); }else if(i === 0 && buttonnoclassbak.length !== 0){ var buttonnoclass = buttonnoclassbak; } // Botón No: icon. if(typeof $(this).attr("data-button-no-icon") !== \'undefined\'){ var buttonnoicon = $(this).attr("data-button-no-icon"); }else if(i === 0 && buttonnoiconbak.length !== 0){ var buttonnoicon = buttonnoiconbak; } // Botón No: pulsed if(typeof $(this).attr("data-button-no-pulsed") !== \'undefined\'){ var buttonnopulsed = $(this).attr("data-button-no-pulsed"); }else if(i === 0 && buttonnopulsedbak.length !== 0){ var buttonnopulsed = buttonnopulsedbak; } // Callback en botón No mediante atributo. if(typeof $(this).attr("data-button-no-callback") !== \'undefined\'){ var cbnonow = $(this).attr("data-button-no-callback"); // Callback general en cuadro de diálogo personalizado. }else if(i === 0 && buttonnocallback.length !== 0){ var cbnonow = buttonnocallback; } // ¿Se trata de un proceso AJAX?. if(typeof $(this).attr("data-ajax") !== \'undefined\' || (i === 0 && $("#" + id + "").attr("data-ajax") == \'1\')){ var dataajax = 1; }else{ var dataajax = 0; } // Espera unos milisegundos antes de mostrar en caso necesario. setTimeout(() => { // Abre el cuadro de diálogo. $("#" + id).dialog({ dialogClass:"animate__animated animate__fadeIn msg_question", title:title, width:"auto", maxWidth:600, height:"auto", minheight:"auto", modal:true, clickOut:false, responsive:true, autoOpen:true, autoResize:true, cache:false, showTitleBar:false, showCloseButton:false, position:{my: "center", at: "center", of: window}, resizable:false, // Antes de cerrar. beforeClose:function(){ //$(\'#\' + id).parent().addClass("animate__fadeOut"); // Devuelve todo a su estado original. $("#" + id + " > .msg_question_title").html(titlebak); $("#" + id + " > .msg_question_text").html(textbak); // Icono del botón: Sí. if(i === 0 && buttonyesclassbak.length !== 0){ $("#" + id + " > .button-yes").prepend(\'\\x3Ci class="\' + buttonyesiconbak + \'">\\x3C/i> \'); } // Icono del botón: No. if(i === 0 && buttonnoclassbak.length !== 0){ $("#" + id + " > .button-no").prepend(\'\\x3Ci class="\' + buttonnoiconbak + \'">\\x3C/i> \'); } }, // Al abrir. open: function(){ if(buttonyesicon !== \'\'){ buttonyesicon = \'\\x3Ci class="\' + buttonyesicon + \'">\\x3C/i> \'; } $("." + id + "_btn_1").button("option", "label", buttonyesicon + buttonyes); if(buttonnoicon !== \'\'){ buttonnoicon = \'\\x3Ci class="\' + buttonnoicon + \'">\\x3C/i> \'; } $("." + id + "_btn_2").button("option", "label", buttonnoicon + buttonno); // Activa el modo pulsado en botones. $("button, input[type=button], input[type=submit], .btn-danger, a.button").on("mousedown touchstart", function(e){ $(this).addClass("pressed"); // Desactiva el modo pulsado en botones. }).on("mouseup mouseout touchend", function(e){ // Elimina la clase \'pressed\' únicamente si el botón no se encuentra desactivado. if(typeof $(this).attr("disabled") === \'undefined\' && !$(this).hasClass("disabled")){ $(this).removeClass("pressed"); } }); // Deshabilita el menú contexto. $("a.button, button, input[type=button], input[type=submit], input[type=reset], .btn-danger").on("contextmenu", function(e){ e.preventDefault(); return false; }); }, buttons: [ { // Botón Sí. html: buttonyes, class: id + "_btn_1 " + buttonyesclass, click: function(e){ e.preventDefault(); // Muestra : Cargando o similar. $("." + id + "_btn_1").prop("disabled", true).html("\\x3Ci class=\\"fas fa-fw fa-spinner fa-pulse\\">\\x3C/i>" + buttonyespulsed); // ¿Existe un proceso callback para el botón: Sí. if(typeof cbyesnow !== \'undefined\'){ // Proceso callback. runJS(cbyesnow); // Se comprueba si existe una URL. }else if(link.length !== 0){ // Proceso normal. if(dataajax === 0){ // Redirige hacia la URL. setTimeout(() => { $(\'body\').css("cursor", "wait"); window.location = link; }, 0); }else{ // Proceso AJAX. $.ajax({ url: link, //type: form.prop(\'method\'), // POST o GET //data: data, cache: false, dataType: \'html\', beforeSend: function(){} // Se ejecuta siempre. }).always(function(obj){ // Proceso callback. if(typeof cbyesnow !== \'undefined\'){ runJS(cbyesnow); } // Cierra el diálogo. $("#" + id).dialog("close"); // El proceso ha concluido. }).done(function(obj, textStatus, infoStatus){ // Mensaje del resultado del proceso // en la consola javascript. if(typeof web_debug !== \'undefined\' && web_debug != 0){ console.log(txtOkTitle + \': \' + textStatus, infoStatus); } // El proceso ha fallado. }).fail(function(jqXHR, textStatus, infoStatus){ // Mensaje del resultado del proceso // en la consola javascript. if(typeof web_debug !== \'undefined\' && web_debug != 0){ console.log(txtErrorTitle + \': \' + textStatus, infoStatus); // Con mensaje para modo desarrollo. msgErrorpopUp(txtErrorTitle, txtErrorText + \'\\x3Cbr />\\x3Ch2>\' + txtOnlyDev + \'\\x3C/h2>\' + textStatus); }else{ // Muestra un mensaje de error // general. msgErrorpopUp(); } }); } } } }, { // Botón: No. html: buttonno, class: id + "_btn_2 " + buttonnoclass, click: function(e){ e.preventDefault(); // Muestra : Cargando o similar. $("." + id + "_btn_2").prop("disabled", true).html("\\x3Ci class=\\"fas fa-fw fa-spinner fa-pulse\\">\\x3C/i>" + buttonnopulsed); // ¿Existe un proceso callback para el botón: No. if(typeof cbnonow !== \'undefined\'){ // Proceso callback. runJS(cbnonow); } // Cierra el diálogo. $("#" + id).dialog("close"); } } ] });}, 0); }); // Mensaje de confirmación con múltiples opciones. $(document).on(\'click\', \'a[class="confirm_options"]\', function(e){ e.preventDefault(); // Se recogen los valores de los atributos del enlace. var idlink = $(this); var id = $(this).attr(\'data-id\'); var link = $(this).attr(\'href\'); // Agrega el estilo \'forms.css\' loadFormsCSS(); // Se asignan los valores por defecto. var title = titlebak = "\\x3Ci class=\\"fas fa-question-circle fa-lg\\">\\x3C/i> " + txtQuestionTitle; var text = textbak = txtQuestionText; // Se comprueba si debemos crear un diálogo o utilizar uno. if(typeof id === \'undefined\' || id.length === 0 || $("#" + id).length === 0){ // Creamos un diálogo automáticamente. var id = "dialog_" + MD5(link); var i = 1; // Se comprueba si el diálogo ya fue abierto. if($("#" + id).length === 0){ // Cuadro de confirmación. var confirm = \'\\x3Cdiv id="\' + id + \'" \' + \'class="msg_question animate__animated animate__shake" \' + \'style="display:none;z-index:999999999 !important;">\' + \'\\x3Ch1 class="msg_question_title">\' + title + \'\\x3C/h1>\' + \'\\x3Cp class="msg_question_text">\' + text + \'\\x3C/p>\' + \'\\x3C/div>\'; // Agrega el div. $(\'body\').append(confirm); } }else{ // Existe un diálogo a utilizar. var i = 0; // Recoge los valores iniciales. $("#" + id).css({"z-index": "999999999 !important", "display": "none"}); var cont = 0; var mybuttons = []; // Examina todos los botones agregados. $("#" + id + " > button").each(function(e){ // Nombre del botón. var name = $(this).attr("id"); // Oculta el botón. $(this).hide(); // Este botón no tiene identificador. if(name === ""){ return; } // Texto. if(typeof idlink.attr("data-" + name + "-text") !== "undefined" && idlink.attr("data-" + name + "-text") !== ""){ var texto = idlink.attr("data-" + name + "-text"); }else if(typeof $(this).attr("data-text") !== "undefined" && $(this).attr("data-text")){ var texto = $(this).attr("data-text"); }else{ var texto = $(this).html(); } // Icono if(typeof idlink.attr("data-" + name + "-icon") !== "undefined" && idlink.attr("data-" + name + "-icon") !== ""){ var icono = \'\\x3Ci class="\' + idlink.attr("data-" + name + "-icon") + \'">\\x3C/i> \'; }else if(typeof $(this).attr("data-icon") !== "undefined" && $(this).attr("data-icon") !== ""){ var icono = \'\\x3Ci class="\' + $(this).attr("data-icon") + \'">\\x3C/i> \'; }else{ var icono = ""; } // En caso de que no exista texto. if(texto === "" && icono === ""){ return; } // Sirve para mostrar icono y texto juntos. $(this).attr("data-icontext", icono + texto); // Contador. cont++; // Clase var mainclase = id + "_btn_" + cont; if(typeof idlink.attr("data-" + name + "-class") !== "undefined" && idlink.attr("data-" + name + "-class") !== ""){ var clase = mainclase + " " + idlink.attr("data-" + name + "-class"); }else if(typeof $(this).attr("data-class") !== "undefined" && $(this).attr("data-class") !== ""){ var clase = mainclase + " " + $(this).attr("data-class"); }else if(typeof $(this).attr("class") !== "undefined" && $(this).attr("class") !== ""){ var clase = mainclase + " " + $(this).attr("class"); }else{ var clase = mainclase; } $(this).attr("data-id", id + "_btn_" + cont); // Pulsado. if(typeof idlink.attr("data-" + name + "-pulsed") !== "undefined" && idlink.attr("data-" + name + "-pulsed") !== ""){ var pulsado = idlink.attr("data-" + name + "-pulsed"); }else if(typeof $(this).attr("data-pulsed") !== "undefined" && $(this).attr("data-pulsed") !== ""){ var pulsado = $(this).attr("data-pulsed"); }else{ var pulsado = ""; } // Callback. if(typeof idlink.attr("data-" + name + "-callback") !== "undefined" && idlink.attr("data-" + name + "-callback") !== ""){ var callback = idlink.attr("data-" + name + "-callback"); }else if(typeof $(this).attr("data-callback") !== "undefined" && $(this).attr("data-callback") !== ""){ var callback = $(this).attr("data-callback"); }else{ var callback = ""; } mybuttons.push({ html: texto, class: clase, click: function(e){ e.preventDefault(); // Muestra : Cargando o similar. $("." + mainclase).prop("disabled", true).html("\\x3Ci class=\\"fas fa-fw fa-spinner fa-pulse\\">\\x3C/i>" + pulsado); // ¿Existe un proceso callback para el botón: Sí. if(typeof callback !== \'undefined\'){ // Proceso callback. runJS(callback); // Se comprueba si existe una URL. }else if(link.length !== 0){ // Proceso normal. if(dataajax === 0){ // Redirige hacia la URL. setTimeout(() => { $(\'body\').css("cursor", "wait"); window.location = link; }, 0); }else{ // Proceso AJAX. $.ajax({ url: link, //type: form.prop(\'method\'), // POST o GET //data: data, cache: false, dataType: \'html\', beforeSend: function(){} // Se ejecuta siempre. }).always(function(obj){ // Proceso callback. if(typeof callback !== \'undefined\'){ runJS(callback); } // Cierra el diálogo. $("#" + id).dialog("close"); // El proceso ha concluido. }).done(function(obj, textStatus, infoStatus){ // Mensaje del resultado del proceso // en la consola javascript. if(typeof web_debug !== \'undefined\' && web_debug != 0){ console.log(txtOkTitle + \': \' + textStatus, infoStatus); } // El proceso ha fallado. }).fail(function(jqXHR, textStatus, infoStatus){ // Mensaje del resultado del proceso // en la consola javascript. if(typeof web_debug !== \'undefined\' && web_debug != 0){ console.log(txtErrorTitle + \': \' + textStatus, infoStatus); // Con mensaje para modo desarrollo. msgErrorpopUp(txtErrorTitle, txtErrorText + \'\\x3Cbr />\\x3Ch2>\' + txtOnlyDev + \'\\x3C/h2>\' + textStatus); }else{ // Muestra un mensaje de error // general. msgErrorpopUp(); } }); } } } }); }); } // Se comprueba si se ha fijado un título en el atributo del enlace. if(typeof $(this).attr("data-title") !== \'undefined\'){ // Valor especificado en atributo. $("#" + id + " > .msg_question_title").html($(this).attr("data-title")); } // Se comprueba si se ha fijado un título en el atributo del enlace. if(typeof $(this).attr("data-text") !== \'undefined\'){ // Valor especificado en atributo. $("#" + id + " > .msg_question_text").html($(this).attr("data-text")); } // ¿Se trata de un proceso AJAX?. if(typeof $(this).attr("data-ajax") !== \'undefined\' || (i === 0 && $("#" + id + "").attr("data-ajax") == \'1\')){ var dataajax = 1; }else{ var dataajax = 0; } // Espera unos milisegundos antes de mostrar en caso necesario. setTimeout(() => { // Abre el cuadro de diálogo. $("#" + id).dialog({ dialogClass:"animate__animated animate__fadeIn msg_question", title:title, width:"auto", maxWidth:600, height:"auto", minheight:"auto", modal:true, clickOut:false, responsive:true, autoOpen:true, autoResize:true, cache:false, showTitleBar:false, showCloseButton:false, position:{my: "center", at: "center", of: window}, resizable:false, // Antes de cerrar. beforeClose:function(){ $(\'#\' + id).parent().addClass("animate__fadeOut"); }, // Al abrir. open: function(){ // Recorre todos los botones para añadirle los iconos. for(i = 0; i <= cont; i++){ $("." + id + "_btn_" + i).button("option", "label", $("#" + id + " > button[data-id|=\'" + id + "_btn_" + i + "\']").attr("data-icontext")); } // Activa el modo pulsado en botones. $("button, input[type=button], input[type=submit], .btn-danger, a.button").on("mousedown touchstart", function(e){ $(this).addClass("pressed"); // Desactiva el modo pulsado en botones. }).on("mouseup mouseout touchend", function(e){ // Elimina la clase \'pressed\' únicamente si el botón no se encuentra // desactivado. if(typeof $(this).attr("disabled") === \'undefined\' && !$(this).hasClass("disabled")){ $(this).removeClass("pressed"); } }); // Deshabilita el menú contexto. $("a.button, button, input[type=button], input[type=submit], input[type=reset], .btn-danger").on("contextmenu", function(e){ e.preventDefault(); return false; }); }, // Botones. buttons: mybuttons });}, 200); }); // Abre el enlace seleccionado en un popUp mediante AJAX. // Se utiliza fundamentalmente para abrir páginas en popups. //$(\'a[class^="popup_"]\').on(\'click\', function(e){ popup_page = []; $(\'body\').on(\'click\', \'a[class^="popup_"]\', function(e){ e.preventDefault(); var idclass = $(this).prop(\'class\'); var id = idclass.replace(\'popup_\', \'\'); // Se comprueba si el popUp rkpopup ya fue abierto. if($(".rk" + idclass).length != 0){ // Nombre de la función. var rkid = $(".rk" + idclass).parent().attr("id"); var of = "openPopUp_" + rkid; // Reabre el popUp. window[of](); // Se devuelve verdadero. return true; // Se comprueba si el cuadro de diálogo tipo 1 ya fue abierto. }else if(popup_page[id]){ // Se comprueba si pide ser recargado. if(popup_page[id][0].destroyOnClose !== true){ // Vuelve a mostrar el popUp que ya fue abierto. $(\'#\' + popup_page[id][0].id).dialog(\'open\').animate({scrollTop: 0 }, 0); // Se devuelve verdadero. return true; }else{ // Se destruye el anterior. $(\'#\' + popup_page[id][0].id).dialog(\'destroy\').remove(); } } // Agrega el estilo \'forms.css\' loadFormsCSS(); var values = {}; values.ajax = \'popups\'; values._ajax = id; values._ajaxjsfl = js_files_loaded; values._ajaxcssfl = css_files_loaded; setTimeout(() => { var request = $.ajax({ url: \'\', type: \'post\', data: values, cache: false, dataType: \'html\', // Antes de cargar. beforeSend: function(data){ // Elimina la capa de loading ajax. $(\'.loading_ajax\').remove(); // Crea la capa de loading ajax. $(\'body\').prepend(divLoading); // Hace aparecer la capa de loading ajax. setTimeout(() => { $(\'.loading_ajax\').fadeIn(); }, 300); } // Siempre que se procesa. }).always(function(result, textStatus, infoStatus){ // Elimina la capa de loading ajax. $(\'.loading_ajax\').remove(); if(result != \'\'){ // Se comprueba si se ha devuelto contenido JSON. if(result.substr(0, 1) === \'{\'){ // Se ha devuelto contenido JSON. var obj = JSON.parse(result); }else{ // No se ha devuelto contenido JSON. var obj = \'\'; } }else{ // Se ha devuelto vacío. var obj = \'\'; } // Mensaje del resultado del proceso en la consola javascript. if(typeof web_debug !== \'undefined\' && web_debug != 0){ console.log(txtOkTitle + \': \' + textStatus, infoStatus); } // Pide redirigir a una URL. if(typeof obj.url !== "undefined" && obj.url !== \'\'){ $(\'body\').css("cursor", "wait"); setTimeout(() => { window.location = obj.url; }, 0); }else if(obj.ok === 1){ // Reemplazar el contenido. if(typeof obj.replace !== \'undefined\'){ // Reemplaza el contenido actual. $(\'body\').html($.parseHTML(decodeURI(obj.html))); // Agregar antes del contenido actual. }else if(typeof obj.prepend !== \'undefined\'){ // Agrega antes del contenido actual. if(typeof obj.id !== \'undefined\' || $(".rk_popup_area").length == 0){ // Rkpopup y UIdialog $(\'body\').prepend(obj.html); }else{ // Solo. RKPopup $(".rk_popup_area:last").after(obj.html); } }else{ if(typeof obj.id !== \'undefined\'){ // Solo UIDialog. $(\'body\').append(obj.html); }else{ // RKPopup. Agrega después del contenido actual. $(obj.html).appendTo(".rk_popup_area"); } } // Se comprueba si existe algún script. if(obj.js !== \'\' && (typeof obj.js !== \'undefined\')){ runJS(obj.js); } // Recoge el ID del popUp generado para evitar volver a // generarlo. popup_page[id] = [{ id: obj.id, // Para saber si se debe destruir antes de crear. destroyOnClose: obj.destroyOnClose }]; $(\'#\' + obj.id).animate({scrollTop: 0 }, 0); }else{ // El popUp no ha sido creado. if(obj.js !== \'\' && (typeof obj.js !== \'undefined\')){ runJS(obj.js); }else{ // Mensaje del resultado del proceso en la consola javascript. if(typeof web_debug !== \'undefined\' && web_debug != 0 && obj.error !== \'\' && (typeof obj.error !== \'undefined\')){ // Mensaje para consola. console.log(txtErrorTitle + \': \' + obj.error); // Con mensaje para modo desarrollo. msgErrorpopUp(txtErrorTitle, txtErrorText + \'\\x3Cbr />\\x3Ch2>\' + txtOnlyDev + \'\\x3C/h2>\' + obj.error); }else{ // Mensaje de error general al usuario. msgErrorpopUp(); } } } // El proceso ha fallado. }).fail(function(jqXHR, textStatus, infoStatus){ // Mensaje del resultado del proceso en la consola javascript. if(typeof web_debug !== \'undefined\' && web_debug != 0){ // Mensaje para la consola. console.log(txtErrorTitle + \': \' + textStatus, infoStatus); // Con mensaje para modo desarrollo. msgErrorpopUp(txtErrorTitle, txtErrorText + \'\\x3Cbr />\\x3Ch2>\' + txtOnlyDev + \'\\x3C/h2>\' + textStatus); }else{ // Muestra un mensaje de error al usuario. msgErrorpopUp(); } // El proceso ha concluído con éxito. }).done(function(jqXHR, textStatus, infoStatus){ // Activa el modo pulsado en botones. $("button, input[type=button], input[type=submit], .btn-danger, a.button").on("mousedown touchstart", function(e){ $(this).addClass("pressed"); // Desactiva el modo pulsado en botones. }).on("mouseup mouseout touchend", function(e){ // Elimina la clase \'pressed\' únicamente si el botón no se encuentra desactivado. if(typeof $(this).attr("disabled") === \'undefined\' && !$(this).hasClass("disabled")){ $(this).removeClass("pressed"); } }); // Deshabilita el menú contexto. $("a.button, button, input[type=button], input[type=submit], input[type=reset], .btn-danger").on("contextmenu", function(e){ e.preventDefault(); return false; }); }); }, 0); }); // Abre el enlace seleccionado en una ventana nueva. $(\'a[class="blank"]\').on(\'click\', function(e){ e.preventDefault(); window.open($(this).attr(\'href\')); }); // Enlaces // Selecciona todos los botones con el atributo data-goto y añade un // evento de clic. document.querySelectorAll(\'[data-goto]\').forEach(button => { button.addEventListener(\'click\', function(e){ gotoURL(this.getAttribute(\'data-goto\'), 0); }); }); // Tooltips para elementos. $(document).tooltip({ items: "[data-msginfo], [data-msgquestion], [data-msgwarning], [data-msgerror], [data-msgok]", track: true, close: function (e, o) { }, content: function(e, o){ var element = $(this); if(element.is("[data-msginfo]")){ var mycont = element.attr("data-msginfo"); var icon = \'fa-info-circle\'; var myclass = \'ui-tooltip_info\'; }else if(element.is("[data-msgquestion]")){ var mycont = element.attr("data-msgquestion"); var icon = \'fa-question-circle\'; var myclass = \'ui-tooltip_question\'; }else if(element.is("[data-msgwarning]")){ var mycont = element.attr("data-msgwarning"); var icon = \'fa-exclamation-triangle\'; var myclass = \'ui-tooltip_warning\'; }else if(element.is("[data-msgerror]")){ var mycont = element.attr("data-msgerror"); var icon = \'fa-times-circle\'; var myclass = \'ui-tooltip_error\'; }else if(element.is("[data-msgok]")){ var mycont = element.attr("data-msgok"); var icon = \'fa-check-circle\'; var myclass = \'ui-tooltip_ok\'; } if(mycont === \'\'){ return false; } return \'\\x3Cdiv class="\' + myclass + \'">\\x3Ci class="fas \' + icon + \'">\\x3C/i> \' + mycont + \'\\x3C/div>\'; } }); // Parpadeo de elementos. $(\'.blink\').fadeIn(500).delay(250).fadeOut(500).fadeIn(500); function blink_text() { $(\'.blink\').fadeOut(500); $(\'.blink\').fadeIn(500); } setInterval(blink_text, 1000); }); ', array ( 0 => './extensions/js/interface.js', ), 'as_content', 'head', 0, 0, 0, 0, 1, 0, '|page_1', 'page'); | Línea: 4089 | Archivo: /var/www/clients/client57/web318/web/system/interface/js.php | Tiempo tomado: 0.7 segundos (0.694) ]

Gestionando contenido Javascript (js::is_exist)


Se detectó a través del método: "js::is_exist", que el archivo CSS: "./extensions/js/alt/jquery.loading-bar.js" ya había sido agregado con anterioridad.
[ Nivel: 7 | Función: js::is_exist('./extensions/js/alt/jquery.loading-bar.js', 1); | Línea: 3399 | Archivo: /var/www/clients/client57/web318/web/system/interface/js.php | Tiempo tomado: 0.7 segundos (0.694) ]

Gestionando contenido Javascript (js::is_exist)


Se detectó a través del método: "js::is_exist", que el archivo CSS: "https://cdn.jsdelivr.net/npm/locomotive-scroll@beta/bundled/locomotive-scroll.min.js" ya había sido agregado con anterioridad.
[ Nivel: 7 | Función: js::is_exist('https://cdn.jsdelivr.net/npm/locomotive-scroll@beta/bundled/locomotive-scroll.min.js', 0); | Línea: 3286 | Archivo: /var/www/clients/client57/web318/web/system/interface/js.php | Tiempo tomado: 0.7 segundos (0.694) ]

Gestionando contenido Javascript (js::_addJS)


Se ha añadido un nuevo archivo (locomotive-scroll.min.js) javascript ( a través de la ruta remota: "https://cdn.jsdelivr.net/npm/locomotive-scroll@beta/bundled/locomotive-scroll.min.js") entre las etiquetas: "<body>" y "</body>" de la página: "Inicio (1)" a través del método: "js::_addJS".
[ Nivel: 7 | Función: js::_addJS('<script src="https://cdn.jsdelivr.net/npm/locomotive-scroll@beta/bundled/locomotive-scroll.min.js"></script> ', array ( 0 => 'locomotive-scroll.min.js', ), 'as_file', 'body', 1, 1, 0, 1, 1, 0, '|page_1', 'page'); | Línea: 4089 | Archivo: /var/www/clients/client57/web318/web/system/interface/js.php | Tiempo tomado: 0.7 segundos (0.694) ]

Gestionando contenido Javascript (js::is_exist)


Se detectó a través del método: "js::is_exist", que el archivo CSS: "3366348008" ya había sido agregado con anterioridad.
[ Nivel: 7 | Función: js::is_exist(3366348008, 1); | Línea: 3348 | Archivo: /var/www/clients/client57/web318/web/system/interface/js.php | Tiempo tomado: 0.7 segundos (0.694) ]

Gestionando contenido Javascript (js::_addJS)


Se ha añadido un nuevo contenido javascript (en una ruta local) entre las etiquetas: "<body>" y "</body>" de la página: "Inicio (1)" a través del método: "js::_addJS".
[ Nivel: 7 | Función: js::_addJS(' // Asegúrate de que DOM esté completamente cargado document.addEventListener("DOMContentLoaded", function () { const scroll = new LocomotiveScroll({ //el: document.querySelector("[data-scroll-container]"), lenisOptions: { wrapper: window, content: document.documentElement, lerp: 0.1, duration: 1.2, orientation: \'vertical\', gestureOrientation: \'vertical\', smoothWheel: true, smoothTouch: false, wheelMultiplier: 1, touchMultiplier: 2, normalizeWheel: true, easing: (t) => Math.min(1, 1.001 - Math.pow(2, -10 * t)), } }); }); ', array ( 0 => 3366348008, ), 'as_content', 'body', 1, 0, 1, 0, 1, 0, '|page_1', 'page'); | Línea: 3360 | Archivo: /var/www/clients/client57/web318/web/system/interface/js.php | Tiempo tomado: 0.7 segundos (0.694) ]

Gestionando contenido CSS (css::is_exist)


Se detectó a través del método: "css::is_exist", que el archivo CSS: "//cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.1/css/all.min.css" ya había sido agregado con anterioridad.
[ Nivel: 7 | Función: css::is_exist('//cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.1/css/all.min.css'); | Línea: 1558 | Archivo: /var/www/clients/client57/web318/web/system/interface/css.php | Tiempo tomado: 0.7 segundos (0.695) ]

Gestionando contenido CSS (css::_addCSS)


Se ha añadido un nuevo archivo CSS entre las etiquetas: "<head>" y "</head>" de la página: "Inicio (1)" a través del método: "css::_addCSS".
[ Nivel: 7 | Función: css::_addCSS('<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.1/css/all.min.css" /> ', array ( 0 => 'all.min.css', ), 'as_file', 'head', 1, 1, 0, 1); | Línea: 1811 | Archivo: /var/www/clients/client57/web318/web/system/interface/css.php | Tiempo tomado: 0.7 segundos (0.695) ]

Gestionando contenido CSS (css::is_exist)


Se detectó a través del método: "css::is_exist", que el archivo CSS: "https://cdn.jsdelivr.net/npm/locomotive-scroll@beta/bundled/locomotive-scroll.css" ya había sido agregado con anterioridad.
[ Nivel: 7 | Función: css::is_exist('https://cdn.jsdelivr.net/npm/locomotive-scroll@beta/bundled/locomotive-scroll.css'); | Línea: 1558 | Archivo: /var/www/clients/client57/web318/web/system/interface/css.php | Tiempo tomado: 0.7 segundos (0.695) ]

Gestionando contenido CSS (css::is_exist)


Se detectó a través del método: "css::is_exist", que el archivo CSS: "https://fonts.googleapis.com/css?family=Poppins:400,400i,600,500,700" ya había sido agregado con anterioridad.
[ Nivel: 7 | Función: css::is_exist('https://fonts.googleapis.com/css?family=Poppins:400,400i,600,500,700'); | Línea: 1558 | Archivo: /var/www/clients/client57/web318/web/system/interface/css.php | Tiempo tomado: 0.7 segundos (0.695) ]

Gestionando contenido CSS (css::is_exist)


Se detectó a través del método: "css::is_exist", que el archivo CSS: "//cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.min.css" ya había sido agregado con anterioridad.
[ Nivel: 7 | Función: css::is_exist('//cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.min.css'); | Línea: 1558 | Archivo: /var/www/clients/client57/web318/web/system/interface/css.php | Tiempo tomado: 0.7 segundos (0.695) ]

Gestionando contenido CSS (css::is_exist)


Se detectó a través del método: "css::is_exist", que el archivo CSS: "./config/layouts/default/css/alt/jquery-ui.min.css" ya había sido agregado con anterioridad.
[ Nivel: 7 | Función: css::is_exist('./config/layouts/default/css/alt/jquery-ui.min.css'); | Línea: 1558 | Archivo: /var/www/clients/client57/web318/web/system/interface/css.php | Tiempo tomado: 0.7 segundos (0.695) ]

Gestionando contenido CSS (css::is_exist)


Se detectó a través del método: "css::is_exist", que el archivo CSS: "./config/layouts/default/css/main.css" ya había sido agregado con anterioridad.
[ Nivel: 7 | Función: css::is_exist('./config/layouts/default/css/main.css'); | Línea: 1453 | Archivo: /var/www/clients/client57/web318/web/system/interface/css.php | Tiempo tomado: 0.7 segundos (0.695) ]

Gestionando contenido CSS (css::_addCSS)


Se ha añadido un nuevo contenido CSS entre las etiquetas: "<head>" y "</head>" de la página: "Inicio (1)" a través del método: "css::_addCSS".
[ Nivel: 7 | Función: css::_addCSS('html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { margin: 0; padding: 0; font-size: 100%; font: inherit; vertical-align: baseline; } html{scroll-behavior: smooth;} /* Diseño general */ /* custom */ main { width: 100%; } section, .top, .legal { width: 100%; display: flex; justify-content: center; /* Centrar el contenido */ } .botongoto{ display:inline-block; width:100%; text-align:center; margin:30px 0; } .botongoto button{ margin:20px; } section:last-of-type{background:#001924;} .bh2{ display:block; text-transform:uppercase; font-size:0.8em; color:#6d6d6d; text-align:left; font-family: Poppins; } #slider, #nosotros, #servicios, #trabajos, #contacto, #footer{ background-attachment: fixed; background-position: center; background-size: cover; } #slider{ background-image: url(resources/background3.jpg); } #nosotros{ background-image: url(resources/background.jpg); } #servicios{ background-image: url(resources/background2.jpg); } #trabajos{ background-image: url(resources/background3.jpg); } #contacto{ background-image: url(resources/background4.jpg); } #footer{ background-image: url(resources/background4.jpg); } section .content, section .content2 { width: 100%; max-width: 1090px; text-align: left; background:rgba(255,255,255,0.9); } section .content2{ padding: 40px; } /* custom */ /* Título de la cabecera */ .pageFullPath{ border-bottom:2px solid; padding-bottom:5px; margin-bottom:30px; } .pageFullPath .parentPage{ font-size:1.4em; display:inline; } .pageFullPath a:hover{ text-decoration:none;} .pageFullPath .parentPage:after{ content: " » "; } .pageFullPath #parent0:after{ content: ""; } .noParents{ padding-top:15px;} .pageFullPath .thisPage{ display:block; font-size:2.5em; font-weight:bold; } /* Título de la cabecera */ /* Banderas */ div.flags{ display:inline-block !important; text-align:center; margin-top:10px; padding:0; margin-right:0 !important; border-right:0 !important; } a.flags{ background:url(./resources/images/static/flags.png) top center no-repeat; padding:1px 16px; margin-left:10px; height:20px; } a.flags:hover{opacity:.7;cursor:pointer} a.flags_es{background-position-y:-403px!important} a.flags_en{background-position-y:-106px!important} a.flags_de{background-position-y:-349px!important} a.flags_fr{background-position-y:-79px!important} a.flags_it{background-position-y:-160px!important} /* Fancybox */ .fancybox-image { image-orientation: from-image !important; } article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav{ display: block; } html, body { line-height: 1; margin: 0; height: 100%; } /* Versión normal y mini */ .avatar, .avatar_mini{ position:relative; display:inline-block !important; background-color:#e3e9e9; background-size:cover; background-position:center center; background-repeat:no-repeat; box-shadow: 0px 0px 1px inset #555; min-height:45px; width:45px; vertical-align:middle; margin-right:10px; border-radius:30px; } /* Ajustes para versión mini */ .avatar_mini{ min-height:22px; width:22px; vertical-align:top; margin:0 !important; margin-right:5px !important; } .disabled, .form_wait{ pointer-events: none; cursor: not-allowed !important; -webkit-filter: grayscale(100%); -moz-filter: grayscale(100%); -ms-filter: grayscale(100%); -o-filter: grayscale(100%); filter: grayscale(100%); filter: gray; /* IE 6-9 */ text-shadow: 2px 2px 3px rgba(255,255,255,0.5); box-shadow: none; user-select: none; transition: all .25s ease; } ol, ul { list-style: none; margin:10px 0; } blockquote, q { quotes: none; letter-spacing: 0.1em; } b, strong{ font-weight:bold; } ul li, p{ margin-bottom:10px; } blockquote:before, blockquote:after, q:before, q:after { content: \'\'; content: none; } :focus { outline: 0; } body{ margin: 0; padding: 0; box-sizing:border-box; font-size: 1.125rem; font-style: normal; font-family: Poppins; font-weight: 400; line-height: 1.5; letter-spacing: 0px; text-transform: none; } /* Estilo general para la lista no ordenada */ ul.list { list-style-type: none; /* Elimina los puntos de la lista */ padding: 0; /* Elimina el padding predeterminado */ margin: 0; /* Elimina el margen predeterminado */ padding-left:20px; } /* Estilo para cada elemento de la lista */ ul.list li { display:block; margin: 5px 0; /* Espacio entre los elementos */ padding-bottom:10px; transition: background-color 0.3s ease; /* Transición suave */ } /* Estilo para el contenido del elemento de la lista */ ul.list li::before { content: "\\1F3C0"; /* Punto de lista personalizado */ color: #606060; /* Color del punto */ font-weight: bold; /* Negrita para el punto */ display: inline-block; /* Mantener en línea con el texto */ width: 1.6em; /* Espacio antes del texto */ margin-left: -1em; /* Ajustar posición del punto */ } .body, footer, div.header_content{ width:100%; box-sizing:border-box; min-width:230px; overflow:hidden; } div, input, select, button, textarea, noscript{ line-height:1.3em; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } button{ user-select: none !important; /* Non-prefixed version, currently */ transition: transform 0.3s ease, box-shadow 0.3s ease; box-shadow:0 0 5px #666; } button:hover { transform: scale(1.05); } table{ border-collapse: collapse; border-spacing: 0; margin:10px; } td, th{ height:30px; vertical-align:middle; } th, .ths{ text-align:center; } /* Modificable */ /* Scrollbar */ ::-webkit-scrollbar { width: 0.7em; } ::-webkit-scrollbar-thumb { border-radius:10px; } a, .link{ cursor:pointer; -webkit-touch-callout: none !important; transition: color 0.3s ease; /* Transición suave */ } button.link, a:link,a:visited,a:active, .link:active, a:hover, .link:hover{ text-decoration: none !important; } ul.error li{ display:block; margin-bottom:5px; } ul.error li:before{ content: "- "; } .password_page{ float:left; font-size:7em; margin-right:10px; } h1, h2, h3, h4{ font-weight:normal; line-height:1.3em; margin:0; padding:0; } h1{ font-size:1.5em; font-weight:bold; } h2{ font-size:1.4em; font-weight:bold; line-height:1.3em; padding-bottom:20px; padding-top:10px; } h3{ font-size:1.1em; font-weight:bold; padding-bottom:10px; } h4{ font-style: italic; font-size:1em; padding:20px; background:#fff; margin:20px 0; border-radius:15px; } .subbody{ padding:20px; max-width:1440px; margin:0 auto; } .subbody h1, .subbody h3{ text-align:left; transition: all .25s ease; } *::-moz-selection{ } *::selection { } .details, div.offline_ec, .confirmInfo{ font-size:0.8em; line-height:1.2em; } /* Modificable */ ul{ margin:10px 0; } li{ list-style:none; display:inline; } ul li, p{ margin-bottom:20px; line-height:1.6em; } blockquote{ letter-spacing: 0.1em; } /* Mientras carga el ajax */ .loading_ajax, .loading_ajax_iframe{ display:flex; cursor:wait; position:fixed; align-items: center; justify-content: center; background:rgba(255,255,255,0.8); text-align:center; width:100%; height:100%; top:0; left:0; right:0; bottom:0; z-index:999999999; font-size:1.3em; } .loading_ajax_iframe{ position:absolute; font-size:1.1em; } .loading_now{ position: absolute; bottom:50%; top:50%; left:50%; width:40px; margin-left:-30px; animation: bounce 1s infinite; -webkit-animation: bounce 1s infinite; -moz-animation: bounce 1s infinite; -o-animation: bounce 1s infinite; font-size:0.9em; } @-webkit-keyframes ease { 0%, 20%, 50%, 80%, 100% {-webkit-transform: translateY(0);} 40% {-webkit-transform: translateY(-30px);} 60% {-webkit-transform: translateY(-15px);} } @-moz-keyframes ease { 0%, 20%, 50%, 80%, 100% {-moz-transform: translateY(0);} 40% {-moz-transform: translateY(-30px);} 60% {-moz-transform: translateY(-15px);} } @-o-keyframes ease { 0%, 20%, 50%, 80%, 100% {-o-transform: translateY(0);} 40% {-o-transform: translateY(-30px);} 60% {-o-transform: translateY(-15px);} } @keyframes ease { 0%, 20%, 50%, 80%, 100% {transform: translateY(0);} 40% {transform: translateY(-30px);} 60% {transform: translateY(-15px);} } .loading_item{ border-radius: 5px; opacity: .7; -webkit-animation-duration: 1s; animation-duration: 1s; -webkit-animation-fill-mode: forwards; animation-fill-mode: forwards; -webkit-animation-iteration-count: infinite; animation-iteration-count: infinite; -webkit-animation-name: style-module--loading--1CMFr; animation-name: style-module--loading--1CMFr; -webkit-animation-timing-function: linear; animation-timing-function: linear; } /* Barra de carga */ #loading-bar { height: 5px; width: 0; position: fixed; z-index: 666000666; transition:width 500ms ease-out, height 500ms ease-out; } #loading-bar.no-transition { -webkit-transition:none; -moz-transition:none; -o-transition:none; transition:none; } #loading-bar.top, #loading-bar.bottom, #loading-bar.left { left: 0;} #loading-bar.top, #loading-bar.left, #loading-bar.right { top: 0;} #loading-bar.left, #loading-bar.right { width: 5px; height: 0; } #loading-bar.bottom { bottom: 0; } #loading-bar.right { right:0; } /* Barra de carga */ /* Mientras carga una imagen */ .image_frame .image_image img { background: linear-gradient(0.25turn, transparent, #fff, transparent), linear-gradient(#eee, #eee); background-repeat: no-repeat; /*background-size: 315px 250px, 315px 180px, 100px 100px, 225px 30px; */ background-position: -315px 0, 0 0, 0px 190px, 50px 195px; animation: ajax_loading 1.5s infinite; } /* Mientras carga una imagen */ /* Carga en proceso ajax */ .ajax_loading:empty{ cursor: progress; background: linear-gradient(0.25turn, transparent, #fff, transparent), linear-gradient(#eee, #eee); background-repeat: no-repeat; background-position: -315px 0, 0 0, 0px 190px, 50px 195px; animation: ajax_loading 1.5s infinite; } @keyframes ajax_loading { to { background-position: 315px 0, 0 0, 0 190px, 50px 195px; } } /* Carga en proceso ajax */ /* Sistema de carga */ /* Enlaces */ .scrollToTop{ font-size:3em; text-align:center; position:fixed; bottom:55px; right:10px; display:none; z-index:99990; } a.url{ overflow-wrap: break-word; word-wrap: break-word; -ms-word-break: break-all; word-break: break-all; word-break: break-word; -ms-hyphens: auto; -moz-hyphens: auto; -webkit-hyphens: auto; hyphens: auto; } /* Enlaces */ /* Paginación */ nav.paging_bar a{ border-width:1px; border-style:solid; } /* Paginación */ /* Cabecera */ /* Cuerpo */ .body{ margin:0 auto; padding-top:0 !important; box-sizing:border-box; min-height:400px; } div.crt{ clear:both; } /* Diseño general */ summary{ cursor:pointer; font-weight:bold; font-size:1.0em !important; } div.hline{ height:1px; margin-top:10px; margin:5px 0; margin-bottom:10px; clear:both; } /*************************************************************************** /** BOX DIALOGS ************************************************************ /**************************************************************************/ div.box, div.form{ margin:0 auto; display:block; padding:20px; /*max-width:640px;*/ /*border-style: solid;*/ /*border-radius:2px;*/ } div.boxalert{ width:auto; position:fixed; -webkit-transform: translateZ(0); bottom:0; display:none; border:1px solid; border-radius:0; -webkit-border-radius:0; -moz-border-radius:0; z-index:999999999; padding:5px !important; font-size:1.0em; font-weight:normal !important; } div.box h1{ font-size:1.5em; padding-bottom:10px; } div.box h2{ font-size:1.3em; margin-bottom:10px; } div.box h3{ font-size:1.1em; margin-bottom:10px; } /*************************************************************************** /** BOX DIALOGS ************************************************************ /**************************************************************************/ /* Imágenes */ /* Fancybox */ .fancybox-image { image-orientation: from-image !important; } .fancybox__container{ z-index:999999999 !important;} /* Marco de imágenes */ .image_frame img{ } .image_frame{ margin:0 auto; } .image_frame .image_image{ } .image_frame .image_text{ text-align:left; margin-top:10px; padding-bottom:10px; border-bottom:2px solid #eee; } .image_frame .image_text .image_title{ font-weight:bold; color:#444; font-size:0.9em; } .image_frame .image_text .image_description{ color:#999; font-size:0.8em; } /* Marco de imágenes */ div.img_right, div.svg_right{ float:right; margin:0 0 15px 15px; max-width:320px; } div.img_left, div.svg_left{ float:left; margin:0 20px 10px 0; max-width:320px; } div.img_left img, div.img_left svg, div.img_right img, div.img_right svg{ height:auto; max-width:100%; box-sizing: border-box; border-radius:20px; } div.svg_left svg, div.svg_right svg{ height:auto; max-width:100%; } img, svg{ border:none; height:auto; } /* Imagenes */ /* Javascript no detectado */ noscript{ display:inline-block; position:fixed; width:100%; padding:20px; margin:0 auto; z-index:999999999 !important; text-align:left; opacity:0.9; overflow: hidden; } noscript:hover{ opacity:1.0; } noscript a{ } noscript a:hover{ text-decoration:underline; } .noscript div.title{ font-size:1em; padding-bottom:10px; } .noscript div.text{ font-size:0.9em; } /* Javascript no detectado */ .noshadow{ box-shadow:none !important;} .noselect { -webkit-touch-callout: none !important; /* iOS Safari */ -webkit-user-select: none !important; /* Safari */ -khtml-user-select: none !important; /* Konqueror HTML */ -moz-user-select: none !important; /* Firefox */ -ms-user-select: none !important; /* Internet Explorer/Edge */ user-select: none !important; /* Non-prefixed version, currently supported by Chrome and Opera */ } hr{ height:1px; background:#eee; border:0; margin-bottom:20px; } /* Tablets en horizonal y escritorios normales */ /* Tablets en horizonal y escritorios normales */ @media (max-width: 1199px){ body{ font-size:1.0em; } } @media (max-width: 767px) { div.headmenu_content div{ margin-right:5px; font-size:.9em; } .subbody{ padding:15px; } div.img_right, div.img_left, div.svg_right, div.svg_left{ float:none; padding:20px; margin:0; margin-bottom:15px; text-align:center; box-sizing:border-box; } section .content2{ padding: 20px; } } @media screen and (max-width : 640px) { div.headmenu_content div{ font-size:.8em; } div.box, div.form{ margin:0; padding:8px; } h1{ font-size:1.4em;} h2{ font-size:1.3em;} h3{ font-size:1.1em;} h4{ font-size:1em;} } @media (max-width: 550px) { div.img_right, div.img_left{ padding:0; background:transparent; } .image_frame .image_text{ margin-bottom:20px; } div.img_right img, div.img_left img{ border:0; } } @media screen and (max-width : 480px) { div.headmenu_content div{ padding:2px; } div.box, div.form{ margin:0; border:0; box-shadow:none; padding-top:0; width:100%; } div.subbody{ padding-top:20px; font-size:1.1em; } #headmenu .link_txt{ transition: all .45s ease; } #headmenu a.selected{ background:transparent; text-decoration:none; } #headmenu a{ font-size:1.3em; margin-right:8px; text-decoration:none; transition: all .5s ease; } div.header_content{text-align:center;} #headmenu, .headmenu{ width:85px; padding:0; } footer{ bottom:0; padding:0 !important; padding-top:10px !important; } .subbody h1, .subbody h3{ } h1{ font-size:1.4em;} h2{ font-size:1.3em;} h3{ font-size:1em;} h4{ font-size:0.9em;} img.logo, div.offline_logo img{ padding-left:0; width:160px; margin-right:0; } .botongoto{ display:inline-block; width:100%; text-align:center; margin:30px 0; } .botongoto button{ margin:10px 0; width:100%; } } ', array ( 0 => './config/layouts/default/css/main.css', ), 'as_content', 'head', 0, 0, 0, 1); | Línea: 1811 | Archivo: /var/www/clients/client57/web318/web/system/interface/css.php | Tiempo tomado: 0.7 segundos (0.696) ]

Gestionando contenido CSS (css::is_exist)


Se detectó a través del método: "css::is_exist", que el archivo CSS: "./config/layouts/default/css/rkpopup.css" ya había sido agregado con anterioridad.
[ Nivel: 7 | Función: css::is_exist('./config/layouts/default/css/rkpopup.css'); | Línea: 1453 | Archivo: /var/www/clients/client57/web318/web/system/interface/css.php | Tiempo tomado: 0.7 segundos (0.696) ]

Gestionando contenido CSS (css::is_exist)


Se detectó a través del método: "css::is_exist", que el archivo CSS: "./config/layouts/default/css/sprites.css" ya había sido agregado con anterioridad.
[ Nivel: 7 | Función: css::is_exist('./config/layouts/default/css/sprites.css'); | Línea: 1453 | Archivo: /var/www/clients/client57/web318/web/system/interface/css.php | Tiempo tomado: 0.7 segundos (0.696) ]

Gestionando contenido CSS (css::is_exist)


Se detectó a través del método: "css::is_exist", que el archivo CSS: "./config/layouts/default/css/colours.css" ya había sido agregado con anterioridad.
[ Nivel: 7 | Función: css::is_exist('./config/layouts/default/css/colours.css'); | Línea: 1453 | Archivo: /var/www/clients/client57/web318/web/system/interface/css.php | Tiempo tomado: 0.7 segundos (0.696) ]

Gestionando contenido CSS (css::is_exist)


Se detectó a través del método: "css::is_exist", que el archivo CSS: "./config/layouts/default/css/forms/forms_build_buttons.css" ya había sido agregado con anterioridad.
[ Nivel: 7 | Función: css::is_exist('./config/layouts/default/css/forms/forms_build_buttons.css'); | Línea: 1453 | Archivo: /var/www/clients/client57/web318/web/system/interface/css.php | Tiempo tomado: 0.7 segundos (0.697) ]

Gestionando contenido CSS (css::is_exist)


Se detectó a través del método: "css::is_exist", que el archivo CSS: "./config/layouts/default/css/pages/page1_as_content_min.css" ya había sido agregado con anterioridad.
[ Nivel: 7 | Función: css::is_exist('./config/layouts/default/css/pages/page1_as_content_min.css'); | Línea: 1453 | Archivo: /var/www/clients/client57/web318/web/system/interface/css.php | Tiempo tomado: 0.7 segundos (0.698) ]

Consultando página actual (pages::_checkIdPage)


Se ha cargado con éxito la página: "1" con ID: "Inicio" a través del método: "pages::_checkIdPage". Esta página se encuentra disponible.
[ Nivel: 7 | Función: pages::_checkIdPage(); | Línea: 1783 | Archivo: /var/www/clients/client57/web318/web/system/engine/pages.php | Tiempo tomado: 0.7 segundos (0.699) ]

Gestionando contenido Javascript (js::is_exist)


Se detectó a través del método: "js::is_exist", que el archivo CSS: "498917413" ya había sido agregado con anterioridad.
[ Nivel: 7 | Función: js::is_exist(498917413, 1); | Línea: 3348 | Archivo: /var/www/clients/client57/web318/web/system/interface/js.php | Tiempo tomado: 0.7 segundos (0.699) ]

Nivel: 8 :: Gestión de módulos


Prepara la carga de los módulos y componentes que correspondan a esta página para posteriormente ser renderizados en el Nivel 10.
10 mensaje(s) general(es) recibido(s) en este nivel.

Ver/Ocultar errores | Ver/Ocultar correctos | Ver/Ocultar info | Ver/Ocultar alertas | Ver/Ocultar todo

Clase principal del núcleo del sistema (main::execIncludeBootFiles)


No se han encontrado archivos de arranque en el nivel: "8" a través del método: "main::execIncludeBootFiles").
[ Nivel: 8 | Función: main::execIncludeBootFiles(); | Línea: 1704 | Archivo: /var/www/clients/client57/web318/web/system/engine/main.php | Tiempo tomado: 0.7 segundos (0.699) ]

Preparación de módulos (modsload::_loadInfo)


El módulo: "bxslider" ha cargado correctamente el siguiente archivo de identificación: "./modules/bxslider/info.xml" a través del método: "modsload::_loadInfo".
[ Nivel: 8 | Función: modsload::_loadInfo(); | Línea: 1070 | Archivo: /var/www/clients/client57/web318/web/system/engine/modsload.php | Tiempo tomado: 0.7 segundos (0.700) ]

Cargador de módulos (mods::loadDefaultConfigFile)


El módulo: "bxslider" ha cargado correctamente la siguiente configuración: "./config/modules/bxslider/langs/all.all.config.xml" a través del método: "mods::loadDefaultConfigFile".
[ Nivel: 8 | Función: mods::loadDefaultConfigFile('bxslider'); | Línea: 1075 | Archivo: /var/www/clients/client57/web318/web/system/engine/modsload.php | Tiempo tomado: 0.7 segundos (0.700) ]

Preparación de módulos (modsload::_modsLoads)


El módulo: "bxslider" ha sido vinculado con éxito en la página: "Inicio (1)" y permanecerá la espera de ejecución a través del método: "modsload::_modsLoads".
[ Nivel: 8 | Función: modsload::_modsLoads('bxslider', 0, 'bxslider'); | Línea: 643 | Archivo: /var/www/clients/client57/web318/web/system/engine/modsload.php | Tiempo tomado: 0.7 segundos (0.701) ]

Preparación de módulos (modsload::_loadInfo)


El módulo: "cssmenu" ha cargado correctamente el siguiente archivo de identificación: "./modules/cssmenu/info.xml" a través del método: "modsload::_loadInfo".
[ Nivel: 8 | Función: modsload::_loadInfo(); | Línea: 1070 | Archivo: /var/www/clients/client57/web318/web/system/engine/modsload.php | Tiempo tomado: 0.7 segundos (0.701) ]

Cargador de módulos (mods::loadDefaultConfigFile)


El módulo: "cssmenu" ha cargado correctamente la siguiente configuración: "./config/modules/cssmenu/langs/all.all.config.xml" a través del método: "mods::loadDefaultConfigFile".
[ Nivel: 8 | Función: mods::loadDefaultConfigFile('cssmenu'); | Línea: 1075 | Archivo: /var/www/clients/client57/web318/web/system/engine/modsload.php | Tiempo tomado: 0.7 segundos (0.701) ]

Preparación de módulos (modsload::_modsLoads)


El módulo: "cssmenu" ha sido vinculado con éxito en la página: "Inicio (1)" y permanecerá la espera de ejecución a través del método: "modsload::_modsLoads".
[ Nivel: 8 | Función: modsload::_modsLoads('cssmenu', 0, 'cssmenu'); | Línea: 643 | Archivo: /var/www/clients/client57/web318/web/system/engine/modsload.php | Tiempo tomado: 0.7 segundos (0.701) ]

Preparación de módulos (modsload::_loadInfo)


El módulo: "cookies_alert" ha cargado correctamente el siguiente archivo de identificación: "./modules/cookies_alert/info.xml" a través del método: "modsload::_loadInfo".
[ Nivel: 8 | Función: modsload::_loadInfo(); | Línea: 1070 | Archivo: /var/www/clients/client57/web318/web/system/engine/modsload.php | Tiempo tomado: 0.7 segundos (0.702) ]

Cargador de módulos (mods::loadDefaultConfigFile)


El módulo: "cookies_alert" ha cargado correctamente la siguiente configuración: "./config/modules/cookies_alert/langs/all.all.config.xml" a través del método: "mods::loadDefaultConfigFile".
[ Nivel: 8 | Función: mods::loadDefaultConfigFile('cookies_alert'); | Línea: 1075 | Archivo: /var/www/clients/client57/web318/web/system/engine/modsload.php | Tiempo tomado: 0.7 segundos (0.702) ]

Preparación de módulos (modsload::_modsLoads)


El módulo: "cookies_alert" ha sido vinculado con éxito en la página: "Inicio (1)" y será cargado automáticamente a través del método: "modsload::_modsLoads".
[ Nivel: 8 | Función: modsload::_modsLoads('cookies_alert', 0, 'cookies_alert'); | Línea: 643 | Archivo: /var/www/clients/client57/web318/web/system/engine/modsload.php | Tiempo tomado: 0.7 segundos (0.702) ]

Nivel: 9 :: Sistema de plantillas


Carga la plantilla correspondiente a la página actual.
3 mensaje(s) general(es) recibido(s) en este nivel.

Ver/Ocultar errores | Ver/Ocultar correctos | Ver/Ocultar info | Ver/Ocultar alertas | Ver/Ocultar todo

Clase principal del núcleo del sistema (main::execIncludeBootFiles)


No se han encontrado archivos de arranque en el nivel: "9" a través del método: "main::execIncludeBootFiles").
[ Nivel: 9 | Función: main::execIncludeBootFiles(); | Línea: 1704 | Archivo: /var/www/clients/client57/web318/web/system/engine/main.php | Tiempo tomado: 0.7 segundos (0.702) ]

Gestionando contenido CSS (css::is_exist)


Se detectó a través del método: "css::is_exist", que el archivo CSS: "./config/layouts/default/css/layouts/header.css" ya había sido agregado con anterioridad.
[ Nivel: 9 | Función: css::is_exist('./config/layouts/default/css/layouts/header.css'); | Línea: 1453 | Archivo: /var/www/clients/client57/web318/web/system/interface/css.php | Tiempo tomado: 0.7 segundos (0.703) ]

Gestionando contenido CSS (css::is_exist)


Se detectó a través del método: "css::is_exist", que el archivo CSS: "./config/layouts/default/css/layouts/footer.css" ya había sido agregado con anterioridad.
[ Nivel: 9 | Función: css::is_exist('./config/layouts/default/css/layouts/footer.css'); | Línea: 1453 | Archivo: /var/www/clients/client57/web318/web/system/interface/css.php | Tiempo tomado: 0.7 segundos (0.703) ]

Nivel: 10 :: Renderización de contenido


Muestra finalmente la página seleccionada en pantalla con todos los valores y cambios aplicados (si los hubiera) del sitio Web. También ejecuta todos los componentes y módulos preparados en el Nivel 8.
2 mensaje(s) general(es) recibido(s) en este nivel.

Ver/Ocultar errores | Ver/Ocultar correctos | Ver/Ocultar info | Ver/Ocultar alertas | Ver/Ocultar todo

Clase principal del núcleo del sistema (main::execIncludeBootFiles)


No se han encontrado archivos de arranque en el nivel: "10" a través del método: "main::execIncludeBootFiles").
[ Nivel: 10 | Función: main::execIncludeBootFiles(); | Línea: 1704 | Archivo: /var/www/clients/client57/web318/web/system/engine/main.php | Tiempo tomado: 0.7 segundos (0.703) ]

Cargador de módulos (mods::autoLoad)


La página actual: "Inicio (1)" contiene 3 módulos vinculados (detectado a través del método: "mods::autoLoad"). En total: 1 módulos será(n) invocado(s) automáticamente por su condición de "auto-carga". Los módulos restantes deben invocarse de forma manual.
[ Nivel: 10 | Función: mods::autoLoad(); | Línea: 263 | Archivo: /var/www/clients/client57/web318/web/system/engine/render.php | Tiempo tomado: 0.7 segundos (0.703) ]

Mensajes en módulos


3 módulos contienen mensajes.
Ver/Ocultar errores | Ver/Ocultar correctos | Ver/Ocultar info | Ver/Ocultar alertas | Ver/Ocultar todo
Módulo :: Cookies Alert! (cookies_alert) :: Módulo localizado en el directorio: ./modules/cookies_alert/ y añadido desde la configuración principal del sitio Web.
Descripción
Informa al usuario (mediante un mensaje no intrusivo) de que este sitio Web utiliza Cookies y que es el propio usuario el que debe autorizar su uso con el fin de garantizar una óptima disponibilidad de los servicios y funcionalidad de este sitio Web.

Se ha(n) recibido 7 mensaje(s) para este módulo.

Ver/Ocultar errores | Ver/Ocultar correctos | Ver/Ocultar info | Ver/Ocultar alertas | Ver/Ocultar todo

Gestionando contenido CSS (css::is_exist)


Se detectó a través del método: "css::is_exist" (llamado durante el módulo: "Cookies Alert! (cookies_alert)"), que el archivo CSS: "./config/modules/cookies_alert/css/cookies_alert.css" ya había sido agregado con anterioridad.
[ Nivel: 10 | Función: css::is_exist('./config/modules/cookies_alert/css/cookies_alert.css'); | Línea: 1453 | Archivo: /var/www/clients/client57/web318/web/system/interface/css.php | Tiempo tomado: 0.7 segundos (0.704) ]

Gestionando contenido CSS (css::_addCSS)


El módulo: "Cookies Alert! (cookies_alert)" ha añadido un nuevo contenido CSS entre las etiquetas: "<head>" y "</head>" de la página: "Inicio (1)" a través del método: "css::_addCSS".
[ Nivel: 10 | Función: css::_addCSS('div.cookie-wrapper{ display:none; width:100%; overflow:hidden; bottom:0; box-sizing:border-box; position:fixed; padding:15px; z-index:999999999; margin:0; border-top-style:solid; } div.cookie-wrapper p{ margin-bottom:10px; line-height:1.2em; } div.cookie-wrapper h2{ margin-top:0 !important; padding-bottom:10px; text-align:left; } div.cookie-buttons{ text-align:center; } div.cookie-buttons a{ margin:10px; padding:10px; } ', array ( 0 => './config/modules/cookies_alert/css/cookies_alert.css', ), 'as_content', 'head', 0, 0, 0, 1); | Línea: 1811 | Archivo: /var/www/clients/client57/web318/web/system/interface/css.php | Tiempo tomado: 0.7 segundos (0.704) ]

Cargador de módulos (mods::_autoboot)


El módulo: "Cookies Alert! (cookies_alert)", ha agregado con éxito la clase: "cookies_alert" del archivo de clase: "./modules/cookies_alert/class/cookies_alert.php" a través del método: "mods::_autoboot".
[ Nivel: 10 | Función: mods::_autoboot(true, 'cookies_alert'); | Línea: 343 | Archivo: /var/www/clients/client57/web318/web/system/engine/mods.php | Tiempo tomado: 0.7 segundos (0.705) ]

Gestionando contenido Javascript (js::is_exist)


Se detectó a través del método: "js::is_exist" (llamado durante el módulo: "Cookies Alert! (cookies_alert)"), que el archivo CSS: "2212726858" ya había sido agregado con anterioridad.
[ Nivel: 10 | Función: js::is_exist(2212726858, 1); | Línea: 3348 | Archivo: /var/www/clients/client57/web318/web/system/interface/js.php | Tiempo tomado: 0.7 segundos (0.705) ]

Gestionando contenido Javascript (js::_addJS)


El módulo: "Cookies Alert! (cookies_alert)" ha añadido un nuevo contenido javascript (en una ruta local) entre las etiquetas: "<body>" y "</body>" de la página: "Inicio (1)" a través del método: "js::_addJS".
[ Nivel: 10 | Función: js::_addJS('function setCookie(cookieName,cookieValue,nDays){ var today = new Date(); var expire = new Date(); if(nDays==null || nDays==0){nDays=1;} expire.setTime(today.getTime() + 3600000*24*nDays); document.cookie = cookieName+\'=\'+escape(cookieValue) + \';expires=\'+expire.toGMTString() + \';path=/\'; } $(".cookie-wrapper").slideDown(2000, function(){}); $(".aceptar-cookies").on("click", function(event){ event.preventDefault(); $(".cookie-wrapper").slideUp(500, function(){ $(this).remove(); }); setCookie(\'cookies_policy\', \'accept\', \'3650\'); return false; }); ', array ( 0 => 2212726858, ), 'as_content', 'body', 0, 0, 0, 1, 1, 0, 'cookies_alert', 'mods'); | Línea: 3360 | Archivo: /var/www/clients/client57/web318/web/system/interface/js.php | Tiempo tomado: 0.7 segundos (0.705) ]

Cargador de módulos (mods::_autoboot)


El módulo: "Cookies Alert! (cookies_alert)", tiene la etiqueta: "autoboot" habilitada y vinculando a: "./modules/cookies_alert/class/cookies_alert.php" (detectado a través del método: "mods::_autoboot").
[ Nivel: 10 | Función: mods::_autoboot(true, 'cookies_alert'); | Línea: 343 | Archivo: /var/www/clients/client57/web318/web/system/engine/mods.php | Tiempo tomado: 0.7 segundos (0.705) ]

Cargador de módulos (mods::add)


El módulo: "Cookies Alert! (cookies_alert)", ha sido cargado y ejecutado correctamente a través del método: "mods::add".
[ Nivel: 10 | Función: mods::add('cookies_alert'); | Línea: 2398 | Archivo: /var/www/clients/client57/web318/web/system/engine/mods.php | Tiempo tomado: 0.7 segundos (0.705) ]
Módulo :: CSS Menu Maker Extension (cssmenu) :: Módulo localizado en el directorio: ./modules/cssmenu/ y añadido desde la configuración principal del sitio Web.
Descripción
Carga el menú de opciones principal con ayuda de CSS y jQuery, necesario para navegar por el sitio Web.

Se ha(n) recibido 9 mensaje(s) para este módulo.

Ver/Ocultar errores | Ver/Ocultar correctos | Ver/Ocultar info | Ver/Ocultar alertas | Ver/Ocultar todo

Gestionando contenido CSS (css::is_exist)


Se detectó a través del método: "css::is_exist" (llamado durante el módulo: "CSS Menu Maker Extension (cssmenu)"), que el archivo CSS: "./config/modules/cssmenu/css/cssmenu.css" ya había sido agregado con anterioridad.
[ Nivel: 10 | Función: css::is_exist('./config/modules/cssmenu/css/cssmenu.css'); | Línea: 1453 | Archivo: /var/www/clients/client57/web318/web/system/interface/css.php | Tiempo tomado: 0.7 segundos (0.705) ]

Gestionando contenido CSS (css::_addCSS)


El módulo: "CSS Menu Maker Extension (cssmenu)" ha añadido un nuevo contenido CSS entre las etiquetas: "<head>" y "</head>" de la página: "Inicio (1)" a través del método: "css::_addCSS".
[ Nivel: 10 | Función: css::_addCSS('.menuLayer{ display:none; z-index:1; position:fixed; top:81px; left:0; bottom:0; width:100%; height:100%; } .menu{ margin-top:10px; } #mainmenu li a i{ text-align:center; min-width:30px; } #cssmenu, #cssmenu ul, #cssmenu ul li, #cssmenu ul li a, #cssmenu #menu-button, #cssmenu ul li span.nolink { margin: 0; padding: 0; border: 0; list-style: none; line-height: 1em; display:block; position: relative; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } #cssmenu:after, #cssmenu > ul:after { content: "."; display: block; visibility: hidden; line-height: 0; height: 0; } #cssmenu #menu-button {display: none; } #cssmenu > ul > li { display:inline-block; vertical-align: middle; font-size:0.9em; margin:5px; text-align:left; } #cssmenu.align-center > ul { font-size: 0; text-align: center; } #cssmenu.align-center > ul > li { display: inline-block; float: none; } #cssmenu.align-center ul ul { text-align: left; } #cssmenu.align-right > ul > li { float: right; } /* Enlaces del menú principal */ #cssmenu > ul > li > a, #cssmenu > ul > li > span.nolink{ padding:12px; font-size:1.1em; text-decoration: none; letter-spacing:0.01em; width:auto; height:auto; text-align:left; font-weight:normal; border-bottom:4px solid #fff; } /* Enlaces del menú principal HOVER */ #cssmenu > ul > li:hover > a, #cssmenu > ul > li:hover > span.nolink { /*border-radius:10px;*/ border-bottom:4px solid #e52d2d; } #cssmenu > ul > li.has-sub > a, #cssmenu > ul > li.has-sub > span.nolink{ padding-right: 30px; } /* La raya horizontal del + */ #cssmenu > ul > li.has-sub > a:after, #cssmenu > ul > li.has-sub > span.nolink:after{ position: absolute; top: 18px; right: 10px; width: 0; height: 0; display: none; content: \'\'; } /* La raya vertical del + */ #cssmenu > ul > li.has-sub > a:before, #cssmenu > ul > li.has-sub > span.nolink:before{ position: absolute; right: 18px; display: block; width: 0; height: 0; content: \'\\25B8\'; } #cssmenu > ul > li.has-sub:hover > a:before, #cssmenu > ul > li.has-sub:hover > span.nolink:before{ content: \'\\25BE\'; } #cssmenu ul ul { position: absolute; left: -9999px; } #cssmenu.align-right ul ul {text-align: right;} #cssmenu ul ul li { height: 0;} /* Submenú */ #cssmenu li:hover > ul { z-index:999999999; left: auto; } #cssmenu.align-right li:hover > ul { left: auto; right: 0; } /* Submenú opciones */ #cssmenu li:hover > ul > li { height: auto; } #cssmenu li > ul > li { } #cssmenu li > ul > li a, #cssmenu li > ul > li span.nolink{ line-height:1.3em; } #cssmenu li:hover > ul > li:first-child > a{} #cssmenu li:hover > ul > li:last-child > a{} #cssmenu ul ul ul { margin-left: 100%; top: 0; } #cssmenu.align-right ul ul ul { margin-left: 0; margin-right: 100%; } /* Opciones del submenú */ #cssmenu ul ul li a, #cssmenu ul ul li span.nolink { padding: 15px; font-size: 1.05em; text-decoration: none; width:210px; } #cssmenu ul ul li:hover > a, #cssmenu ul ul li:hover > span.nolink, #cssmenu ul ul li a:hover, #cssmenu ul ul li span.nolink:hover{ padding-left:20px; transition: all .25s ease; } #cssmenu ul ul li:last-child > a, #cssmenu ul ul li.last-item > a, #cssmenu ul ul li:last-child > span.nolink, #cssmenu ul ul li.last-item > span.nolink { border-bottom: 0; } #cssmenu > ul > li > a.selected, #cssmenu > ul > li > span.selected{ /*border-radius:10px; */} /* Opciones del submenú */ #cssmenu ul ul li.has-sub > a:after, #cssmenu ul ul li.has-sub > span.nolink:after { position: absolute; z-index:999999999; top: 10px; right: 11px; width: 8px; height: 2px; display: block; content: \'\'; } #cssmenu.align-right ul ul li.has-sub > a:after, #cssmenu.align-right ul ul li.has-sub > span.nolink:after{ right: auto; left: 11px; } #cssmenu ul ul li.has-sub > a:before, #cssmenu ul ul li.has-sub > span.nolink:before { position: absolute; top: 13px; right: 14px; display: block; width: 2px; height: 8px; content: \'\'; } #cssmenu.align-right ul ul li.has-sub > a:before, #cssmenu.align-right ul ul li.has-sub > span.nolink:before { right: auto; left: 14px; } #cssmenu ul ul > li.has-sub:hover > a:before, #cssmenu ul ul > li.has-sub:hover > span.nolink:before { top: 17px; height: 0; } /* small RESPONSIVE */ #cssmenu.small-screen { display:block; font-size:1.2em; width: 100% !important; } #cssmenu.small-screen .selected{ border:0 !important; } #cssmenu.small-screen ul { width: 100%; display: none; border-radius:0; z-index:99999999; } #cssmenu.small-screen.align-center > ul { text-align: left; } #cssmenu.small-screen ul li { display:block; width: 100%; border-bottom-width: 1px; border-bottom-style: solid; vertical-align:top; margin:0; } #cssmenu.small-screen ul li a{ padding:15px; } #cssmenu.small-screen ul ul li, #cssmenu.small-screen li:hover > ul > li { height: auto; } #cssmenu.small-screen ul li a, #cssmenu.small-screen ul ul li a, #cssmenu.small-screen ul li span.nolink, #cssmenu.small-screen ul ul li span.nolink{ width: 100%; border-bottom: 0; border-radius:0; } #cssmenu.small-screen > ul > li { float: none; } #cssmenu.small-screen ul ul li a, #cssmenu.small-screen ul ul li span.nolink{ background: none; padding-left: 30px; height: 47px; } #cssmenu.small-screen ul ul ul li a, #cssmenu.small-screen ul ul ul li span.nolink{ padding-left: 45px; } #cssmenu.small-screen ul ul ul ul li a, #cssmenu.small-screen ul ul ul ul li span.nolink{ padding-left: 65px; } #cssmenu.small-screen ul ul ul ul ul li a, #cssmenu.small-screen ul ul ul ul ul li span.nolink{ padding-left: 85px; } #cssmenu.small-screen ul ul ul ul ul ul li a, #cssmenu.small-screen ul ul ul ul ul ul li span.nolink{ padding-left: 105px; } #cssmenu.small-screen ul ul li:hover > a, #cssmenu.small-screen ul ul li.active > a, #cssmenu.small-screen ul ul li:hover > span.nolink, #cssmenu.small-screen ul ul li.active > span.nolink{} #cssmenu.small-screen ul ul, #cssmenu.small-screen ul ul ul, #cssmenu.small-screen.align-right ul ul { position: relative; left: 0; width: 100%; margin: 0; text-align: left; } #cssmenu.small-screen > ul > li.has-sub > a:after, #cssmenu.small-screen > ul > li.has-sub > a:before, #cssmenu.small-screen ul ul > li.has-sub > a:after, #cssmenu.small-screen ul ul > li.has-sub > a:before, #cssmenu.small-screen > ul > li.has-sub > span.nolink:after, #cssmenu.small-screen > ul > li.has-sub > span.nolink:before, #cssmenu.small-screen ul ul > li.has-sub > span.nolink:after, #cssmenu.small-screen ul ul > li.has-sub > span.nolink:before{ display: none; } #cssmenu.small-screen #menu-button { display: block; padding: 34px 0; padding-right:20px; cursor: pointer; font-size: 2em; font-family: "Font Awesome 5 Free"; font-weight: 900; } #cssmenu.small-screen #menu-button:after { position: absolute; top: 11px; right: 30px; display: block; height: 5px; width: 25px; display:none; content: \'\\f00d\'; box-sizing: content-box; } /* --- Normal */ #cssmenu.small-screen #menu-button:before { position: absolute; top: 10px; right: 30px; display: block; height: 0; width: 0; content: \'\\f0c9\'; box-sizing: content-box; transition: all 0.3s ease; } #cssmenu.small-screen #menu-button.menu-opened:after { content: \'\\f0c9\'; } /* X al pulsar --- */ #cssmenu.small-screen #menu-button.menu-opened:before { transform: rotate3d(11, 11, 0, 360deg); content: \'\\f00d\'; right: 30px; } #cssmenu.small-screen .submenu-button { position: absolute; z-index: 99; right: 0; top: 0; display: block; height: 47px; width: 60px; cursor: pointer; } #cssmenu.small-screen .submenu-button.submenu-opened {} #cssmenu.small-screen .submenu-button:after { position: absolute; width: 0; height: 0; display: block; top: 15px; right: 40px; content: \'\\25B8\'; font-size:30px; } #cssmenu.small-screen ul ul .submenu-button:after { top: 15px; right: 13px; } #cssmenu.small-screen .submenu-button.submenu-opened:after { display: block; content: \'\\25BE\'; } #cssmenu.small-screen .submenu-button:before { position: absolute; top: 10px; right: 40px; display:none;color:red; width: 0; height: 0; content: \'\\25B8\'; } #cssmenu.small-screen ul ul .submenu-button:before { top: 12px; right: 16px; } #cssmenu.small-screen .submenu-button.submenu-opened:before { display: none; } #cssmenu.small-screen.select-list { padding: 5px; } #cssmenu.small-screen ul li > ul > li .submenu-button:after { top: 15px; right: 40px; transition: all 0.4s ease; transform: rotate3d(11, 11, 0, 360deg); } @media (max-width: 1199px){ #cssmenu > ul > li.has-sub > a, #cssmenu > ul > li.has-sub > span.nolink{ padding-right: 25px !important; } } @media (max-width: 990px){ #cssmenu > ul > li > a, #cssmenu > ul > li > span.nolink{padding:10px;} } @media (max-width: 960px){ #cssmenu > ul > li { font-size:0.8em; margin:8px 2px; } } @media (max-width: 880px){ #cssmenu > ul > li > a, #cssmenu > ul > li > span.nolink{padding:8px 8px 12px 8px;} #cssmenu > ul > li {margin:10px 0;} } @media (max-width: 850px){ #cssmenu > ul > li > a, #cssmenu > ul > li > span.nolink{padding:4px 4px 12px 4px;} #cssmenu > ul > li {margin:15px 0;} } @media (max-width: 820px){ #cssmenu > ul > li {font-size:0.7em;} } @media (max-width: 760px){ #cssmenu > ul > li > a, #cssmenu > ul > li > span.nolink{padding:12px;} #cssmenu > ul > li {font-size:0.8em;margin:12px 0;} } ', array ( 0 => './config/modules/cssmenu/css/cssmenu.css', ), 'as_content', 'head', 0, 0, 0, 1); | Línea: 1811 | Archivo: /var/www/clients/client57/web318/web/system/interface/css.php | Tiempo tomado: 0.7 segundos (0.705) ]

Gestionando contenido Javascript (js::is_exist)


Se detectó a través del método: "js::is_exist" (llamado durante el módulo: "CSS Menu Maker Extension (cssmenu)"), que el archivo CSS: "./modules/cssmenu/js/cssmenu.min.js" ya había sido agregado con anterioridad.
[ Nivel: 10 | Función: js::is_exist('./modules/cssmenu/js/cssmenu.min.js', 1); | Línea: 3399 | Archivo: /var/www/clients/client57/web318/web/system/interface/js.php | Tiempo tomado: 0.7 segundos (0.706) ]

Gestionando contenido Javascript (js::_addJS)


El módulo: "CSS Menu Maker Extension (cssmenu)" ha añadido un nuevo contenido javascript (en una ruta local) entre las etiquetas: "<head>" y "</head>" de la página: "Inicio (1)" a través del método: "js::_addJS".
[ Nivel: 10 | Función: js::_addJS('!function(e){let s="vibrate"in navigator;e(".menuLayer").on("click",function(){e("#menu-button").trigger("click")}),e.fn.menumaker=function(t){let n=e(this),i=e.extend({title:"",format:"dropdown",breakpoint:768,stickytop:0,onebyone:!0,accordeon:!0,vibration:5,addstickyclass:"",sticky:""},t);return this.each(function(){if(n.find("li ul").parent().addClass("has-sub"),"select"!=i.format){n.prepend(\'<div id="menu-button">\'+i.title+"</div>"),e(this).find("a").on("click",function(){s&&0!=i.vibration&&navigator.vibrate(i.vibration)}),e(this).find("#menu-button").on("click",function(){s&&0!=i.vibration&&navigator.vibrate(i.vibration),e(this).toggleClass("menu-opened");let t=e(this).hasClass("menu-opened");e(this).attr("aria-expanded",t);let n=e(this).next("ul");n.hasClass("open")?(n.hide().removeClass("open"),e(".menuLayer").fadeOut(),e(".sticky").removeClass("sticky_cssmenu")):(e(".sticky").addClass("sticky_cssmenu"),e(".menuLayer").fadeIn(),n.show().addClass("open"),"dropdown"===i.format&&n.find("ul").show())});let t=function(s,t){i.onebyone&&"mainmenu"===t&&e(".submenu-button").removeClass("submenu-opened").siblings("ul").removeClass("open").slideUp(),s.addClass("open").slideDown()};"multitoggle"===i.format?(n.find(".has-sub").prepend(\'<span class="submenu-button"></span>\'),n.find(".submenu-button").on("click",function(){let n=e(this).siblings("ul"),a=e(this).parent("li").parent("ul").attr("id");s&&0!=i.vibration&&navigator.vibrate(i.vibration),n.hasClass("open")?(n.slideUp(function(){e(this).removeClass("open")}),e(this).removeClass("submenu-opened")):(t(n,a),e(this).addClass("submenu-opened"))})):n.addClass("dropdown")}else if("select"===i.format){n.append(\'<select style="width: 100%"/>\').addClass("select-list");let a=n.find("select");a.append("<option>"+i.title+"</option>",{selected:"selected",value:""}),n.find("a").each(function(){let s=e(this),t="";for(let n=1;n<s.parents("ul").length;n++)t+="-";a.append(\'<option value="\'+e(this).attr("href")+\'">\'+t+s.text()+"</option>")}),a.on("change",function(){window.location=e(this).find("option:selected").val()})}if(!1!==i.sticky){let o=e(i.sticky);if(o.length>0&&void 0!==o.offset()){let l=o.offset().top-i.stickytop;e(window).scrollTop()>l&&(o.addClass("sticky"),""!=i.addstickyclass&&e(i.addstickyclass).addClass("sticky")),e(window).on("scroll load",function(){e(window).scrollTop()>l?(o.addClass("sticky"),""!=i.addstickyclass&&e(i.addstickyclass).addClass("sticky")):(o.removeClass("sticky"),""!=i.addstickyclass&&e(i.addstickyclass).removeClass("sticky"))})}}let d=function(){let s=e(document).width()+(window.innerWidth-document.body.clientWidth);s>i.breakpoint&&(n.find("ul").show(),n.removeClass("small-screen"),"select"===i.format?n.find("select").hide():(n.find("#menu-button").removeClass("menu-opened"),n.find(".submenu-button").removeClass("submenu-opened"),e(".menuLayer").fadeOut())),s<=i.breakpoint&&!n.hasClass("small-screen")&&(n.find("ul").hide().removeClass("open"),e(".menuLayer").fadeOut(),n.addClass("small-screen"),"select"===i.format&&n.find("select").show())},c;e(window).on("resize",function(){clearTimeout(c),c=setTimeout(d,1)}),d()})}}(jQuery);', array ( 0 => './modules/cssmenu/js/cssmenu.min.js', ), 'as_content', 'head', 0, 0, 0, 0, 1, 0, 'cssmenu', 'mods'); | Línea: 4089 | Archivo: /var/www/clients/client57/web318/web/system/interface/js.php | Tiempo tomado: 0.7 segundos (0.706) ]

Gestionando contenido Javascript (js::is_exist)


Se detectó a través del método: "js::is_exist" (llamado durante el módulo: "CSS Menu Maker Extension (cssmenu)"), que el archivo CSS: "2970864664" ya había sido agregado con anterioridad.
[ Nivel: 10 | Función: js::is_exist(2970864664, 1); | Línea: 3348 | Archivo: /var/www/clients/client57/web318/web/system/interface/js.php | Tiempo tomado: 0.7 segundos (0.706) ]

Cargador de módulos (mods::_autoboot)


El módulo: "CSS Menu Maker Extension (cssmenu)", ha agregado con éxito la clase: "cssmenu" del archivo de clase: "./modules/cssmenu/class/cssmenu.php" a través del método: "mods::_autoboot".
[ Nivel: 10 | Función: mods::_autoboot(false, 'cssmenu'); | Línea: 343 | Archivo: /var/www/clients/client57/web318/web/system/engine/mods.php | Tiempo tomado: 0.7 segundos (0.706) ]

Cargador de módulos (mods::_autoboot)


El módulo: "CSS Menu Maker Extension (cssmenu)", tiene la etiqueta: "autoboot" habilitada y vinculando a: "./modules/cssmenu/class/cssmenu.php" (detectado a través del método: "mods::_autoboot").
[ Nivel: 10 | Función: mods::_autoboot(false, 'cssmenu'); | Línea: 343 | Archivo: /var/www/clients/client57/web318/web/system/engine/mods.php | Tiempo tomado: 0.7 segundos (0.706) ]

Cargador de módulos (mods::add)


El módulo: "CSS Menu Maker Extension (cssmenu)", ha sido cargado y ejecutado correctamente a través del método: "mods::add".
[ Nivel: 10 | Función: mods::add('cssmenu'); | Línea: 39 | Archivo: /var/www/clients/client57/web318/web/config/layouts/default/layout.body_head.php | Tiempo tomado: 0.7 segundos (0.706) ]

Preparando renderización (render::_attachModsToPage)


Se encontró y se tomará en cuenta la etiqueta: "{{mod_bxslider}}" que agrega e invoca el módulo: "bxslider" dentro del contenido de la página: "Inicio (1)" (detectado a través del método: "render::_attachModsToPage").
[ Nivel: 10 | Función: render::_attachModsToPage(); | Línea: 103 | Archivo: /var/www/clients/client57/web318/web/system/engine/render.php | Tiempo tomado: 0.7 segundos (0.706) ]
Módulo :: BxSlider Extension (bxslider) :: Módulo localizado en el directorio: ./modules/bxslider/ y añadido desde la página actual.
Descripción
BxSlider es un carrusel de diapositivas con contenido responsive, que se puede adaptar automáticamente a la página según el tamaño de la misma.

Se ha(n) recibido 23 mensaje(s) para este módulo.

Ver/Ocultar errores | Ver/Ocultar correctos | Ver/Ocultar info | Ver/Ocultar alertas | Ver/Ocultar todo

Gestionando contenido CSS (css::is_exist)


Se detectó a través del método: "css::is_exist" (llamado durante el módulo: "BxSlider Extension (bxslider)"), que el archivo CSS: "./config/modules/bxslider/css/bxslider.style.css" ya había sido agregado con anterioridad.
[ Nivel: 10 | Función: css::is_exist('./config/modules/bxslider/css/bxslider.style.css'); | Línea: 1453 | Archivo: /var/www/clients/client57/web318/web/system/interface/css.php | Tiempo tomado: 0.7 segundos (0.707) ]

Gestionando contenido CSS (css::_addCSS)


El módulo: "BxSlider Extension (bxslider)" ha añadido un nuevo contenido CSS entre las etiquetas: "<head>" y "</head>" de la página: "Inicio (1)" a través del método: "css::_addCSS".
[ Nivel: 10 | Función: css::_addCSS(' ul.bxslider{ margin:0; padding:0; } .bx-wrapper { position: relative; margin:0 auto; padding: 0; *zoom: 1; width:100% !important; -ms-touch-action: pan-y; touch-action: pan-y; } .bx-wrapper a{ text-decoration:none; } .bx-wrapper img { width:100%; } div.bx-div-item{ display:block; margin:0 auto; height:60vh; width:100%; position:relative; background-repeat: no-repeat; background-size:cover; background-attachment: scroll; background-position: center center; } div.bx-div-item-main{ margin:0 auto; } div.bx-div-item-content{ /* display:inline-block; padding:10px; margin:50px; margin-top:280px; max-width:800px;*/ position:absolute; bottom:0; left:0; right:0; padding:20px; padding-bottom:60px; box-shadow: 0 0 3px #020402; } .bx-div-item-content h1, .bx-div-item-content h2{ font-size:2em; font-weight:normal; line-height:1.0em; } .bx-div-item-content h2{ padding-top:10px; font-size:1.2em !important; font-weight:normal; line-height: 1.3em; } /** THEME ===================================*/ .bx-wrapper .bx-viewport { transform: translatez(0); } .bx-wrapper .bx-pager, .bx-wrapper .bx-controls-auto { position: absolute; bottom: 0; width: 100%; } /* LOADER */ div.slider{ margin:0 auto; top:0; z-index:-1; } .bx-wrapper .bx-loading { min-height: 50px; background: url(config/modules/bxslider/css/images/bx_loader.gif) center center no-repeat #fff; height: 100%; width: 100%; position: absolute; top: 0; left: 0; z-index: 2000; } /* PAGER */ .bx-wrapper .bx-pager { text-align: center; font-size: .85em; padding-top: 20px; } .bx-wrapper .bx-pager .bx-pager-item, .bx-wrapper .bx-controls-auto .bx-controls-auto-item { display: inline-block; *zoom: 1; *display: inline; } .bx-wrapper .bx-pager.bx-default-pager a { border-width:15px; border-style:solid; text-indent: -9999px; border-radius:100px; display: block; width: 0em; height: 0em; margin: 20px 15px; outline: 0; box-shadow: 0px 0px 30px black; } /* DIRECTION CONTROLS (NEXT / PREV) */ .bx-wrapper .bx-prev, .bx-wrapper .bx-next { left: 5px; border-top:38px solid transparent; border-right:34px solid; border-bottom:38px solid transparent; border-left:0 solid transparent; width: 0.4em; height: 1em; } .bx-wrapper .bx-next { right: 5px; left:auto; border-right:0 solid transparent; border-left:34px solid; } .bx-wrapper .bx-prev:hover, .bx-wrapper .bx-next:hover { opacity:1; } /* Flechas */ .bx-wrapper .bx-controls-direction a { display:none; position:absolute; bottom:8%; outline: 0; height:1px; text-indent: -9999px; z-index: 1; } .bx-wrapper .bx-controls-direction a.disabled { display: none; } /* AUTO CONTROLS (START / STOP) */ .bx-wrapper .bx-controls-auto { text-align: center; } .bx-wrapper .bx-controls-auto .bx-start { display: block; text-indent: -9999px; width: 10px; height: 11px; outline: 0; background: url(images/controls.png) -86px -11px no-repeat; margin: 0 3px; } .bx-wrapper .bx-controls-auto .bx-start:hover, .bx-wrapper .bx-controls-auto .bx-start.active { background-position: -86px 0; } .bx-wrapper .bx-controls-auto .bx-stop { display: block; text-indent: -9999px; width: 9px; height: 11px; outline: 0; background: url(images/controls.png) -86px -44px no-repeat; margin: 0 3px; } .bx-wrapper .bx-controls-auto .bx-stop:hover, .bx-wrapper .bx-controls-auto .bx-stop.active { background-position: -86px -33px; } /* PAGER WITH AUTO-CONTROLS HYBRID LAYOUT */ .bx-wrapper .bx-controls.bx-has-controls-auto.bx-has-pager .bx-pager { text-align: left; width: 80%; } .bx-wrapper .bx-controls.bx-has-controls-auto.bx-has-pager .bx-controls-auto { right: 0; width: 35px; } /* IMAGE CAPTIONS */ .bx-wrapper .bx-caption { position: absolute; bottom: 40px; left: 0; width: 100%; } .bx-wrapper .bx-caption span { font-style:normal; display: block; font-size: 1.2em; padding: 10px; } @media (max-width: 990px) { div.slider{ margin-top:46px; } } @media (max-width: 580px) { div.slider{ margin-top:44px; } } @media (max-width: 525px) { div.slider{ margin-top:40px; } } @media all and (max-width : 768px){ .bx-wrapper .bx-pager.bx-default-pager a { border-width:15px; } } @media all and (max-width: 500px){ div.bx-pager{ display:none; } div.bx-controls-direction, .bx-wrapper .bx-controls-direction a{ display:block; } div.bx-div-item{ max-height:400px; } div.bx-div-item-content h1{ font-size:1.6em; font-weight:bold; } div.bx-div-item-content{ padding-top:10px; } div.bx-div-item-content h2{ font-size:1.1em !important; } div.bx-div-item-content{ padding-bottom:0; padding-left:60px; padding-right:60px; } } @media all and (max-height: 360px){ div.bx-div-item-content{ background:none; box-shadow:none; } div.bx-div-item-content h1, div.bx-div-item-content h2{ display:none; } } ', array ( 0 => './config/modules/bxslider/css/bxslider.style.css', ), 'as_content', 'head', 0, 0, 0, 1); | Línea: 1811 | Archivo: /var/www/clients/client57/web318/web/system/interface/css.php | Tiempo tomado: 0.7 segundos (0.707) ]

Gestionando contenido Javascript (js::is_exist)


Se detectó a través del método: "js::is_exist" (llamado durante el módulo: "BxSlider Extension (bxslider)"), que el archivo CSS: "./modules/bxslider/js/jquery.bxslider.min.js" ya había sido agregado con anterioridad.
[ Nivel: 10 | Función: js::is_exist('./modules/bxslider/js/jquery.bxslider.min.js', 0); | Línea: 3286 | Archivo: /var/www/clients/client57/web318/web/system/interface/js.php | Tiempo tomado: 0.7 segundos (0.707) ]

Gestionando contenido Javascript (js::_addJS)


El módulo: "BxSlider Extension (bxslider)" ha añadido un nuevo archivo (./modules/bxslider/js/jquery.bxslider.min.js) javascript (en una ruta local) entre las etiquetas: "<head>" y "</head>" de la página: "Inicio (1)" a través del método: "js::_addJS".
[ Nivel: 10 | Función: js::_addJS('<script src="./modules/bxslider/js/jquery.bxslider.min.js"></script> ', array ( 0 => './modules/bxslider/js/jquery.bxslider.min.js', ), 'as_file', 'head', 1, 0, 0, 1, 1, 0, 'bxslider', 'mods'); | Línea: 4089 | Archivo: /var/www/clients/client57/web318/web/system/interface/js.php | Tiempo tomado: 0.7 segundos (0.707) ]

Cargador de módulos (mods::_loadLanguageFile)


Se han agregado con éxito los mensajes del archivo: "./config/modules/bxslider/langs/es.lang.xml" del módulo: "BxSlider Extension (bxslider)" (dentro del método: "mods::_loadLanguageFile"), con el fin de que puedan ser llamados por medio de etiquetas desde dentro de las plantillas o archivos XML. Para desactivarlo, por favor elimina el atributo: "tags" de la etiqueta: "mensajes" dentro del archivo: "./config/modules/bxslider/langs/es.lang.xml".
[ Nivel: 10 | Función: mods::_loadLanguageFile(); | Línea: 4087 | Archivo: /var/www/clients/client57/web318/web/system/engine/mods.php | Tiempo tomado: 0.7 segundos (0.708) ]

Cargador de módulos (mods::_autoboot)


El módulo: "BxSlider Extension (bxslider)", ha agregado con éxito la clase: "bxslider" del archivo de clase: "./modules/bxslider/class/bxslider.php" a través del método: "mods::_autoboot".
[ Nivel: 10 | Función: mods::_autoboot(false, 'bxslider'); | Línea: 343 | Archivo: /var/www/clients/client57/web318/web/system/engine/mods.php | Tiempo tomado: 0.7 segundos (0.708) ]

Gestionando contenido Javascript (js::is_exist)


Se detectó a través del método: "js::is_exist" (llamado durante el módulo: "BxSlider Extension (bxslider)"), que el archivo CSS: "4108391984" ya había sido agregado con anterioridad.
[ Nivel: 10 | Función: js::is_exist(4108391984, 1); | Línea: 3348 | Archivo: /var/www/clients/client57/web318/web/system/interface/js.php | Tiempo tomado: 0.7 segundos (0.708) ]

Gestionando contenido Javascript (js::_addJS)


El módulo: "BxSlider Extension (bxslider)" ha añadido un nuevo contenido javascript (en una ruta local) entre las etiquetas: "<head>" y "</head>" de la página: "Inicio (1)" a través del método: "js::_addJS".
[ Nivel: 10 | Función: js::_addJS('console.log("Consulta SQL [NORMAL] del archivo o módulo: \\"bxslider\\":\\n\\rSELECT * FROM `c57tugraffiti`.`graffiti_bxslider` WHERE checked = \\\'1\\\' AND (FIND_IN_SET(\\"es\\", language) > 0 OR language = \\"all\\" OR language = \\"\\" OR language IS NULL) ORDER BY n_order ASC, created_date DESC, id DESC");', array ( 0 => 4108391984, ), 'as_content', 'head', 0, 0, 0, 1, 1, 0, 'bxslider', 'mods'); | Línea: 3360 | Archivo: /var/www/clients/client57/web318/web/system/interface/js.php | Tiempo tomado: 0.7 segundos (0.708) ]

Gestionando contenido Javascript (js::is_exist)


Se detectó a través del método: "js::is_exist" (llamado durante el módulo: "BxSlider Extension (bxslider)"), que el archivo CSS: "1340052552" ya había sido agregado con anterioridad.
[ Nivel: 10 | Función: js::is_exist(1340052552, 1); | Línea: 3348 | Archivo: /var/www/clients/client57/web318/web/system/interface/js.php | Tiempo tomado: 0.7 segundos (0.709) ]

Gestionando contenido Javascript (js::is_exist)


Se detectó a través del método: "js::is_exist" (llamado durante el módulo: "BxSlider Extension (bxslider)"), que el archivo CSS: "2618349180" ya había sido agregado con anterioridad.
[ Nivel: 10 | Función: js::is_exist(2618349180, 1); | Línea: 3348 | Archivo: /var/www/clients/client57/web318/web/system/interface/js.php | Tiempo tomado: 0.7 segundos (0.709) ]

Gestionando contenido Javascript (js::is_exist)


Se detectó a través del método: "js::is_exist" (llamado durante el módulo: "BxSlider Extension (bxslider)"), que el archivo CSS: "4098004117" ya había sido agregado con anterioridad.
[ Nivel: 10 | Función: js::is_exist(4098004117, 1); | Línea: 3348 | Archivo: /var/www/clients/client57/web318/web/system/interface/js.php | Tiempo tomado: 0.7 segundos (0.709) ]

Gestionando contenido Javascript (js::is_exist)


Se detectó a través del método: "js::is_exist" (llamado durante el módulo: "BxSlider Extension (bxslider)"), que el archivo CSS: "1956603468" ya había sido agregado con anterioridad.
[ Nivel: 10 | Función: js::is_exist(1956603468, 1); | Línea: 3348 | Archivo: /var/www/clients/client57/web318/web/system/interface/js.php | Tiempo tomado: 0.7 segundos (0.710) ]

Gestionando contenido Javascript (js::is_exist)


Se detectó a través del método: "js::is_exist" (llamado durante el módulo: "BxSlider Extension (bxslider)"), que el archivo CSS: "706863831" ya había sido agregado con anterioridad.
[ Nivel: 10 | Función: js::is_exist(706863831, 1); | Línea: 3348 | Archivo: /var/www/clients/client57/web318/web/system/interface/js.php | Tiempo tomado: 0.7 segundos (0.710) ]

Gestionando contenido Javascript (js::is_exist)


Se detectó a través del método: "js::is_exist" (llamado durante el módulo: "BxSlider Extension (bxslider)"), que el archivo CSS: "483619364" ya había sido agregado con anterioridad.
[ Nivel: 10 | Función: js::is_exist(483619364, 1); | Línea: 3348 | Archivo: /var/www/clients/client57/web318/web/system/interface/js.php | Tiempo tomado: 0.7 segundos (0.710) ]

Gestionando contenido Javascript (js::is_exist)


Se detectó a través del método: "js::is_exist" (llamado durante el módulo: "BxSlider Extension (bxslider)"), que el archivo CSS: "1369549625" ya había sido agregado con anterioridad.
[ Nivel: 10 | Función: js::is_exist(1369549625, 1); | Línea: 3348 | Archivo: /var/www/clients/client57/web318/web/system/interface/js.php | Tiempo tomado: 0.7 segundos (0.711) ]

Gestionando contenido Javascript (js::is_exist)


Se detectó a través del método: "js::is_exist" (llamado durante el módulo: "BxSlider Extension (bxslider)"), que el archivo CSS: "196524563" ya había sido agregado con anterioridad.
[ Nivel: 10 | Función: js::is_exist(196524563, 1); | Línea: 3348 | Archivo: /var/www/clients/client57/web318/web/system/interface/js.php | Tiempo tomado: 0.7 segundos (0.711) ]

Gestionando contenido Javascript (js::is_exist)


Se detectó a través del método: "js::is_exist" (llamado durante el módulo: "BxSlider Extension (bxslider)"), que el archivo CSS: "757823044" ya había sido agregado con anterioridad.
[ Nivel: 10 | Función: js::is_exist(757823044, 1); | Línea: 3348 | Archivo: /var/www/clients/client57/web318/web/system/interface/js.php | Tiempo tomado: 0.7 segundos (0.711) ]

Gestionando contenido Javascript (js::_addJS)


El módulo: "BxSlider Extension (bxslider)" ha añadido un nuevo contenido javascript (en una ruta local) entre las etiquetas: "<body>" y "</body>" de la página: "Inicio (1)" a través del método: "js::_addJS".
[ Nivel: 10 | Función: js::_addJS('bxSlider = { mode: "fade", speed: 1000, startSlide: 0, randomStart: false, infiniteLoop: true, hideControlOnEnd: false, captions: false, ticker: false, tickerHover: false, adaptiveHeight: true, adaptiveHeightSpeed: 1, video: false, responsive: true, useCSS: false, preloadImages: "visible", touchEnabled: false, swipeThreshold: 50, oneToOneTouch: true, preventDefaultSwipeX: true, preventDefaultSwipeY: false, wrapperClass: "bx-wrapper", pager: true, pagerType: "full", pagerShortSeparator: " / ", buildPager: "null", controls: true, nextText: "Next", prevText: "Prev", autoControls: false, startText: "Start", stopText: "Stop", autoControlsCombine: false, autoControlsSelector: "null", auto: true, stopAutoOnClick: true, pause: 3000, autoStart: true, autoDirection: "next", autoHover: false, autoDelay: 0, minSlides: 1, maxSlides: 1, moveSlides: 0, slideWidth: 0, shrinkItems: false, keyboardEnabled: true, ariaLive: true, ariaHidden: true }; $(".bxslider").bxSlider(bxSlider); ', array ( 0 => 757823044, ), 'as_content', 'body', 0, 0, 0, 1, 1, 0, 'bxslider', 'mods'); | Línea: 3360 | Archivo: /var/www/clients/client57/web318/web/system/interface/js.php | Tiempo tomado: 0.7 segundos (0.711) ]

Cargador de módulos (mods::_autoboot)


El módulo: "BxSlider Extension (bxslider)", tiene la etiqueta: "autoboot" habilitada y vinculando a: "./modules/bxslider/class/bxslider.php" (detectado a través del método: "mods::_autoboot").
[ Nivel: 10 | Función: mods::_autoboot(false, 'bxslider'); | Línea: 343 | Archivo: /var/www/clients/client57/web318/web/system/engine/mods.php | Tiempo tomado: 0.7 segundos (0.711) ]

Cargador de módulos (mods::add)


El módulo: "BxSlider Extension (bxslider)", ha sido cargado y ejecutado correctamente a través del método: "mods::add".
[ Nivel: 10 | Función: mods::add('bxslider'); | Línea: 739 | Archivo: /var/www/clients/client57/web318/web/system/engine/render.php | Tiempo tomado: 0.7 segundos (0.711) ]

Gestionando contenido CSS (css::is_exist)


Se detectó a través del método: "css::is_exist" (llamado durante el módulo: "BxSlider Extension (bxslider)"), que el archivo CSS: "./config/layouts/default/css/forms/forms.css" ya había sido agregado con anterioridad.
[ Nivel: 10 | Función: css::is_exist('./config/layouts/default/css/forms/forms.css'); | Línea: 1558 | Archivo: /var/www/clients/client57/web318/web/system/interface/css.php | Tiempo tomado: 0.7 segundos (0.711) ]

Gestionando contenido CSS (css::_addCSS)


El módulo: "BxSlider Extension (bxslider)" ha añadido un nuevo archivo CSS entre las etiquetas: "<head>" y "</head>" de la página: "Inicio (1)" a través del método: "css::_addCSS".
[ Nivel: 10 | Función: css::_addCSS('<link rel="stylesheet" href="./config/layouts/default/css/forms/forms.css?ft=1731970083" /> ', array ( 0 => './config/layouts/default/css/forms/forms.css', ), 'as_file', 'head', 0, 0, 0, 1); | Línea: 1811 | Archivo: /var/www/clients/client57/web318/web/system/interface/css.php | Tiempo tomado: 0.7 segundos (0.712) ]

Preparando renderización (render::_cache)


La página: "Inicio (1)" no parece estar siendo almacenada en la cache del navegador (detectado a través del método: "render::_cache").
[ Nivel: 10 | Función: render::_cache(); | Línea: 826 | Archivo: /var/www/clients/client57/web318/web/system/engine/render.php | Tiempo tomado: 0.7 segundos (0.712) ]