Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/jpbarbatic/webapp/llms.txt

Use this file to discover all available pages before exploring further.

El dashboard integra un lector de noticias que consume el feed MRSS público de El País para mostrar los titulares de última hora directamente en el panel de administración. La obtención del feed se realiza en el servidor mediante PHP, sin necesidad de peticiones adicionales desde el navegador, lo que simplifica la implementación y evita problemas de CORS.

Obtención del feed

La carga del feed tiene lugar en el controlador public/dashboard/index.php, antes de renderizar cualquier vista:
$noticias = @simplexml_load_file(
    'https://feeds.elpais.com/mrss-s/pages/ep/site/elpais.com/section/ultimas-noticias/portada'
);
ElementoDetalle
Funciónsimplexml_load_file() — carga y parsea un documento XML remoto, devolviendo un objeto SimpleXMLElement.
URL del feedhttps://feeds.elpais.com/mrss-s/pages/ep/site/elpais.com/section/ultimas-noticias/portada
Tipo de feedMRSS (Media RSS) — una extensión del estándar RSS 2.0 que incluye metadatos de contenido multimedia.
Operador @Suprime advertencias de PHP si el servidor remoto no responde o el XML es inválido.
Una vez parseado, $noticias contiene el árbol completo del feed. La variable queda disponible en la vista porque la plantilla base (html/plantilla.html.php) se incluye en el mismo ámbito donde se declaró.

Renderizado en la vista

La vista html/dashboard/dashboard.html.php itera sobre los ítems del feed e imprime el título y el contenido de cada noticia:
<div id="noticias">
    <?php foreach($noticias->channel->item as $noticia): ?>
        <h3><?php echo $noticia->title ?></h3>
        <p><?php echo $noticia->children('content', true); ?></p>
    <?php endforeach; ?>
</div>
El acceso a los elementos se realiza de la siguiente manera:
  • $noticias->channel->item — colección de nodos <item> dentro del canal principal del feed.
  • $noticia->title — elemento estándar RSS que contiene el titular del artículo.
  • $noticia->children('content', true) — accede a los elementos hijo registrados bajo el namespace con prefijo content. El segundo argumento true indica que el primer argumento es un prefijo de namespace (no una URI), tal como aparece declarado en el feed (xmlns:content="..."). Esto permite leer elementos como <content:encoded> o similares que extienden el RSS estándar.
La vista simple (html/dashboard.html.php) usa exactamente la misma lógica de bucle, pero carece de widget del tiempo y de los assets CSS/JS asociados.
Si simplexml_load_file no puede conectar con el servidor del feed o recibe un XML malformado, devuelve false. En ese caso, la vista intentará iterar sobre false->channel->item, lo que generará un error fatal. Para mayor robustez, conviene añadir una comprobación antes del foreach:
<?php if ($noticias): ?>
    <?php foreach($noticias->channel->item as $noticia): ?>
        <h3><?php echo $noticia->title ?></h3>
        <p><?php echo $noticia->children('content', true); ?></p>
    <?php endforeach; ?>
<?php else: ?>
    <p class="text-muted">No se pudieron cargar las noticias en este momento.</p>
<?php endif; ?>
Para utilizar un feed de noticias diferente, basta con cambiar la URL en public/dashboard/index.php. Cualquier feed RSS 2.0 o MRSS que exponga un nodo <channel><item> con <title> funcionará directamente con la vista actual. Si el nuevo feed no usa el namespace content, reemplaza $noticia->children('content', true) por $noticia->description para mostrar la entradilla estándar.

Build docs developers (and LLMs) love