${formattedDate}` : ''}
Leer más ?
`;
newsList.appendChild(newsItem);
}
} catch (error) {
console.error('Error:', error);
// En caso de error, mostrar noticias de ejemplo
displaySampleNews();
// Mostrar mensaje de error
const errorMsg = document.createElement('div');
errorMsg.className = 'error';
errorMsg.innerHTML = `
Error al cargar las noticias en tiempo real: ${error.message}
Se muestran noticias de ejemplo. Intenta recargar la página.
`;
newsList.insertBefore(errorMsg, newsList.firstChild);
}
}
// Cargar las noticias al iniciar
fetchRSS();
// Actualizar cada 10 minutos (opcional)
setInterval(fetchRSS, 10 * 60 * 1000);
});
La delegada del Gobierno, Aránzazu Martín, ha mostrado su satisfacción por el comienzo de estos trabajos, que “suponen un ejemplo de la importancia que tiene para el Gobierno andaluz la conservación del patrimonio cultural. Además- añade la delegada- este castillo es un emblema no solo de la comarca de la Vélez, sino de nuestra provincia y de toda España y devolverle su esplendor es el objetivo que nos hemos marcado desde la Junta de Andalucía.” “La cultura y el patrimonio son sin duda el tercer pilar de riqueza de Andalucía y unos grandes motores para la recuperación económica de nuestra comunidad”, ha concluido Martín.
Anuncio El Debate 7VAndalucia
/* Estilos para hacer el anuncio adaptable */
.anuncio-container {
max-width: 100%;
margin: 0 auto;
text-align: center;
}
.anuncio-enlace {
display: inline-block;
max-width: 100%;
transition: transform 0.3s ease;
}
.anuncio-enlace:hover {
transform: scale(1.02);
}
.anuncio-imagen {
max-width: 100%;
height: auto;
border-radius: 8px;
box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}
El Castillo actualmente presenta una serie de patologías debidas principalmente a factores meteorológicos y al paso del tiempo. Algunos espacios del monumento, como la Torre del Homenaje, están cerradas al público por no encontrarse en un estado óptimo y no cumplir con requerimientos básicos de la normativa vigente (seguridad, accesibilidad, protección contra incendios, etc.).
Por su parte, el delegado territorial de Cultura, Turismo y Deporte, José Ángel Vélez, ha explicado que “con las obras de esta primera fase se abrirán estancias actualmente cerradas asegurando que se cumple con las condiciones básicas adecuadas en cuanto a habitabilidad, seguridad de utilización y a la propia estabilidad del monumento”.
Anuncio El Debate 7VAndalucia
/* Estilos para hacer el anuncio adaptable */
.anuncio-container {
max-width: 100%;
margin: 0 auto;
text-align: center;
}
.anuncio-enlace {
display: inline-block;
max-width: 100%;
transition: transform 0.3s ease;
}
.anuncio-enlace:hover {
transform: scale(1.02);
}
.anuncio-imagen {
max-width: 100%;
height: auto;
border-radius: 8px;
box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}
Ha incidido el delegado en que “el proyecto elaborado determina de manera pormenorizada la existencia y gravedad de las patologías y plantea para cada caso específico las actuaciones a acometer para su resolución, tras una valoración histórica, constructiva, patrimonial y urbanística”. Vélez ha detallado que el ámbito de actuación del proyecto incluye espacios como las cubiertas; la Torre del Homenaje, así como salas y otras estancias abiertas a la visita, donde se incluyen varios niveles.
En el nivel 1 está la sala de presentación del monumento, aseos y zaguán. En el nivel 2 el aposento y zona de acceso al mismo y en el 3 están la sala del Armario, salas del Triunfo de César, de los Trabajos de Hércules, del Tocador, de las Damas, Oratorio, Primer Cubo y Segundo Cubo. También se intervendrá en las galerías del patio principal y en la escalera principal, en el acceso al primer recinto, así como en torre Albarrana y torres anejas.
Anuncio El Debate 7VAndalucia
/* Estilos para hacer el anuncio adaptable */
.anuncio-container {
max-width: 100%;
margin: 0 auto;
text-align: center;
}
.anuncio-enlace {
display: inline-block;
max-width: 100%;
transition: transform 0.3s ease;
}
.anuncio-enlace:hover {
transform: scale(1.02);
}
.anuncio-imagen {
max-width: 100%;
height: auto;
border-radius: 8px;
box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}
La alcaldesa de Vélez Blanco, Ana María López, ha agradecido al Gobierno andaluz su "apuesta por el castillo y el ambicioso proyecto de rehabilitación que se va a poner en marcha con una inversión de más de nueve millones de euros que servirá, entre otras actuaciones, para reconstruir el patio renacentista que actualmente se encuentra en el Museo Metropolitano de Nueva York."
Obras
El proyecto de ejecución de obras en determinadas zonas del castillo contempla obras de construcción y obras de rehabilitación. Las obras de construcción son de refuerzo y restauración material para garantizar la salvaguardia y conservación de la arquitectura “original” situada en la zona defensiva en torno a la torre del homenaje y sus aledaños, sala de los tiros, torres Albarrana y de la Yedra; y de la zona palacial en torno a las salas nobles del triunfo y de la mitología y sus aledaños, salas del oratorio, armario, cubos miradores, y de entreplanta del tocador y de aposentos de las damas.
Widget de Noticias RSS
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}
body {
background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
min-height: 100vh;
display: flex;
justify-content: center;
align-items: center;
padding: 20px;
}
.news-widget {
width: 100%;
max-width: 800px;
background-color: white;
border-radius: 12px;
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
overflow: hidden;
border: 1px solid #e1e5e9;
}
.widget-header {
background: linear-gradient(135deg, #2c3e50 0%, #3498db 100%);
color: white;
padding: 20px;
text-align: center;
position: relative;
}
.widget-header h2 {
font-size: 1.8rem;
font-weight: 600;
margin-bottom: 5px;
}
.widget-header p {
opacity: 0.9;
font-size: 0.95rem;
}
.rss-icon {
position: absolute;
top: 20px;
right: 20px;
width: 24px;
height: 24px;
background-color: #ff6600;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
color: white;
font-size: 12px;
font-weight: bold;
}
.news-list {
padding: 0;
}
.news-item {
display: flex;
padding: 18px 20px;
border-bottom: 1px solid #f0f0f0;
transition: all 0.3s ease;
cursor: pointer;
width: 100%;
}
.news-item:hover {
background-color: #f8fafc;
transform: translateX(5px);
}
.news-item:last-child {
border-bottom: none;
}
.news-number {
display: flex;
align-items: center;
justify-content: center;
width: 30px;
height: 30px;
background-color: #3498db;
color: white;
border-radius: 50%;
font-weight: bold;
margin-right: 15px;
flex-shrink: 0;
}
.news-content {
flex: 1;
width: calc(100% - 45px);
}
.news-title {
font-size: 1.1rem;
font-weight: 600;
color: #2c3e50;
margin-bottom: 5px;
line-height: 1.4;
width: 100%;
word-wrap: break-word;
}
.news-date {
font-size: 0.85rem;
color: #7f8c8d;
width: 100%;
}
.external-link {
color: #3498db;
font-size: 0.9rem;
margin-top: 5px;
display: inline-block;
}
.widget-footer {
padding: 15px 20px;
text-align: center;
background-color: #f8fafc;
border-top: 1px solid #e1e5e9;
color: #7f8c8d;
font-size: 0.9rem;
}
.loading {
padding: 40px 20px;
text-align: center;
color: #7f8c8d;
}
.error {
padding: 40px 20px;
text-align: center;
color: #e74c3c;
background-color: #fdf2f2;
}
@media (max-width: 600px) {
.news-item {
flex-direction: column;
}
.news-number {
margin-bottom: 10px;
}
.widget-header h2 {
font-size: 1.5rem;
}
}
document.addEventListener('DOMContentLoaded', function() {
const rssUrl = 'https://www.noticiasdealmeria.com/rss/ultimasNoticias/';
const newsList = document.getElementById('newsList');
// Datos de ejemplo para mostrar el diseño (en caso de que el RSS no funcione)
const sampleNews = [
{
title: 'El Ayuntamiento anuncia nuevas medidas para mejorar el tráfico en el centro',
link: '#',
date: '12 de noviembre de 2025'
},
{
title: 'Inaugurado el nuevo parque empresarial con más de 50 empresas',
link: '#',
date: '11 de noviembre de 2025'
},
{
title: 'La Universidad presenta su plan de expansión para el próximo año',
link: '#',
date: '10 de noviembre de 2025'
},
{
title: 'Celebración del festival gastronómico con participantes internacionales',
link: '#',
date: '9 de noviembre de 2025'
},
{
title: 'Nuevo proyecto de sostenibilidad para proteger las zonas naturales',
link: '#',
date: '8 de noviembre de 2025'
}
];
// Función para mostrar noticias de ejemplo
function displaySampleNews() {
newsList.innerHTML = '';
sampleNews.forEach((news, index) => {
const newsItem = document.createElement('div');
newsItem.className = 'news-item';
newsItem.onclick = () => window.open(news.link, '_blank');
newsItem.innerHTML = `
${index + 1}
${news.title}
${news.date}
Leer más ?
`;
newsList.appendChild(newsItem);
});
}
// Función para obtener y parsear el RSS
async function fetchRSS() {
try {
// Usamos un proxy CORS para evitar problemas de same-origin policy
const proxyUrl = 'https://api.allorigins.win/raw?url=';
const response = await fetch(proxyUrl + encodeURIComponent(rssUrl));
if (!response.ok) {
throw new Error('Error al cargar el feed RSS');
}
const text = await response.text();
const parser = new DOMParser();
const xmlDoc = parser.parseFromString(text, 'text/xml');
// Verificar si el parseo fue exitoso
if (xmlDoc.getElementsByTagName('parsererror').length > 0) {
throw new Error('Error al parsear el XML');
}
// Obtener los elementos item del RSS
const items = xmlDoc.getElementsByTagName('item');
// Limpiar el contenido de carga
newsList.innerHTML = '';
// Mostrar las primeras 5 noticias
const maxItems = Math.min(items.length, 5);
if (maxItems === 0) {
newsList.innerHTML = '
No se encontraron noticias en el feed RSS.';
return;
}
for (let i = 0; i < maxItems; i++) {
const item = items[i];
const title = item.getElementsByTagName('title')[0]?.textContent || 'Título no disponible';
const link = item.getElementsByTagName('link')[0]?.textContent || '#';
const pubDate = item.getElementsByTagName('pubDate')[0]?.textContent || '';
const newsItem = document.createElement('div');
newsItem.className = 'news-item';
newsItem.onclick = () => window.open(link, '_blank');
// Formatear la fecha
let formattedDate = '';
if (pubDate) {
const date = new Date(pubDate);
formattedDate = date.toLocaleDateString('es-ES', {
day: 'numeric',
month: 'long',
year: 'numeric'
});
}
newsItem.innerHTML = `
${i + 1}
${title}
${formattedDate ? `
${formattedDate}` : ''}
Leer más ?
`;
newsList.appendChild(newsItem);
}
} catch (error) {
console.error('Error:', error);
// En caso de error, mostrar noticias de ejemplo
displaySampleNews();
// Mostrar mensaje de error
const errorMsg = document.createElement('div');
errorMsg.className = 'error';
errorMsg.innerHTML = `
Error al cargar las noticias en tiempo real: ${error.message}
Se muestran noticias de ejemplo. Intenta recargar la página.
`;
newsList.insertBefore(errorMsg, newsList.firstChild);
}
}
// Cargar las noticias al iniciar
fetchRSS();
// Actualizar cada 10 minutos (opcional)
setInterval(fetchRSS, 10 * 60 * 1000);
});
En segundo lugar, las obras de rehabilitación son de adecuación de instalaciones de uso y funcionamiento, que permiten la visita pública y la puesta en valor de la mayor parte de las salas del castillo.
Widget de Noticias RSS
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}
body {
background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
min-height: 100vh;
display: flex;
justify-content: center;
align-items: center;
padding: 20px;
}
.news-widget {
width: 100%;
max-width: 800px;
background-color: white;
border-radius: 12px;
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
overflow: hidden;
border: 1px solid #e1e5e9;
}
.widget-header {
background: linear-gradient(135deg, #2c3e50 0%, #3498db 100%);
color: white;
padding: 20px;
text-align: center;
position: relative;
}
.widget-header h2 {
font-size: 1.8rem;
font-weight: 600;
margin-bottom: 5px;
}
.widget-header p {
opacity: 0.9;
font-size: 0.95rem;
}
.rss-icon {
position: absolute;
top: 20px;
right: 20px;
width: 24px;
height: 24px;
background-color: #ff6600;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
color: white;
font-size: 12px;
font-weight: bold;
}
.news-list {
padding: 0;
}
.news-item {
display: flex;
padding: 18px 20px;
border-bottom: 1px solid #f0f0f0;
transition: all 0.3s ease;
cursor: pointer;
width: 100%;
}
.news-item:hover {
background-color: #f8fafc;
transform: translateX(5px);
}
.news-item:last-child {
border-bottom: none;
}
.news-number {
display: flex;
align-items: center;
justify-content: center;
width: 30px;
height: 30px;
background-color: #3498db;
color: white;
border-radius: 50%;
font-weight: bold;
margin-right: 15px;
flex-shrink: 0;
}
.news-content {
flex: 1;
width: calc(100% - 45px);
}
.news-title {
font-size: 1.1rem;
font-weight: 600;
color: #2c3e50;
margin-bottom: 5px;
line-height: 1.4;
width: 100%;
word-wrap: break-word;
}
.news-date {
font-size: 0.85rem;
color: #7f8c8d;
width: 100%;
}
.external-link {
color: #3498db;
font-size: 0.9rem;
margin-top: 5px;
display: inline-block;
}
.widget-footer {
padding: 15px 20px;
text-align: center;
background-color: #f8fafc;
border-top: 1px solid #e1e5e9;
color: #7f8c8d;
font-size: 0.9rem;
}
.loading {
padding: 40px 20px;
text-align: center;
color: #7f8c8d;
}
.error {
padding: 40px 20px;
text-align: center;
color: #e74c3c;
background-color: #fdf2f2;
}
@media (max-width: 600px) {
.news-item {
flex-direction: column;
}
.news-number {
margin-bottom: 10px;
}
.widget-header h2 {
font-size: 1.5rem;
}
}
document.addEventListener('DOMContentLoaded', function() {
const rssUrl = 'https://www.noticiasdealmeria.com/rss/ultimasNoticias/';
const newsList = document.getElementById('newsList');
// Datos de ejemplo para mostrar el diseño (en caso de que el RSS no funcione)
const sampleNews = [
{
title: 'El Ayuntamiento anuncia nuevas medidas para mejorar el tráfico en el centro',
link: '#',
date: '12 de noviembre de 2025'
},
{
title: 'Inaugurado el nuevo parque empresarial con más de 50 empresas',
link: '#',
date: '11 de noviembre de 2025'
},
{
title: 'La Universidad presenta su plan de expansión para el próximo año',
link: '#',
date: '10 de noviembre de 2025'
},
{
title: 'Celebración del festival gastronómico con participantes internacionales',
link: '#',
date: '9 de noviembre de 2025'
},
{
title: 'Nuevo proyecto de sostenibilidad para proteger las zonas naturales',
link: '#',
date: '8 de noviembre de 2025'
}
];
// Función para mostrar noticias de ejemplo
function displaySampleNews() {
newsList.innerHTML = '';
sampleNews.forEach((news, index) => {
const newsItem = document.createElement('div');
newsItem.className = 'news-item';
newsItem.onclick = () => window.open(news.link, '_blank');
newsItem.innerHTML = `
${index + 1}
${news.title}
${news.date}
Leer más ?
`;
newsList.appendChild(newsItem);
});
}
// Función para obtener y parsear el RSS
async function fetchRSS() {
try {
// Usamos un proxy CORS para evitar problemas de same-origin policy
const proxyUrl = 'https://api.allorigins.win/raw?url=';
const response = await fetch(proxyUrl + encodeURIComponent(rssUrl));
if (!response.ok) {
throw new Error('Error al cargar el feed RSS');
}
const text = await response.text();
const parser = new DOMParser();
const xmlDoc = parser.parseFromString(text, 'text/xml');
// Verificar si el parseo fue exitoso
if (xmlDoc.getElementsByTagName('parsererror').length > 0) {
throw new Error('Error al parsear el XML');
}
// Obtener los elementos item del RSS
const items = xmlDoc.getElementsByTagName('item');
// Limpiar el contenido de carga
newsList.innerHTML = '';
// Mostrar las primeras 5 noticias
const maxItems = Math.min(items.length, 5);
if (maxItems === 0) {
newsList.innerHTML = '
No se encontraron noticias en el feed RSS.';
return;
}
for (let i = 0; i < maxItems; i++) {
const item = items[i];
const title = item.getElementsByTagName('title')[0]?.textContent || 'Título no disponible';
const link = item.getElementsByTagName('link')[0]?.textContent || '#';
const pubDate = item.getElementsByTagName('pubDate')[0]?.textContent || '';
const newsItem = document.createElement('div');
newsItem.className = 'news-item';
newsItem.onclick = () => window.open(link, '_blank');
// Formatear la fecha
let formattedDate = '';
if (pubDate) {
const date = new Date(pubDate);
formattedDate = date.toLocaleDateString('es-ES', {
day: 'numeric',
month: 'long',
year: 'numeric'
});
}
newsItem.innerHTML = `
${i + 1}
${title}
${formattedDate ? `
${formattedDate}` : ''}
Leer más ?
`;
newsList.appendChild(newsItem);
}
} catch (error) {
console.error('Error:', error);
// En caso de error, mostrar noticias de ejemplo
displaySampleNews();
// Mostrar mensaje de error
const errorMsg = document.createElement('div');
errorMsg.className = 'error';
errorMsg.innerHTML = `
Error al cargar las noticias en tiempo real: ${error.message}
Se muestran noticias de ejemplo. Intenta recargar la página.
`;
newsList.insertBefore(errorMsg, newsList.firstChild);
}
}
// Cargar las noticias al iniciar
fetchRSS();
// Actualizar cada 10 minutos (opcional)
setInterval(fetchRSS, 10 * 60 * 1000);
});
Las obras de restauración material afrontan la consolidación y restauración de muros originales de interiores y exteriores de tapiales, de mamposterías y de sillares, con el fin de frenar los procesos avanzados de deterioro por causas medioambientales, de la acción del agua, biológicas o antrópicas.
Anuncio El Debate 7VAndalucia
/* Estilos para hacer el anuncio adaptable */
.anuncio-container {
max-width: 100%;
margin: 0 auto;
text-align: center;
}
.anuncio-enlace {
display: inline-block;
max-width: 100%;
transition: transform 0.3s ease;
}
.anuncio-enlace:hover {
transform: scale(1.02);
}
.anuncio-imagen {
max-width: 100%;
height: auto;
border-radius: 8px;
box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}
Las obras de adecuación de instalaciones de uso y funcionamiento representan la modernización de estancias y recorridos de accesos en cumplimiento de la seguridad, funcionalidad y habitabilidad exigidas.
Se habilita la visita pública al sector defensivo con nuevas entramados de madera resistente y durable; nuevas barandillas de acero; impermeabilización y repavimentación de zonas deterioradas de cubierta, rejas o barandales de acero anticaídas, renovación de peldañeado, ampliación del ancho de la escalera y sustitución del forjado de madera estructural en la torre del homenaje, alcanzando el acceso hasta la cubierta desde donde puede recrearse el paisaje de las sierras de los entornos próximos y lejanos, entre otros elementos medioambientales e históricos de la que fue frontera del reino nazarí.
Widget de Noticias RSS
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}
body {
background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
min-height: 100vh;
display: flex;
justify-content: center;
align-items: center;
padding: 20px;
}
.news-widget {
width: 100%;
max-width: 800px;
background-color: white;
border-radius: 12px;
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
overflow: hidden;
border: 1px solid #e1e5e9;
}
.widget-header {
background: linear-gradient(135deg, #2c3e50 0%, #3498db 100%);
color: white;
padding: 20px;
text-align: center;
position: relative;
}
.widget-header h2 {
font-size: 1.8rem;
font-weight: 600;
margin-bottom: 5px;
}
.widget-header p {
opacity: 0.9;
font-size: 0.95rem;
}
.rss-icon {
position: absolute;
top: 20px;
right: 20px;
width: 24px;
height: 24px;
background-color: #ff6600;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
color: white;
font-size: 12px;
font-weight: bold;
}
.news-list {
padding: 0;
}
.news-item {
display: flex;
padding: 18px 20px;
border-bottom: 1px solid #f0f0f0;
transition: all 0.3s ease;
cursor: pointer;
width: 100%;
}
.news-item:hover {
background-color: #f8fafc;
transform: translateX(5px);
}
.news-item:last-child {
border-bottom: none;
}
.news-number {
display: flex;
align-items: center;
justify-content: center;
width: 30px;
height: 30px;
background-color: #3498db;
color: white;
border-radius: 50%;
font-weight: bold;
margin-right: 15px;
flex-shrink: 0;
}
.news-content {
flex: 1;
width: calc(100% - 45px);
}
.news-title {
font-size: 1.1rem;
font-weight: 600;
color: #2c3e50;
margin-bottom: 5px;
line-height: 1.4;
width: 100%;
word-wrap: break-word;
}
.news-date {
font-size: 0.85rem;
color: #7f8c8d;
width: 100%;
}
.external-link {
color: #3498db;
font-size: 0.9rem;
margin-top: 5px;
display: inline-block;
}
.widget-footer {
padding: 15px 20px;
text-align: center;
background-color: #f8fafc;
border-top: 1px solid #e1e5e9;
color: #7f8c8d;
font-size: 0.9rem;
}
.loading {
padding: 40px 20px;
text-align: center;
color: #7f8c8d;
}
.error {
padding: 40px 20px;
text-align: center;
color: #e74c3c;
background-color: #fdf2f2;
}
@media (max-width: 600px) {
.news-item {
flex-direction: column;
}
.news-number {
margin-bottom: 10px;
}
.widget-header h2 {
font-size: 1.5rem;
}
}
document.addEventListener('DOMContentLoaded', function() {
const rssUrl = 'https://www.noticiasdealmeria.com/rss/ultimasNoticias/';
const newsList = document.getElementById('newsList');
// Datos de ejemplo para mostrar el diseño (en caso de que el RSS no funcione)
const sampleNews = [
{
title: 'El Ayuntamiento anuncia nuevas medidas para mejorar el tráfico en el centro',
link: '#',
date: '12 de noviembre de 2025'
},
{
title: 'Inaugurado el nuevo parque empresarial con más de 50 empresas',
link: '#',
date: '11 de noviembre de 2025'
},
{
title: 'La Universidad presenta su plan de expansión para el próximo año',
link: '#',
date: '10 de noviembre de 2025'
},
{
title: 'Celebración del festival gastronómico con participantes internacionales',
link: '#',
date: '9 de noviembre de 2025'
},
{
title: 'Nuevo proyecto de sostenibilidad para proteger las zonas naturales',
link: '#',
date: '8 de noviembre de 2025'
}
];
// Función para mostrar noticias de ejemplo
function displaySampleNews() {
newsList.innerHTML = '';
sampleNews.forEach((news, index) => {
const newsItem = document.createElement('div');
newsItem.className = 'news-item';
newsItem.onclick = () => window.open(news.link, '_blank');
newsItem.innerHTML = `
${index + 1}
${news.title}
${news.date}
Leer más ?
`;
newsList.appendChild(newsItem);
});
}
// Función para obtener y parsear el RSS
async function fetchRSS() {
try {
// Usamos un proxy CORS para evitar problemas de same-origin policy
const proxyUrl = 'https://api.allorigins.win/raw?url=';
const response = await fetch(proxyUrl + encodeURIComponent(rssUrl));
if (!response.ok) {
throw new Error('Error al cargar el feed RSS');
}
const text = await response.text();
const parser = new DOMParser();
const xmlDoc = parser.parseFromString(text, 'text/xml');
// Verificar si el parseo fue exitoso
if (xmlDoc.getElementsByTagName('parsererror').length > 0) {
throw new Error('Error al parsear el XML');
}
// Obtener los elementos item del RSS
const items = xmlDoc.getElementsByTagName('item');
// Limpiar el contenido de carga
newsList.innerHTML = '';
// Mostrar las primeras 5 noticias
const maxItems = Math.min(items.length, 5);
if (maxItems === 0) {
newsList.innerHTML = '
No se encontraron noticias en el feed RSS.';
return;
}
for (let i = 0; i < maxItems; i++) {
const item = items[i];
const title = item.getElementsByTagName('title')[0]?.textContent || 'Título no disponible';
const link = item.getElementsByTagName('link')[0]?.textContent || '#';
const pubDate = item.getElementsByTagName('pubDate')[0]?.textContent || '';
const newsItem = document.createElement('div');
newsItem.className = 'news-item';
newsItem.onclick = () => window.open(link, '_blank');
// Formatear la fecha
let formattedDate = '';
if (pubDate) {
const date = new Date(pubDate);
formattedDate = date.toLocaleDateString('es-ES', {
day: 'numeric',
month: 'long',
year: 'numeric'
});
}
newsItem.innerHTML = `
${i + 1}
${title}
${formattedDate ? `
${formattedDate}` : ''}
Leer más ?
`;
newsList.appendChild(newsItem);
}
} catch (error) {
console.error('Error:', error);
// En caso de error, mostrar noticias de ejemplo
displaySampleNews();
// Mostrar mensaje de error
const errorMsg = document.createElement('div');
errorMsg.className = 'error';
errorMsg.innerHTML = `
Error al cargar las noticias en tiempo real: ${error.message}
Se muestran noticias de ejemplo. Intenta recargar la página.
`;
newsList.insertBefore(errorMsg, newsList.firstChild);
}
}
// Cargar las noticias al iniciar
fetchRSS();
// Actualizar cada 10 minutos (opcional)
setInterval(fetchRSS, 10 * 60 * 1000);
});
Tras la rehabilitación de la torre del homenaje actualmente clausurada, se podrán poner en valor tras la reforma de accesibilidad, las salas de ingreso, de la guardia y de la armería; esta última con sustitución del forjado construido en los años 80 del siglo XX, debido al agotamiento mecánico para resistir los esfuerzos de flexión como consecuencia de la putrefacción.
Fase II
Widget de Noticias RSS
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}
body {
background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
min-height: 100vh;
display: flex;
justify-content: center;
align-items: center;
padding: 20px;
}
.news-widget {
width: 100%;
max-width: 800px;
background-color: white;
border-radius: 12px;
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
overflow: hidden;
border: 1px solid #e1e5e9;
}
.widget-header {
background: linear-gradient(135deg, #2c3e50 0%, #3498db 100%);
color: white;
padding: 20px;
text-align: center;
position: relative;
}
.widget-header h2 {
font-size: 1.8rem;
font-weight: 600;
margin-bottom: 5px;
}
.widget-header p {
opacity: 0.9;
font-size: 0.95rem;
}
.rss-icon {
position: absolute;
top: 20px;
right: 20px;
width: 24px;
height: 24px;
background-color: #ff6600;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
color: white;
font-size: 12px;
font-weight: bold;
}
.news-list {
padding: 0;
}
.news-item {
display: flex;
padding: 18px 20px;
border-bottom: 1px solid #f0f0f0;
transition: all 0.3s ease;
cursor: pointer;
width: 100%;
}
.news-item:hover {
background-color: #f8fafc;
transform: translateX(5px);
}
.news-item:last-child {
border-bottom: none;
}
.news-number {
display: flex;
align-items: center;
justify-content: center;
width: 30px;
height: 30px;
background-color: #3498db;
color: white;
border-radius: 50%;
font-weight: bold;
margin-right: 15px;
flex-shrink: 0;
}
.news-content {
flex: 1;
width: calc(100% - 45px);
}
.news-title {
font-size: 1.1rem;
font-weight: 600;
color: #2c3e50;
margin-bottom: 5px;
line-height: 1.4;
width: 100%;
word-wrap: break-word;
}
.news-date {
font-size: 0.85rem;
color: #7f8c8d;
width: 100%;
}
.external-link {
color: #3498db;
font-size: 0.9rem;
margin-top: 5px;
display: inline-block;
}
.widget-footer {
padding: 15px 20px;
text-align: center;
background-color: #f8fafc;
border-top: 1px solid #e1e5e9;
color: #7f8c8d;
font-size: 0.9rem;
}
.loading {
padding: 40px 20px;
text-align: center;
color: #7f8c8d;
}
.error {
padding: 40px 20px;
text-align: center;
color: #e74c3c;
background-color: #fdf2f2;
}
@media (max-width: 600px) {
.news-item {
flex-direction: column;
}
.news-number {
margin-bottom: 10px;
}
.widget-header h2 {
font-size: 1.5rem;
}
}
document.addEventListener('DOMContentLoaded', function() {
const rssUrl = 'https://www.noticiasdealmeria.com/rss/ultimasNoticias/';
const newsList = document.getElementById('newsList');
// Datos de ejemplo para mostrar el diseño (en caso de que el RSS no funcione)
const sampleNews = [
{
title: 'El Ayuntamiento anuncia nuevas medidas para mejorar el tráfico en el centro',
link: '#',
date: '12 de noviembre de 2025'
},
{
title: 'Inaugurado el nuevo parque empresarial con más de 50 empresas',
link: '#',
date: '11 de noviembre de 2025'
},
{
title: 'La Universidad presenta su plan de expansión para el próximo año',
link: '#',
date: '10 de noviembre de 2025'
},
{
title: 'Celebración del festival gastronómico con participantes internacionales',
link: '#',
date: '9 de noviembre de 2025'
},
{
title: 'Nuevo proyecto de sostenibilidad para proteger las zonas naturales',
link: '#',
date: '8 de noviembre de 2025'
}
];
// Función para mostrar noticias de ejemplo
function displaySampleNews() {
newsList.innerHTML = '';
sampleNews.forEach((news, index) => {
const newsItem = document.createElement('div');
newsItem.className = 'news-item';
newsItem.onclick = () => window.open(news.link, '_blank');
newsItem.innerHTML = `
${index + 1}
${news.title}
${news.date}
Leer más ?
`;
newsList.appendChild(newsItem);
});
}
// Función para obtener y parsear el RSS
async function fetchRSS() {
try {
// Usamos un proxy CORS para evitar problemas de same-origin policy
const proxyUrl = 'https://api.allorigins.win/raw?url=';
const response = await fetch(proxyUrl + encodeURIComponent(rssUrl));
if (!response.ok) {
throw new Error('Error al cargar el feed RSS');
}
const text = await response.text();
const parser = new DOMParser();
const xmlDoc = parser.parseFromString(text, 'text/xml');
// Verificar si el parseo fue exitoso
if (xmlDoc.getElementsByTagName('parsererror').length > 0) {
throw new Error('Error al parsear el XML');
}
// Obtener los elementos item del RSS
const items = xmlDoc.getElementsByTagName('item');
// Limpiar el contenido de carga
newsList.innerHTML = '';
// Mostrar las primeras 5 noticias
const maxItems = Math.min(items.length, 5);
if (maxItems === 0) {
newsList.innerHTML = '
No se encontraron noticias en el feed RSS.';
return;
}
for (let i = 0; i < maxItems; i++) {
const item = items[i];
const title = item.getElementsByTagName('title')[0]?.textContent || 'Título no disponible';
const link = item.getElementsByTagName('link')[0]?.textContent || '#';
const pubDate = item.getElementsByTagName('pubDate')[0]?.textContent || '';
const newsItem = document.createElement('div');
newsItem.className = 'news-item';
newsItem.onclick = () => window.open(link, '_blank');
// Formatear la fecha
let formattedDate = '';
if (pubDate) {
const date = new Date(pubDate);
formattedDate = date.toLocaleDateString('es-ES', {
day: 'numeric',
month: 'long',
year: 'numeric'
});
}
newsItem.innerHTML = `
${i + 1}
${title}
${formattedDate ? `
${formattedDate}` : ''}
Leer más ?
`;
newsList.appendChild(newsItem);
}
} catch (error) {
console.error('Error:', error);
// En caso de error, mostrar noticias de ejemplo
displaySampleNews();
// Mostrar mensaje de error
const errorMsg = document.createElement('div');
errorMsg.className = 'error';
errorMsg.innerHTML = `
Error al cargar las noticias en tiempo real: ${error.message}
Se muestran noticias de ejemplo. Intenta recargar la página.
`;
newsList.insertBefore(errorMsg, newsList.firstChild);
}
}
// Cargar las noticias al iniciar
fetchRSS();
// Actualizar cada 10 minutos (opcional)
setInterval(fetchRSS, 10 * 60 * 1000);
});
La siguiente fase del proyecto que abordarán será la reconstrucción del patio del Castillo de Vélez Blanco. En 1904 el atrio renacentista fue desmontado para formar parte de la vivienda particular del magnate George Blumenthal, en Nueva York. Tras la muerte de éste, fue instalado en el Metropolitan Museum. La intervención basada en el principio de veracidad histórica reproducirá mediante mecanizado a partir de escaneados 3D el atrio renacentista y su escalera principal. Para ello será necesaria una inversión de 3.092.862,10 euros que se ejecutará con fondos FEDER
Fase III
Widget de Noticias RSS
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}
body {
background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
min-height: 100vh;
display: flex;
justify-content: center;
align-items: center;
padding: 20px;
}
.news-widget {
width: 100%;
max-width: 800px;
background-color: white;
border-radius: 12px;
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
overflow: hidden;
border: 1px solid #e1e5e9;
}
.widget-header {
background: linear-gradient(135deg, #2c3e50 0%, #3498db 100%);
color: white;
padding: 20px;
text-align: center;
position: relative;
}
.widget-header h2 {
font-size: 1.8rem;
font-weight: 600;
margin-bottom: 5px;
}
.widget-header p {
opacity: 0.9;
font-size: 0.95rem;
}
.rss-icon {
position: absolute;
top: 20px;
right: 20px;
width: 24px;
height: 24px;
background-color: #ff6600;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
color: white;
font-size: 12px;
font-weight: bold;
}
.news-list {
padding: 0;
}
.news-item {
display: flex;
padding: 18px 20px;
border-bottom: 1px solid #f0f0f0;
transition: all 0.3s ease;
cursor: pointer;
width: 100%;
}
.news-item:hover {
background-color: #f8fafc;
transform: translateX(5px);
}
.news-item:last-child {
border-bottom: none;
}
.news-number {
display: flex;
align-items: center;
justify-content: center;
width: 30px;
height: 30px;
background-color: #3498db;
color: white;
border-radius: 50%;
font-weight: bold;
margin-right: 15px;
flex-shrink: 0;
}
.news-content {
flex: 1;
width: calc(100% - 45px);
}
.news-title {
font-size: 1.1rem;
font-weight: 600;
color: #2c3e50;
margin-bottom: 5px;
line-height: 1.4;
width: 100%;
word-wrap: break-word;
}
.news-date {
font-size: 0.85rem;
color: #7f8c8d;
width: 100%;
}
.external-link {
color: #3498db;
font-size: 0.9rem;
margin-top: 5px;
display: inline-block;
}
.widget-footer {
padding: 15px 20px;
text-align: center;
background-color: #f8fafc;
border-top: 1px solid #e1e5e9;
color: #7f8c8d;
font-size: 0.9rem;
}
.loading {
padding: 40px 20px;
text-align: center;
color: #7f8c8d;
}
.error {
padding: 40px 20px;
text-align: center;
color: #e74c3c;
background-color: #fdf2f2;
}
@media (max-width: 600px) {
.news-item {
flex-direction: column;
}
.news-number {
margin-bottom: 10px;
}
.widget-header h2 {
font-size: 1.5rem;
}
}
document.addEventListener('DOMContentLoaded', function() {
const rssUrl = 'https://www.noticiasdealmeria.com/rss/ultimasNoticias/';
const newsList = document.getElementById('newsList');
// Datos de ejemplo para mostrar el diseño (en caso de que el RSS no funcione)
const sampleNews = [
{
title: 'El Ayuntamiento anuncia nuevas medidas para mejorar el tráfico en el centro',
link: '#',
date: '12 de noviembre de 2025'
},
{
title: 'Inaugurado el nuevo parque empresarial con más de 50 empresas',
link: '#',
date: '11 de noviembre de 2025'
},
{
title: 'La Universidad presenta su plan de expansión para el próximo año',
link: '#',
date: '10 de noviembre de 2025'
},
{
title: 'Celebración del festival gastronómico con participantes internacionales',
link: '#',
date: '9 de noviembre de 2025'
},
{
title: 'Nuevo proyecto de sostenibilidad para proteger las zonas naturales',
link: '#',
date: '8 de noviembre de 2025'
}
];
// Función para mostrar noticias de ejemplo
function displaySampleNews() {
newsList.innerHTML = '';
sampleNews.forEach((news, index) => {
const newsItem = document.createElement('div');
newsItem.className = 'news-item';
newsItem.onclick = () => window.open(news.link, '_blank');
newsItem.innerHTML = `
${index + 1}
${news.title}
${news.date}
Leer más ?
`;
newsList.appendChild(newsItem);
});
}
// Función para obtener y parsear el RSS
async function fetchRSS() {
try {
// Usamos un proxy CORS para evitar problemas de same-origin policy
const proxyUrl = 'https://api.allorigins.win/raw?url=';
const response = await fetch(proxyUrl + encodeURIComponent(rssUrl));
if (!response.ok) {
throw new Error('Error al cargar el feed RSS');
}
const text = await response.text();
const parser = new DOMParser();
const xmlDoc = parser.parseFromString(text, 'text/xml');
// Verificar si el parseo fue exitoso
if (xmlDoc.getElementsByTagName('parsererror').length > 0) {
throw new Error('Error al parsear el XML');
}
// Obtener los elementos item del RSS
const items = xmlDoc.getElementsByTagName('item');
// Limpiar el contenido de carga
newsList.innerHTML = '';
// Mostrar las primeras 5 noticias
const maxItems = Math.min(items.length, 5);
if (maxItems === 0) {
newsList.innerHTML = '
No se encontraron noticias en el feed RSS.';
return;
}
for (let i = 0; i < maxItems; i++) {
const item = items[i];
const title = item.getElementsByTagName('title')[0]?.textContent || 'Título no disponible';
const link = item.getElementsByTagName('link')[0]?.textContent || '#';
const pubDate = item.getElementsByTagName('pubDate')[0]?.textContent || '';
const newsItem = document.createElement('div');
newsItem.className = 'news-item';
newsItem.onclick = () => window.open(link, '_blank');
// Formatear la fecha
let formattedDate = '';
if (pubDate) {
const date = new Date(pubDate);
formattedDate = date.toLocaleDateString('es-ES', {
day: 'numeric',
month: 'long',
year: 'numeric'
});
}
newsItem.innerHTML = `
${i + 1}
${title}
${formattedDate ? `
${formattedDate}` : ''}
Leer más ?
`;
newsList.appendChild(newsItem);
}
} catch (error) {
console.error('Error:', error);
// En caso de error, mostrar noticias de ejemplo
displaySampleNews();
// Mostrar mensaje de error
const errorMsg = document.createElement('div');
errorMsg.className = 'error';
errorMsg.innerHTML = `
Error al cargar las noticias en tiempo real: ${error.message}
Se muestran noticias de ejemplo. Intenta recargar la página.
`;
newsList.insertBefore(errorMsg, newsList.firstChild);
}
}
// Cargar las noticias al iniciar
fetchRSS();
// Actualizar cada 10 minutos (opcional)
setInterval(fetchRSS, 10 * 60 * 1000);
});
Tras la recreación fidedigna del patio del Castillo de Vélez Blanco, la última fase del programa de puesta en valor será la intervención en el exterior de la fortaleza para restaurar y conservar la envolvente, realizar mejoras ambientales y paisajísticas y la iluminación monumental. En el interior se completará la dotación de instalaciones, culminando con la musealización para la comprensión e interpretación del monumento. Las obras de conservación, paisajísticas, iluminación monumental y musealización cuentan con un presupuesto de 3.750.000 euros que serán financiados con Fondos FEDER
Widget de Noticias RSS
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}
body {
background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
min-height: 100vh;
display: flex;
justify-content: center;
align-items: center;
padding: 20px;
}
.news-widget {
width: 100%;
max-width: 800px;
background-color: white;
border-radius: 12px;
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
overflow: hidden;
border: 1px solid #e1e5e9;
}
.widget-header {
background: linear-gradient(135deg, #2c3e50 0%, #3498db 100%);
color: white;
padding: 20px;
text-align: center;
position: relative;
}
.widget-header h2 {
font-size: 1.8rem;
font-weight: 600;
margin-bottom: 5px;
}
.widget-header p {
opacity: 0.9;
font-size: 0.95rem;
}
.rss-icon {
position: absolute;
top: 20px;
right: 20px;
width: 24px;
height: 24px;
background-color: #ff6600;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
color: white;
font-size: 12px;
font-weight: bold;
}
.news-list {
padding: 0;
}
.news-item {
display: flex;
padding: 18px 20px;
border-bottom: 1px solid #f0f0f0;
transition: all 0.3s ease;
cursor: pointer;
width: 100%;
}
.news-item:hover {
background-color: #f8fafc;
transform: translateX(5px);
}
.news-item:last-child {
border-bottom: none;
}
.news-number {
display: flex;
align-items: center;
justify-content: center;
width: 30px;
height: 30px;
background-color: #3498db;
color: white;
border-radius: 50%;
font-weight: bold;
margin-right: 15px;
flex-shrink: 0;
}
.news-content {
flex: 1;
width: calc(100% - 45px);
}
.news-title {
font-size: 1.1rem;
font-weight: 600;
color: #2c3e50;
margin-bottom: 5px;
line-height: 1.4;
width: 100%;
word-wrap: break-word;
}
.news-date {
font-size: 0.85rem;
color: #7f8c8d;
width: 100%;
}
.external-link {
color: #3498db;
font-size: 0.9rem;
margin-top: 5px;
display: inline-block;
}
.widget-footer {
padding: 15px 20px;
text-align: center;
background-color: #f8fafc;
border-top: 1px solid #e1e5e9;
color: #7f8c8d;
font-size: 0.9rem;
}
.loading {
padding: 40px 20px;
text-align: center;
color: #7f8c8d;
}
.error {
padding: 40px 20px;
text-align: center;
color: #e74c3c;
background-color: #fdf2f2;
}
@media (max-width: 600px) {
.news-item {
flex-direction: column;
}
.news-number {
margin-bottom: 10px;
}
.widget-header h2 {
font-size: 1.5rem;
}
}
document.addEventListener('DOMContentLoaded', function() {
const rssUrl = 'https://www.noticiasdealmeria.com/rss/ultimasNoticias/';
const newsList = document.getElementById('newsList');
// Datos de ejemplo para mostrar el diseño (en caso de que el RSS no funcione)
const sampleNews = [
{
title: 'El Ayuntamiento anuncia nuevas medidas para mejorar el tráfico en el centro',
link: '#',
date: '12 de noviembre de 2025'
},
{
title: 'Inaugurado el nuevo parque empresarial con más de 50 empresas',
link: '#',
date: '11 de noviembre de 2025'
},
{
title: 'La Universidad presenta su plan de expansión para el próximo año',
link: '#',
date: '10 de noviembre de 2025'
},
{
title: 'Celebración del festival gastronómico con participantes internacionales',
link: '#',
date: '9 de noviembre de 2025'
},
{
title: 'Nuevo proyecto de sostenibilidad para proteger las zonas naturales',
link: '#',
date: '8 de noviembre de 2025'
}
];
// Función para mostrar noticias de ejemplo
function displaySampleNews() {
newsList.innerHTML = '';
sampleNews.forEach((news, index) => {
const newsItem = document.createElement('div');
newsItem.className = 'news-item';
newsItem.onclick = () => window.open(news.link, '_blank');
newsItem.innerHTML = `
${index + 1}
${news.title}
${news.date}
Leer más ?
`;
newsList.appendChild(newsItem);
});
}
// Función para obtener y parsear el RSS
async function fetchRSS() {
try {
// Usamos un proxy CORS para evitar problemas de same-origin policy
const proxyUrl = 'https://api.allorigins.win/raw?url=';
const response = await fetch(proxyUrl + encodeURIComponent(rssUrl));
if (!response.ok) {
throw new Error('Error al cargar el feed RSS');
}
const text = await response.text();
const parser = new DOMParser();
const xmlDoc = parser.parseFromString(text, 'text/xml');
// Verificar si el parseo fue exitoso
if (xmlDoc.getElementsByTagName('parsererror').length > 0) {
throw new Error('Error al parsear el XML');
}
// Obtener los elementos item del RSS
const items = xmlDoc.getElementsByTagName('item');
// Limpiar el contenido de carga
newsList.innerHTML = '';
// Mostrar las primeras 5 noticias
const maxItems = Math.min(items.length, 5);
if (maxItems === 0) {
newsList.innerHTML = '
No se encontraron noticias en el feed RSS.';
return;
}
for (let i = 0; i < maxItems; i++) {
const item = items[i];
const title = item.getElementsByTagName('title')[0]?.textContent || 'Título no disponible';
const link = item.getElementsByTagName('link')[0]?.textContent || '#';
const pubDate = item.getElementsByTagName('pubDate')[0]?.textContent || '';
const newsItem = document.createElement('div');
newsItem.className = 'news-item';
newsItem.onclick = () => window.open(link, '_blank');
// Formatear la fecha
let formattedDate = '';
if (pubDate) {
const date = new Date(pubDate);
formattedDate = date.toLocaleDateString('es-ES', {
day: 'numeric',
month: 'long',
year: 'numeric'
});
}
newsItem.innerHTML = `
${i + 1}
${title}
${formattedDate ? `
${formattedDate}` : ''}
Leer más ?
`;
newsList.appendChild(newsItem);
}
} catch (error) {
console.error('Error:', error);
// En caso de error, mostrar noticias de ejemplo
displaySampleNews();
// Mostrar mensaje de error
const errorMsg = document.createElement('div');
errorMsg.className = 'error';
errorMsg.innerHTML = `
Error al cargar las noticias en tiempo real: ${error.message}
Se muestran noticias de ejemplo. Intenta recargar la página.
`;
newsList.insertBefore(errorMsg, newsList.firstChild);
}
}
// Cargar las noticias al iniciar
fetchRSS();
// Actualizar cada 10 minutos (opcional)
setInterval(fetchRSS, 10 * 60 * 1000);
});
Widget de Noticias RSS
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}
body {
background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
min-height: 100vh;
display: flex;
justify-content: center;
align-items: center;
padding: 20px;
}
.news-widget {
width: 100%;
max-width: 800px;
background-color: white;
border-radius: 12px;
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
overflow: hidden;
border: 1px solid #e1e5e9;
}
.widget-header {
background: linear-gradient(135deg, #2c3e50 0%, #3498db 100%);
color: white;
padding: 20px;
text-align: center;
position: relative;
}
.widget-header h2 {
font-size: 1.8rem;
font-weight: 600;
margin-bottom: 5px;
}
.widget-header p {
opacity: 0.9;
font-size: 0.95rem;
}
.rss-icon {
position: absolute;
top: 20px;
right: 20px;
width: 24px;
height: 24px;
background-color: #ff6600;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
color: white;
font-size: 12px;
font-weight: bold;
}
.news-list {
padding: 0;
}
.news-item {
display: flex;
padding: 18px 20px;
border-bottom: 1px solid #f0f0f0;
transition: all 0.3s ease;
cursor: pointer;
width: 100%;
}
.news-item:hover {
background-color: #f8fafc;
transform: translateX(5px);
}
.news-item:last-child {
border-bottom: none;
}
.news-number {
display: flex;
align-items: center;
justify-content: center;
width: 30px;
height: 30px;
background-color: #3498db;
color: white;
border-radius: 50%;
font-weight: bold;
margin-right: 15px;
flex-shrink: 0;
}
.news-content {
flex: 1;
width: calc(100% - 45px);
}
.news-title {
font-size: 1.1rem;
font-weight: 600;
color: #2c3e50;
margin-bottom: 5px;
line-height: 1.4;
width: 100%;
word-wrap: break-word;
}
.news-date {
font-size: 0.85rem;
color: #7f8c8d;
width: 100%;
}
.external-link {
color: #3498db;
font-size: 0.9rem;
margin-top: 5px;
display: inline-block;
}
.widget-footer {
padding: 15px 20px;
text-align: center;
background-color: #f8fafc;
border-top: 1px solid #e1e5e9;
color: #7f8c8d;
font-size: 0.9rem;
}
.loading {
padding: 40px 20px;
text-align: center;
color: #7f8c8d;
}
.error {
padding: 40px 20px;
text-align: center;
color: #e74c3c;
background-color: #fdf2f2;
}
@media (max-width: 600px) {
.news-item {
flex-direction: column;
}
.news-number {
margin-bottom: 10px;
}
.widget-header h2 {
font-size: 1.5rem;
}
}
document.addEventListener('DOMContentLoaded', function() {
const rssUrl = 'https://www.noticiasdealmeria.com/rss/ultimasNoticias/';
const newsList = document.getElementById('newsList');
// Datos de ejemplo para mostrar el diseño (en caso de que el RSS no funcione)
const sampleNews = [
{
title: 'El Ayuntamiento anuncia nuevas medidas para mejorar el tráfico en el centro',
link: '#',
date: '12 de noviembre de 2025'
},
{
title: 'Inaugurado el nuevo parque empresarial con más de 50 empresas',
link: '#',
date: '11 de noviembre de 2025'
},
{
title: 'La Universidad presenta su plan de expansión para el próximo año',
link: '#',
date: '10 de noviembre de 2025'
},
{
title: 'Celebración del festival gastronómico con participantes internacionales',
link: '#',
date: '9 de noviembre de 2025'
},
{
title: 'Nuevo proyecto de sostenibilidad para proteger las zonas naturales',
link: '#',
date: '8 de noviembre de 2025'
}
];
// Función para mostrar noticias de ejemplo
function displaySampleNews() {
newsList.innerHTML = '';
sampleNews.forEach((news, index) => {
const newsItem = document.createElement('div');
newsItem.className = 'news-item';
newsItem.onclick = () => window.open(news.link, '_blank');
newsItem.innerHTML = `
${index + 1}
${news.title}
${news.date}
Leer más ?
`;
newsList.appendChild(newsItem);
});
}
// Función para obtener y parsear el RSS
async function fetchRSS() {
try {
// Usamos un proxy CORS para evitar problemas de same-origin policy
const proxyUrl = 'https://api.allorigins.win/raw?url=';
const response = await fetch(proxyUrl + encodeURIComponent(rssUrl));
if (!response.ok) {
throw new Error('Error al cargar el feed RSS');
}
const text = await response.text();
const parser = new DOMParser();
const xmlDoc = parser.parseFromString(text, 'text/xml');
// Verificar si el parseo fue exitoso
if (xmlDoc.getElementsByTagName('parsererror').length > 0) {
throw new Error('Error al parsear el XML');
}
// Obtener los elementos item del RSS
const items = xmlDoc.getElementsByTagName('item');
// Limpiar el contenido de carga
newsList.innerHTML = '';
// Mostrar las primeras 5 noticias
const maxItems = Math.min(items.length, 5);
if (maxItems === 0) {
newsList.innerHTML = '
No se encontraron noticias en el feed RSS.';
return;
}
for (let i = 0; i < maxItems; i++) {
const item = items[i];
const title = item.getElementsByTagName('title')[0]?.textContent || 'Título no disponible';
const link = item.getElementsByTagName('link')[0]?.textContent || '#';
const pubDate = item.getElementsByTagName('pubDate')[0]?.textContent || '';
const newsItem = document.createElement('div');
newsItem.className = 'news-item';
newsItem.onclick = () => window.open(link, '_blank');
// Formatear la fecha
let formattedDate = '';
if (pubDate) {
const date = new Date(pubDate);
formattedDate = date.toLocaleDateString('es-ES', {
day: 'numeric',
month: 'long',
year: 'numeric'
});
}
newsItem.innerHTML = `
${i + 1}
${title}
${formattedDate ? `
${formattedDate}` : ''}
Leer más ?
`;
newsList.appendChild(newsItem);
}
} catch (error) {
console.error('Error:', error);
// En caso de error, mostrar noticias de ejemplo
displaySampleNews();
// Mostrar mensaje de error
const errorMsg = document.createElement('div');
errorMsg.className = 'error';
errorMsg.innerHTML = `
Error al cargar las noticias en tiempo real: ${error.message}
Se muestran noticias de ejemplo. Intenta recargar la página.
`;
newsList.insertBefore(errorMsg, newsList.firstChild);
}
}
// Cargar las noticias al iniciar
fetchRSS();
// Actualizar cada 10 minutos (opcional)
setInterval(fetchRSS, 10 * 60 * 1000);
});
TEMAS RELACIONADOS: