MediaWiki:Common.js
De DerechoPedia
Nota: Después de publicar, quizás necesite actualizar la caché de su navegador para ver los cambios.
- Firefox/Safari: Mantenga presionada la tecla Shift mientras pulsa el botón Actualizar, o presiona Ctrl+F5 o Ctrl+R (⌘+R en Mac)
- Google Chrome: presione Ctrl+Shift+R (⌘+Shift+R en Mac)
- Internet Explorer/Edge: mantenga presionada Ctrl mientras pulsa Actualizar, o presione Ctrl+F5
- Opera: Presiona Ctrl+F5.
/* === DERECHOPEDIA SKIN REDESIGN JS 2025 v3.2 === */
$(function () {
var pageName = mw.config.get('wgPageName');
var isMain = (pageName === 'Página_principal');
/* ── 1. Top navigation bar ── */
var topnav = document.createElement('div');
topnav.id = 'dp-topnav';
topnav.innerHTML =
'<div class="dp-mainbar">' +
'<a class="dp-logo-block" href="/">' +
'<img class="dp-logo-img" src="https://www.derechopedia.cl/images/thumb/c/c9/Kopaitic_y_Asociados_Estudio_Laboral_Abogados_Valparaiso.png/300px-Kopaitic_y_Asociados_Estudio_Laboral_Abogados_Valparaiso.png" alt="DerechoPedia">' +
'<div><span class="dp-logo-sitename">DerechoPedia</span><span class="dp-logo-sub">Enciclopedia jurídica</span></div>' +
'</a>' +
'<div class="dp-nav-zone">' +
'<ul class="dp-nav-links">' +
'<li' + (isMain ? ' class="dp-active"' : '') + '><a href="/">Portada</a></li>' +
'<li><a href="/Categoría:Derecho_laboral">Derecho Laboral</a></li>' +
'<li><a href="/Categoría:Derecho_de_familia">Derecho de Familia</a></li>' +
'<li><a href="/Código_del_Trabajo">Normas</a></li>' +
'<li><a href="/Herramientas">Herramientas</a></li>' +
'</ul>' +
'<a class="dp-cta-btn" href="https://wa.me/56974717602" target="_blank">' +
'<span class="dp-cta-dot"></span>Consultar abogado' +
'</a>' +
'<button class="dp-hamburger" id="dp-hamburger" aria-label="Abrir menú">☰</button>' +
'</div>' +
'</div>' +
'<div class="dp-mobile-menu" id="dp-mobile-menu">' +
'<ul class="dp-mobile-nav">' +
'<li><a href="/">Portada</a></li>' +
'<li><a href="/Categoría:Derecho_laboral">Derecho Laboral</a></li>' +
'<li><a href="/Categoría:Derecho_de_familia">Derecho de Familia</a></li>' +
'<li><a href="/Código_del_Trabajo">Normas</a></li>' +
'<li><a href="/Herramientas">Herramientas</a></li>' +
'</ul>' +
'<div class="dp-mobile-search-wrap">' +
'<input type="text" class="dp-mobile-search-input" id="dp-mobile-search-input" placeholder="Buscar en DerechoPedia...">' +
'<button class="dp-mobile-search-btn" id="dp-mobile-search-btn">🔍</button>' +
'</div>' +
'<div class="dp-mobile-cta-wrap">' +
'<a class="dp-mobile-cta" href="https://wa.me/56974717602" target="_blank">💬 Consultar abogado</a>' +
'</div>' +
'</div>';
document.body.insertBefore(topnav, document.body.firstChild);
/* Toggle hamburger */
document.getElementById('dp-hamburger').addEventListener('click', function () {
var menu = document.getElementById('dp-mobile-menu');
var isOpen = menu.classList.toggle('dp-menu-open');
this.innerHTML = isOpen ? '✕' : '☰';
this.setAttribute('aria-label', isOpen ? 'Cerrar menú' : 'Abrir menú');
});
/* Buscar desde menu mobile */
function dpMobileSearch() {
var q = document.getElementById('dp-mobile-search-input').value.trim();
if (q) window.location.href = '/index.php?search=' + encodeURIComponent(q);
}
document.getElementById('dp-mobile-search-btn').addEventListener('click', dpMobileSearch);
document.getElementById('dp-mobile-search-input').addEventListener('keypress', function (e) {
if (e.key === 'Enter') dpMobileSearch();
});
/* ── 2. Kopaitic firma block ── */
var firma = document.createElement('div');
firma.id = 'dp-firma';
firma.innerHTML =
'<div class="dp-firma-head">' +
'<img class="dp-firma-logo" src="https://www.derechopedia.cl/images/thumb/c/c9/Kopaitic_y_Asociados_Estudio_Laboral_Abogados_Valparaiso.png/300px-Kopaitic_y_Asociados_Estudio_Laboral_Abogados_Valparaiso.png" alt="Kopaitic y Asociados">' +
'<div class="dp-firma-name">Kopaitic & Asociados<small>Abogados laboralistas · Viña del Mar</small></div>' +
'</div>' +
'<div class="dp-firma-lawyers">' +
'<a class="dp-sb-lawyer" href="https://kopaitic.cl/emiliokopaitic-2/" target="_blank">' +
'<img src="https://www.derechopedia.cl/images/thumb/0/06/Emilio_Kopaitic_Abogado_Laboral.jpg/200px-Emilio_Kopaitic_Abogado_Laboral.jpg" alt="Emilio Kopaitic">' +
'<div><span class="dp-sb-lawyer-name">Emilio K.</span><span class="dp-sb-lawyer-role">Socio</span></div>' +
'</a>' +
'<a class="dp-sb-lawyer" href="https://kopaitic.cl/franciscacontardo-2/" target="_blank">' +
'<img src="https://www.derechopedia.cl/images/thumb/2/2c/Francisca_Contardo_Derechopedia.jpg.JPG/200px-Francisca_Contardo_Derechopedia.jpg.JPG" alt="Francisca Contardo">' +
'<div><span class="dp-sb-lawyer-name">Francisca C.</span><span class="dp-sb-lawyer-role">Abogada</span></div>' +
'</a>' +
'</div>' +
'<a class="dp-firma-wa" href="https://wa.me/56974717602" target="_blank">💬 Hablar con un abogado</a>';
var colOne = document.getElementById('column-one');
colOne.insertBefore(firma, colOne.firstChild);
/* ── 3. Urgente card ── */
var urgente = document.createElement('a');
urgente.id = 'dp-urgente';
urgente.href = '/%C2%BFQu%C3%A9_hacer_en_caso_de_despido%3F';
urgente.innerHTML =
'<span class="dp-urg-label">¿Tienes dudas?</span>' +
'<span class="dp-urg-title">¿Te despidieron o quieres renunciar?</span>' +
'<span class="dp-urg-desc">Lee la guía antes de firmar cualquier documento.</span>' +
'<span class="dp-urg-link">Leer guía completa →</span>';
colOne.insertBefore(urgente, firma.nextSibling);
/* ── 4. Tool card + divisor ── */
var tbPortlet = document.getElementById('p-tb');
if (tbPortlet) {
var hr1 = document.createElement('hr');
hr1.className = 'dp-sb-hr';
tbPortlet.parentNode.insertBefore(hr1, tbPortlet);
var toolCard = document.createElement('a');
toolCard.className = 'dp-sb-tool';
toolCard.href = 'https://kopaitic.cl/contador-plazos-laborales/';
toolCard.target = '_blank';
toolCard.innerHTML =
'<span class="dp-sb-tool-icon">📅</span>' +
'<span class="dp-sb-tool-name">Contador de Plazos Laborales</span>' +
'<span class="dp-sb-tool-desc">Calcula fechas límite. Herramienta gratuita.</span>';
tbPortlet.parentNode.insertBefore(toolCard, tbPortlet);
}
/* ── 5. Divisores ── */
var navPortlet = document.getElementById('p-navigation');
if (navPortlet) {
var hr2 = document.createElement('hr');
hr2.className = 'dp-sb-hr';
navPortlet.parentNode.insertBefore(hr2, navPortlet);
}
var normasPortlet = document.getElementById('p-Normas');
if (normasPortlet) {
var hr3 = document.createElement('hr');
hr3.className = 'dp-sb-hr';
normasPortlet.parentNode.insertBefore(hr3, normasPortlet);
}
/* ── 6. Iconos en h3 ── */
var icons = {
'p-Principales': '🏠',
'p-Secciones': '📂',
'p-Normas': '📋',
'p-navigation': '🔗',
'p-tb': '🔧'
};
Object.keys(icons).forEach(function (id) {
var el = document.getElementById(id);
if (el) {
var h3 = el.querySelector('h3');
if (h3) h3.innerHTML = '<span style="opacity:.65;font-size:10px;margin-right:4px;">' + icons[id] + '</span>' + h3.textContent.trim();
}
});
});
