PageSourceSearch

https://pixelstudioperu.com/wp-content/plugins/personajes-grupos-plugin/js/seo_script.js

js pixelstudioperu.com collected 2026-10-07 03:46:04 UTC 4,046 bytes, 102 lines download raw bytes

1document.addEventListener('DOMContentLoaded', function () {
2    // Leer los parámetros iniciales de pgInitialParams (definidos en PHP)
3    if (typeof pgInitialParams !== 'undefined') {
4        const { tab, ficha } = pgInitialParams;
5
6        if (tab) {
7            mostrarTab(tab);
8            //console.log(`Tab inicial cargado: ${tab}`);
9        }
10
11        if (ficha) {
12            //console.log(`Cargando ficha desde la URL inicial: ${ficha}`);
13            cargarFichaPorSlug(ficha, true); // Cargar ficha desde la URL
14        }
15    }
16
17    // Actualizar la URL dinámicamente al cambiar de tab
18    const tabButtons = document.querySelectorAll('.tabs-container .tab-button');
19    tabButtons.forEach(button => {
20        button.addEventListener('click', function () {
21            const tab = this.getAttribute('onclick').match(/mostrarTab\('(.+)'\)/)[1];
22            const newUrl = new URL(window.location.href);
23            newUrl.searchParams.set('tab', tab);
24            newUrl.searchParams.delete('ficha'); // Eliminar cualquier ficha activa
25            window.history.pushState({}, '', newUrl);
26            //console.log(`URL actualizada: ${newUrl}`);
27        });
28    });
29});
30
31// Cargar una ficha individual basada en su slug y ajustar la vista si se llama desde la URL inicial
32function cargarFichaPorSlug(slug, desdeUrl = false) {
33    mostrarPreloader(); // Mostrar el preloader mientras carga
34    fetch(pg_ajax.ajax_url, {
35        method: 'POST',
36        headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
37        body: new URLSearchParams({
38            action: 'cargar_vista_individual',
39            slug: slug // Usar el slug correctamente
40        })
41    })
42    .then(response => response.text())
43    .then(data => {
44        ocultarPreloader();
45        const container = document.querySelector('.personajes-container') || document.querySelector('.grupos-container');
46        if (!container) {
47            console.error('No se encontró el contenedor para mostrar la ficha.');
48            return;
49        }
50        container.innerHTML = data;
51        container.classList.add('single-view');
52        //console.log(`Ficha cargada con slug: ${slug}`);
53
54        // Si se carga desde la URL inicial, ajustar la vista
55        if (desdeUrl) {
56            inicializarVistaFicha(container);
57        }
58
59        // Actualizar la URL dinámica
60        const newUrl = new URL(window.location.href);
61        newUrl.searchParams.set('ficha', slug); // Añade el parámetro 'ficha'
62        newUrl.searchParams.delete('tab'); // Eliminar cualquier parámetro 'tab'
63        window.history.replaceState({}, '', newUrl);
64        //console.log(`URL actualizada a: ${newUrl}`);
65    })
66    .catch(error => {
67        console.error('Error al cargar la ficha:', error);
68        ocultarPreloader();
69    });
70}
71
72// Nueva función para ajustar la vista al cargar una ficha desde la URL inicial
73function inicializarVistaFicha(container) {
74    //console.log("Ajustando vista de ficha desde URL inicial.");
75    const searchBarContainer = document.querySelector('.search-bar-container');
76    const cargarMasBtn = document.querySelector('.cargar-mas-btn');
77    const fichaSidebar = container.querySelector('.ficha-sidebar .personaje-card, .ficha-sidebar .grupo-card');
78
79    // Ocultar la barra de búsqueda
80    if (searchBarContainer) {
81        searchBarContainer.style.display = 'none';
82        //console.log("Barra de búsqueda ocultada.");
83    }
84
85    // Ocultar el botón "Cargar Más"
86    if (cargarMasBtn) {
87        cargarMasBtn.style.display = 'none';
88        //console.log("Botón 'Cargar Más' ocultado.");
89    }
90
91    // Asegurar que el card de la ficha esté visible
92    if (fichaSidebar) {
93        fichaSidebar.style.opacity = '1';
94        fichaSidebar.style.display = 'block'; // Aseguramos que esté visible
95        fichaSidebar.classList.remove('hidden-opacity');
96        //console.log("Ficha visible y ajustada.");
97    }
98
99    // Establecer el estado de la ficha como activa
100    isFichaSidebarActive = true;
101    actualizarEstadoBotonesTabs();
102}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.