AGGIORNAMENTO : 7 Novembre 2025 - 10:52
14.5 C
Napoli
AGGIORNAMENTO : 7 Novembre 2025 - 10:52
14.5 C
Napoli
HomeTagsGianluca cantalamessa

Gianluca cantalamessa

Cancellazione della memoria di Angelo Vassallo, depositata interrogazione Parlamentare

Il Senatore Gianluca Cantalamessa interroga il Ministero dell'Interno per sapere quali iniziative verranno prese per mantenere vivo il ricordo di Angelo Vassallo e sensibilizzare le nuove generazioni. A 14 anni dall'omicidio di Angelo Vassallo, sindaco di Acciaroli assassinato il 5 settembre 2010, il Senatore Gianluca Catalamessa (Lega) ha presentato un’interrogazione...
Ultime Notizie
Articolo pubblicato il 3 Giugno 2022 - 15:32 - Web Master
'.esc_html__('Impostazioni','default').''; array_unshift($links, $settings_link); return $links; } /** ---------------- Settings ---------------- */ public function register_settings() { $defaults = [ 'enabled' => 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']) ? max(0, intval($opts['delay_ms'])) : 0; 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); ?>

Uno per riga o separati da virgola. Se presente almeno uno, i target vengono nascosti.

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

Ritardo prima di avviare l’osservazione (ms).

DOM Triggered Hider

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']), ]; wp_register_script('sv-dth', '', [], '1.0.2', 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; } 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(){ qsa(targetSel).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(){ qsa(targetSel).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(){ anyTriggerPresent() ? hideTargets() : showTargets(); } function start(){ applyState(); var obs; try{ obs = new MutationObserver(function(){ 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); } 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();