Gestor de Cromos JR

Para usar el gestor de cambios tienes que iniciar sesión o registrarte.

Colecciones Liga Este
Panini Megacracks
Adrenalyn Liga Española
Panini Liga Hypermotion

Todavía no hay colecciones en esta sección.

Panini Liga F
Panini Cromos
Mundiales - World Cup
Adrenalyn
Mundiales - World Cup
Panini Cromos Eurocopas
Adrenalyn Eurocopas
Topps Stickers
UEFA Champions League
Topps Stickers
UEFA Champions League
Topps Match Attax
UEFA Champions League
Topps Stickers
Eurocopas
Topps Match Attax
Eurocopas
function mostrar_gestor_de_cambios_shortcode() { global $wpdb;// 1. Obtener la colección seleccionada desde la URL (por defecto la 1) $coleccion_id = isset($_GET['coleccion_id']) ? intval($_GET['coleccion_id']) : 1;// 2. Consultar todas las colecciones ordenadas por temporada descendente $colecciones = $wpdb->get_results("SELECT * FROM colecciones ORDER BY temporada DESC");// 3. Consultar las cartas de la colección seleccionada $cartas = $wpdb->get_results( $wpdb->prepare("SELECT * FROM cartas WHERE coleccion_id = %d ORDER BY numero_carta ASC", $coleccion_id) );ob_start(); ?>
NºRefJugadorEquipoCategoríaEdición
numero_carta); ?>referencia); ?>nombre_jugador); ?>equipo); ?>categoria); ?>edicion); ?>
No hay cartas registradas en esta colección.
function mostrar_gestor_de_cambios_shortcode() { global $wpdb;// 1. Capturar parámetros de la URL $decada_sel = isset($_GET['decada']) ? sanitize_text_field($_GET['decada']) : '2020s'; $coleccion_id = isset($_GET['coleccion_id']) ? intval($_GET['coleccion_id']) : 0;// 2. Definir rangos de años según la década seleccionada $rangos_decadas = array( '2020s' => array('inicio' => '2020', 'fin' => '2029', 'label' => 'Década 2020 (Megacracks recientes)'), '2010s' => array('inicio' => '2010', 'fin' => '2019', 'label' => 'Década 2010'), '2000s' => array('inicio' => '2000', 'fin' => '2009', 'label' => 'Década 2000') );$rango_actual = isset($rangos_decadas[$decada_sel]) ? $rangos_decadas[$decada_sel] : $rangos_decadas['2020s'];// 3. Consultar colecciones pertenecientes a la década seleccionada $colecciones = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM colecciones WHERE temporada >= %s AND temporada <= %s ORDER BY temporada DESC", $rango_actual['inicio'], $rango_actual['fin'] ) );// Si no hay colección elegida pero hay resultados, tomar la primera por defecto if ($coleccion_id === 0 && !empty($colecciones)) { $coleccion_id = $colecciones[0]->id; }// 4. Consultar las cartas de la colección seleccionada $cartas = array(); if ($coleccion_id > 0) { $cartas = $wpdb->get_results( $wpdb->prepare("SELECT * FROM cartas WHERE coleccion_id = %d ORDER BY numero_carta ASC", $coleccion_id) ); }ob_start(); ?>
NºRefJugadorEquipoCategoríaEdición
numero_carta); ?>referencia); ?>nombre_jugador); ?>equipo); ?>categoria); ?>edicion); ?>
No hay cartas registradas para esta selección.
'); d.close(); d.title = titulo; function el(tag, texto, cls) { var x = d.createElement(tag); if (texto) { x.textContent = texto; } if (cls) { x.className = cls; } return x; } var h1 = el('h1', titulo); d.body.appendChild(h1); d.body.appendChild(el('p', (alias ? 'Coleccionista: ' + alias.textContent + ' · ' : '') + new Date().toLocaleDateString())); var ley = el('p', '', 'ley'); lista('.gc-leyenda .gc-ley').forEach(function (l) { var s = el('span', l.textContent); s.style.color = l.style.backgroundColor; ley.appendChild(s); }); d.body.appendChild(ley);var total = 0; lista('.gc-panel[data-panel="' + panel + '"] .gc-grupo').forEach(function (g) { var items = []; Array.prototype.slice.call(g.querySelectorAll('.gc-fila')).forEach(function (f) { var nombre = f.querySelector('span'); var q = 1; if (panel === 'repes') { q = parseInt(f.querySelector('.gc-n').value, 10) || 0; if (q < 1) { return; } } items.push({ t: nombre.textContent + (panel === 'repes' ? ' (' + q + ')' : ''), c: nombre.style.color }); total += q; }); if (!items.length) { return; } var p = el('p'); p.appendChild(el('b', g.querySelector('.gc-sec').textContent + ': ')); items.forEach(function (it, i) { var s = el('span', it.t + (i < items.length - 1 ? ', ' : '')); s.style.color = it.c; p.appendChild(s); }); d.body.appendChild(p); }); if (!total) { d.body.appendChild(el('p', 'No hay cromos en esta lista.')); } h1.textContent = titulo + ' (' + total + ')'; w.focus(); setTimeout(function () { w.print(); }, 300); }function mostrar(nombre) { lista('.gc-tab').forEach(function (b) { b.classList.toggle('gc-on', b.getAttribute('data-tab') === nombre); }); lista('.gc-panel').forEach(function (p) { if (p.getAttribute('data-panel') === nombre) { p.removeAttribute('hidden'); } else { p.setAttribute('hidden', ''); } }); if (history.replaceState) { history.replaceState(null, '', '#' + nombre); } } if (location.hash === '#repes') { mostrar('repes'); }document.addEventListener('click', function (e) { var b = e.target.closest ? e.target.closest('button') : null; if (!b) { return; }if (b.classList.contains('gc-arriba')) { arriba(); return; } if (b.classList.contains('gc-ed')) { e.preventDefault(); modalCromo(b); return; } if (b.getAttribute('data-imprimir')) { imprimir(b.getAttribute('data-imprimir')); return; } var prop = b.getAttribute('data-prop'); if (prop) { if ((prop === 'rechazar' || prop === 'anular') && !confirm('¿Seguro?')) { return; } if (prop === 'perdido' && !confirm('Vas a marcar este envío como perdido: los cromos no llegaron y seguirán como faltas. ¿Continuar?')) { return; } hecho(api('propuesta', { accion: prop, id: parseInt(b.getAttribute('data-id'), 10) })); return; } if (b.getAttribute('data-marcar')) { lista('.gc-p-' + b.getAttribute('data-marcar') + ':not(:disabled)').forEach(function (c) { c.checked = true; }); return; } if (b.id === 'gc-enviar-prop') { var marcados = function (clase) { return lista(clase + ':checked').map(function (x) { return parseInt(x.getAttribute('data-id'), 10); }); }; var mensaje = document.getElementById('gc-msg').value; if (mensaje.trim().length < 10) { alert('El mensaje debe tener al menos 10 caracteres.'); return; } var dar = marcados('.gc-p-dar'); var recibir = marcados('.gc-p-recibir'); if (!dar.length || !recibir.length) { alert('Elige al menos un cromo de cada lado.'); return; } api('propuesta', { accion: 'crear', con: parseInt(b.getAttribute('data-con'), 10), mensaje: mensaje, dar: dar, recibir: recibir }) .then(function () { var u = GC.cambios || location.pathname; location.href = u + (u.indexOf('?') > -1 ? '&' : '?') + 'vista=mis'; }) .catch(function (e) { alert(e.message); }); return; } var acc = b.getAttribute('data-gc-accion'); if (acc) { if (acc === 'desactivar' && !confirm('¿Desactivar la colección? Dejará de aparecer en los cambios y solo la verás tú.')) { return; } hecho(api('coleccion', { coleccion_id: parseInt(b.getAttribute('data-gc-col'), 10), accion: acc })); return; } if (b.id === 'gc-alias-guardar') { hecho(api('alias', { alias: document.getElementById('gc-alias').value })); return; } if (b.classList.contains('gc-tab')) { mostrar(b.getAttribute('data-tab')); return; }var sel = b.getAttribute('data-gc-sel'); if (sel) { lista('.gc-chk').forEach(function (c) { c.checked = sel === 'todo' ? true : (sel === 'nada' ? false : !c.checked); }); return; } if (b.id === 'gc-quitar-faltas') { enviar(lista('.gc-chk:checked').map(function (c) { return { id: parseInt(c.getAttribute('data-id'), 10), cantidad: 1 }; })); return; } if (b.classList.contains('gc-mas') || b.classList.contains('gc-menos')) { var n = b.parentNode.querySelector('.gc-n'); var v = parseInt(n.value, 10) || 0; n.value = Math.max(0, Math.min(98, v + (b.classList.contains('gc-mas') ? 1 : -1))); return; } if (b.id === 'gc-guardar-repes') { enviar(lista('.gc-fila[data-id]').filter(function (f) { var n = f.querySelector('.gc-n'); return (parseInt(n.value, 10) || 0) !== parseInt(n.getAttribute('data-orig'), 10); }).map(function (f) { return { id: parseInt(f.getAttribute('data-id'), 10), cantidad: (parseInt(f.querySelector('.gc-n').value, 10) || 0) + 1 }; })); return; } if (b.id === 'gc-cero-repes') { if (!confirm('¿Poner a cero todos tus repetidos? Seguirás teniendo un ejemplar de cada cromo.')) { return; } enviar(lista('.gc-fila[data-id]').filter(function (f) { return parseInt(f.querySelector('.gc-n').getAttribute('data-orig'), 10) > 0; }).map(function (f) { return { id: parseInt(f.getAttribute('data-id'), 10), cantidad: 1 }; })); return; } if (b.id === 'gc-a-faltas') { var marcados = lista('.gc-marca:checked'); if (!marcados.length) { alert('Marca primero los cromos que quieres pasar a faltas.'); return; } if (!confirm('Estos cromos volverán a tu lista de faltas y se perderán sus repetidos. ¿Continuar?')) { return; } enviar(marcados.map(function (c) { return { id: parseInt(c.closest('.gc-fila').getAttribute('data-id'), 10), cantidad: 0 }; })); } });document.addEventListener('change', function (e) { var t = e.target; var porEd = t.classList && t.classList.contains('gc-sel-ed'); var porSec = t.classList && t.classList.contains('gc-sel-sec'); if (!porEd && !porSec) { return; } var valor = t.value; if (valor === '') { return; } lista('.gc-chk').forEach(function (c) { if (c.getAttribute(porEd ? 'data-ed' : 'data-sec') === valor) { c.checked = true; } }); t.value = ''; }); // Desplegables por década: al elegir una colección se abre en la página de colección. document.addEventListener('change', function (e) { var t = e.target; if (t.classList && t.classList.contains('gc-ir') && t.value) { var u = t.getAttribute('data-url'); location.href = u + (u.indexOf('?') > -1 ? '&' : '?') + 'coleccion=' + encodeURIComponent(t.value); } }); })(); //# sourceURL=gc-app-js-after