AGGIORNAMENTO : 7 Novembre 2025 - 09:55
14.5 C
Napoli
AGGIORNAMENTO : 7 Novembre 2025 - 09:55
14.5 C
Napoli
HomeTagsGigi e ross

Gigi e ross

IlluminiAMO Salerno: l'accensione dei balconi prevista per domenica 8 dicembre alle 18

Nel giorno dell'Immacolata, alle ore 18, si terrà una diretta social con Pippo Pelo. Cresce l'interesse per "Natale per Caso", lo spettacolo in programma il 13 dicembre al Teatro Verdi. ### IlluminiAMO Salerno Salerno si prepara all'iniziativa IlluminiAMO Salerno, che avrà luogo domenica 8 dicembre alle 18. Ideato da Pippo...
Ultime Notizie
Articolo pubblicato il 3 Giugno 2022 - 15:32 - Web Master
1, 'triggers' => ".vm_player_container\ndiv[id^=\"vr-\"].vr.vip\n.vr.vip\n.vr.js.vip", 'targets' => "#HB_Footer_Close_hbagency_space_30939", 'delay_ms' => 300, 'log' => 1, ]; if (!get_option(self::OPT_KEY)) { add_option(self::OPT_KEY, $defaults); } register_setting('sv_dth_group', self::OPT_KEY, [ 'type' => 'array', 'sanitize_callback' => [$this, 'sanitize_options'], 'default' => $defaults, ]); add_settings_section('sv_dth_main', 'Impostazioni principali', function () { echo '

Definisci i selettori che innescano la comparsa e il ripristino degli elementi di destinazione. Il controllo avviene in tempo reale con MutationObserver.

'; }, self::PAGE_SLUG); add_settings_field('enabled', 'Abilita controllo', [$this, 'field_enabled'], self::PAGE_SLUG, 'sv_dth_main'); add_settings_field('triggers', 'Selettori trigger', [$this, 'field_triggers'], self::PAGE_SLUG, 'sv_dth_main'); add_settings_field('targets', 'Selettori target da nascondere', [$this, 'field_targets'], self::PAGE_SLUG, 'sv_dth_main'); add_settings_field('delay_ms', 'Ritardo avvio (ms)', [$this, 'field_delay'], self::PAGE_SLUG, 'sv_dth_main'); add_settings_field('log', 'Log su console', [$this, 'field_log'], self::PAGE_SLUG, 'sv_dth_main'); } public function sanitize_options($opts) { $out = []; $out['enabled'] = empty($opts['enabled']) ? 0 : 1; $out['log'] = empty($opts['log']) ? 0 : 1; $out['delay_ms'] = isset($opts['delay_ms']) ? intval($opts['delay_ms']) : 0; if ($out['delay_ms'] < 0) $out['delay_ms'] = 0; // Normalizza triggers/targets: separa per nuova linea o virgola, trim, rimuovi vuoti, riassembla per riga foreach (['triggers','targets'] as $key) { $raw = isset($opts[$key]) ? (string)$opts[$key] : ''; $parts = preg_split('/[\r\n,]+/', $raw); $clean = []; foreach ($parts as $p) { $p = trim($p); if ($p !== '') $clean[] = $p; } $out[$key] = implode("\n", array_unique($clean)); } return $out; } public function field_enabled() { $o = get_option(self::OPT_KEY); ?>

Inserisci uno o più selettori CSS (uno per riga o separati da virgola). Se uno di questi è presente nel DOM, i target verranno nascosti.

Selettori degli elementi da nascondere/ripristinare (uno per riga o separati da virgola). Esempio: #HB_Footer_Close_hbagency_space_30939

Ritardo prima di avviare l’osservazione (in millisecondi). Utile se la pagina carica elementi tardi.

DOM Triggered Hider


Suggerimenti:

split_lines($o['triggers'] ?? ''); $targets = $this->split_lines($o['targets'] ?? ''); if (empty($triggers) || empty($targets)) return; $cfg = [ 'enabled' => true, 'triggers' => $triggers, 'targets' => $targets, 'delay' => intval($o['delay_ms'] ?? 0), 'log' => !empty($o['log']), ]; // Registra uno script "vuoto" e iniettiamo l'inline. wp_register_script('sv-dth', '', [], '1.0.0', true); wp_enqueue_script('sv-dth'); $js = '(function(){ var cfg = '.wp_json_encode($cfg).'; if(!cfg || !cfg.enabled){ return; } var triggerSel = (cfg.triggers||[]).join(",").trim(); var targetSel = (cfg.targets||[]).join(",").trim(); var delay = parseInt(cfg.delay||0,10)||0; var log = !!cfg.log; function logInfo(){ if(log) console.log.apply(console, ["[SV-DTH]"].concat([].slice.call(arguments))); } function logWarn(){ if(log) console.warn.apply(console, ["[SV-DTH]"].concat([].slice.call(arguments))); } function logErr(){ if(log) console.error.apply(console, ["[SV-DTH]"].concat([].slice.call(arguments))); } if(!triggerSel){ logWarn("Nessun selettore trigger configurato."); return; } if(!targetSel){ logWarn("Nessun selettore target configurato."); return; } // CSS di utilità per nascondere try { var st = document.createElement("style"); st.textContent = ".svdom-hidden{display:none !important;}"; document.head.appendChild(st); } catch(e){ logErr("Errore iniezione stile:", e); } function qsa(sel, root){ root = root || document; try { return Array.prototype.slice.call(root.querySelectorAll(sel)); } catch(e){ logErr("Selettore non valido:", sel, e); return []; } } function anyTriggerPresent(){ return qsa(triggerSel).length > 0; } function hideTargets(){ var nodes = qsa(targetSel); nodes.forEach(function(el){ if(!el) return; if(!el.dataset) el.dataset = {}; if(!el.dataset.svHidden){ el.dataset.svHidden = "1"; el.classList.add("svdom-hidden"); logInfo("Nascondo target", el); } }); } function showTargets(){ var nodes = qsa(targetSel); nodes.forEach(function(el){ if(!el) return; if(el.dataset && el.dataset.svHidden){ delete el.dataset.svHidden; el.classList.remove("svdom-hidden"); logInfo("Ripristino target", el); } }); } function applyState(){ if(anyTriggerPresent()){ hideTargets(); } else { showTargets(); } } function start(){ applyState(); var obs; try{ obs = new MutationObserver(function(_m){ // Semplice: ad ogni mutazione ricalcoliamo lo stato applyState(); }); obs.observe(document.documentElement, { childList: true, subtree: true, attributes: true, attributeFilter: ["class","style","id"] }); logInfo("Observer avviato. Trigger:", triggerSel, " Target:", targetSel); } catch(e){ logErr("Errore avvio observer:", e); } // Espone controlli base in window per debug window.__sv_dth = { apply: applyState, stop: function(){ if(obs){ obs.disconnect(); logInfo("Observer fermato."); } }, start: start }; } if(delay>0){ setTimeout(start, delay); } else { start(); } })();'; wp_add_inline_script('sv-dth', $js, 'after'); } private function split_lines(string $s): array { $parts = preg_split('/[\r\n,]+/', (string)$s); $out = []; foreach ($parts as $p) { $p = trim($p); if ($p !== '') $out[] = $p; } return array_values(array_unique($out)); } } new SV_Dom_Triggered_Hider();